У меня есть форма, таблица ("my_table") и запрос ("my_query").
Я хочу, чтобы функция смотрела, совпадают ли какие-либо идентификаторы записи таблицы («my_ID») с идентификаторами запроса (также «my_ID»), чтобы обновить поле («my_Property») данной записи со значением из форма.
Я скопировал и изменил этот код . Мой код вызывает ошибку (необходимо перевести): "Ошибка времени выполнения" 3061 ": ожидался 1 параметр, но передано слишком мало параметров."
Я думаю, что проблема в том, что в цикле if я не сравниваю tbl.Fields ("my_ID") с дискретным значением, но с установленными значениями. Может быть, я должен также перебрать все значения qry.Fields ("my_ID"), но я не вижу, как сделать код. Кроме того, это значительно замедлит и без того медленный процесс, поскольку my_Table содержит более 40 000 записей. Есть ли более быстрый способ сравнения идентификаторов?
Private Sub btn_Click()
Dim db As Database
Set db = CurrentDb
Dim tbl As Recordset
Set tbl = db.OpenRecordset("my_Table")
Dim qry As QueryDef
Set qry = db.OpenRecordset("my_Query")
tbl.MoveFirst
Do Until tbl.EOF
If tbl.Fields("my_ID") = qry.Fields("my_ID") Then
tbl.Edit
tbl.Fields("my_Property") = Me!textbox1.Value
tbl.Update
End If
tbl.MoveNext
Loop
End Sub