获取运行时错误' 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记录集。
表单只是一个空白子表单。我是否还需要做其他事情才能查看表单上的记录集?
答案 0 :(得分:2)
Form.Recordset返回的记录集类型取决于您使用的文件类型,并且您无法控制它。如果您使用的是本机Access文件,则记录集将为DAO。如果您正在使用ADP,则记录集将为ADO。 ADP在2013版中已弃用,但这就是为什么帮助说Recordset属性可以是任何一种类型。
您可能遇到的问题(一旦正确包含Set关键字)就是您尝试将ADODB.Recordset对象分配给DAO.Recordset2对象。您可以在断点处使用TypeName函数来确认它。将您的记录集更改为DAO,它将起作用。