Я обновляю MS Access, используя цикл While / Wend в зависимости от условия.Похоже, что запрос обновляет предыдущую запись в моей таблице, что не соответствует критериям цикла, а не обновляет фактическую запись , которая соответствует критериям.
Этот разделкода имеет идентификатор, который я использую для обновления Access:
Dim rr As Range
Set rr = [a2]
Этот раздел увеличивает строку:
Dim r As Long
r = 2
Теперь я проверяю длину в столбцеA, который содержит идентификатор больше нуля, а соответствующая ячейка в столбце F содержит «Да», выполните запрос sql:
While Len(Sheet2.Range("A" & r).Formula) > 0
If Sheet2.Range("F" & r).Value = "Yes" Then
myid = rr.Offset(0, 0).Value
qString = "UPDATE [table] SET [Status]= '" & statusvalue & "' WHERE [Key]='" & myid & "'"
cn.Execute qString, dbFailOnError
End If
r = r + 1
Wend
Запрос обновляет базу данных в порядке, просто он обновляет неправильнуюзапись.Например, если строка 2 не содержит «Да», а строка 3 - нет, запись в строке 2 обновляется в базе данных вместо записи в строке 3!Я думаю, это как-то связано с моей петлей, которую я не могу понять.
Надеясь, что кто-то там может помочь!