【发布时间】:2011-08-10 18:54:57
【问题描述】:
我有这个表格可以访问,它的目的是作为一个表格的前端,可以通过这个表格进行编辑。最初,当它加载时,我使用以下查询在记录集中显示表单数据:
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”:无法更新。数据库或对象是只读的。
我几乎一遍又一遍地使用相同的代码从表中重新加载数据,在我“覆盖”记录集的源之前,它从来没有给我带来任何问题。知道如何解决这个问题吗?谢谢
【问题讨论】: