我正在寻找一种创建内存数据表表单的方法。我喜欢使用断开连接的记录集的想法。但在将断开连接的记录集重新分配给表单后,我遇到了应用程序崩溃的问题。在 stackoverflow 上,我受到了HK1 先生的一篇帖子的启发,他在帖子中写道:
如果您从表中获取记录集(即使它是空表)然后断开连接,则可以解决此问题。
但怎么做呢?对于 DAO.Recordset,我收到错误:此类型的对象不支持操作。我尝试了所有类型的记录集,但没有帮助:
Sub testDynaset()
Dim rs As dao.Recordset
Set rs = CurrentDb.OpenRecordset("MyLocalTable", dbOpenDynaset)
rs.Connection.Close ' << error: Operation is not supported for this type of object
End Sub
Sub testForwardOnly()
Dim rs As dao.Recordset
Set rs = CurrentDb.OpenRecordset("MyLocalTable", dbOpenForwardOnly)
rs.Connection.Close ' << error: Operation is not supported for this type of object
End Sub
Sub testOpenSnapshot()
Dim rs As dao.Recordset
Set rs = CurrentDb.OpenRecordset("MyLocalTable", dbOpenSnapshot)
rs.Connection.Close ' << error: Operation is not supported for this type of object
End Sub
Sub testOpenTable()
Dim rs As dao.Recordset
Set rs = CurrentDb.OpenRecordset("MyLocalTable", dbOpenTable)
rs.Connection.Close ' << error: Operation is not supported for this type of object
End Sub
对于 ADODB.Recordset,我不知道如何从本机本地或链接的 MS ACCESS 表获取它。请帮忙!
您可以使用
CurrentProject.Connection
与当前数据库的 ADO 连接。它支持本地表和链接表。根据您想要执行的具体操作,您可能需要调整记录集和锁定类型。我不完全确定为什么要使用内存中记录集,普通的静态记录集已经包含内存中记录的副本,并且不会重新获取它们。
大多数 Access 开发人员对于将表单绑定到它们的共同看法是“不”,他们通常对过滤器/排序/刷新/重新查询的支持很差,即使您禁用它们,Access 也可能会崩溃(另请参阅您的链接帖子,作者评论说他改用了临时表)。