У меня есть эта форма в доступе, ее цель - работать в качестве внешнего интерфейса таблицы, которую можно редактировать с помощью этой формы.Первоначально при загрузке я отображаю в форме данные из набора записей по следующему запросу:
SELECT * FROM DATA
Я хочу иметь возможность фильтровать данные в наборе записей после открытия формы.Для этого я попробовал следующий код VBA:
Private Sub Filter_Click()
If (IsNull(Me.Find_Field) Or Me.Find_Field = "") Then
rs.Close
Set rs = db.OpenRecordset("Select * from DATA ORDER BY ID)
rs.MoveFirst
LoadData (True)
Exit Sub
End If
Set rs = db.OpenRecordset("Select * from DATA WHERE ID = " & Me.Find_Field)
rs.MoveFirst
LoadData (True) ' Function that loads the data into the form
Exit Sub
Как вы все видите, я перезагружаю набор записей новым фильтрованным запросом.До этого момента все работает, проблемы начинаются, когда я пытаюсь изменить запись.
Первоначально, когда форма загружает данные набора записей, я могу редактировать данные, и отредактированные данные будут отображаться в таблице.(что я и хочу).Но после применения фильтра мой код выдает ошибку времени выполнения «3027»: невозможно обновить.База данных или объект доступны только для чтения.
Я использую один и тот же код снова и снова для перезагрузки данных из таблицы, и это никогда не доставляло мне проблем, пока я не перезаписал источник набора записей.Любая идея, как я могу решить эту проблему?Спасибо