设置Access窗体的Recordset属性

时间:2014-05-30 20:47:05

标签: vba ms-access

获取运行时错误' 438',对象不支持此属性或方法。

编辑:完整代码,DB_CONNECTION是公共的,并设置在不同的模块中,它正在工作。

Function subFormUpdate()
Dim rs As New ADODB.Recordset


With rs
.ActiveConnection = DB_CONNECTION
.Open "SELECT * FROM napr"
End With

If rs.EOF Then

DB_CONNECTION.Execute "CREATE TABLE napr(" _
                & " num int(2) not null unique, " _
                & "name varchar(255) null );"
End If

With Forms!Main!FormDirections!TableDirSubForm.Form
.Recordset = rs
.Requery
End With

End Function

开始使用" .Recordset = rs",其中' rs'是一个ADODB记录集。

表单只是一个空白子表单。我是否还需要做其他事情才能查看表单上的记录集?

1 个答案:

答案 0 :(得分:2)

Form.Recordset返回的记录集类型取决于您使用的文件类型,并且您无法控制它。如果您使用的是本机Access文件,则记录集将为DAO。如果您正在使用ADP,则记录集将为ADO。 ADP在2013版中已弃用,但这就是为什么帮助说Recordset属性可以是任何一种类型。

您可能遇到的问题(一旦正确包含Set关键字)就是您尝试将ADODB.Recordset对象分配给DAO.Recordset2对象。您可以在断点处使用TypeName函数来确认它。将您的记录集更改为DAO,它将起作用。