Access+vba+ ветвление +цикл

Узнай цену своей работы

Формулировка задачи:

Пытаюсь создать ветвление
if ......then
......
for i=1 to n
if .....then....
else.....
Private Sub ButtonZ_Click()
Dim rstQU, rstSM, rstZ As DAO.Recordset
Dim dbs As Database
Dim m3, m4, n As Integer
Dim arrZ()
Set dbs = CurrentDb
'ищем максимум код заявки
Set rstQU = dbs.OpenRecordset("SELECT Max(Заявка.IDquest) AS [Max-IDquest] FROM Заявка;")
'ищем код смeны с текущей датой
Set rstSM = dbs.OpenRecordset("SELECT Смена.IDs FROM Смена WHERE (Смена.DateS)=Date();")
m3 = rstSM(0)
'massive
Set rstZ = dbs.OpenRecordset("SELECT Заявка.Nquest FROM Смена INNER JOIN Заявка ON Смена.IDs = Заявка.IDs WHERE Смена.DateS=Date();")
n = DCount("IDquest", "заявка")
'если нет макс кода то заявок нет а значит присваиваем 1 и заеосим в таблицу
If rstQU(0) <= 0 Then
m4 = 1
dbs.Execute "INSERT INTO Заявка (Nquest,Client,Marka,Vf,Tquest,Interval,FIOq,Dataq,Sposob,IDquest,IDs ) Values('" & Form_Заявка![NQU1].Value & "','" & Form_Заявка![CLIE1].Value & "','" & Form_Заявка![MAR1].Value & "','" & Form_Заявка![VF1].Value & "','" & Form_Заявка![TQUE1].Value & "','" & Form_Заявка![INTL1].Value & "','" & Form_Заявка![FIOQZ1].Value & "','" & Form_Заявка![DATAQZ1].Value & "','" & Form_Заявка![SPB1].Value & "','" & m4 & "','" & m3 & "')"
ElseIf rstQU(0) > 0 Then
For i = 1 To n
'Проверка значение формы и значений массива
---пишет иначи без если
m4 = rstQU(0) + 1
dbs.Execute "INSERT INTO Заявка (Nquest,Client,Marka,Vf,Tquest,Interval,FIOq,Dataq,Sposob,IDquest,IDs ) Values('" & Form_Заявка![NQU1].Value & "','" & Form_Заявка![CLIE1].Value & "','" & Form_Заявка![MAR1].Value & "','" & Form_Заявка![VF1].Value & "','" & Form_Заявка![TQUE1].Value & "','" & Form_Заявка![INTL1].Value & "','" & Form_Заявка![FIOQZ1].Value & "','" & Form_Заявка![DATAQZ1].Value & "','" & Form_Заявка![SPB1].Value & "','" & m4 & "','" & m3 & "')"
Else
MsgBox "Вы пытаетесь занести заявку с существующим номером"
Next i
End If
End Sub
Сразу оговорю што запросы рабочие тоесть все работало но вот заносились заявки со своими номерами без проверки.Сам массив нормально ловит номера заявок. Путаюсь в синтаксисе ветвления с цикло

Решение задачи: «Access+vba+ ветвление +цикл»

textual
Листинг программы
<font color="teal">"WHERE (Заявка.Nquest=x) AND Смена.DateS="</font>+Format$(<font color="blue">Date</font>(),<font color="teal">"\#mm\/dd\/yyyy\#"</font>)+<font color="teal">";"</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5