Sql 试图解决VBA中的对象必需错误
我有这个问题。我有一个表单,它使用表单的记录源属性检索表数据。打开表单时,我将其记录源属性设置为模块的公共方法RetrieveMembers。下面是代码Sql 试图解决VBA中的对象必需错误,sql,ms-access,compiler-errors,vba,Sql,Ms Access,Compiler Errors,Vba,我有这个问题。我有一个表单,它使用表单的记录源属性检索表数据。打开表单时,我将其记录源属性设置为模块的公共方法RetrieveMembers。下面是代码 Private Sub Form_Open(Cancel As Integer) 'set Form's record source property to retrieve a Members table Me.RecordSource = mod_JoinMember.RetrieveMembers End Sub 'mod_JoinM
Private Sub Form_Open(Cancel As Integer)
'set Form's record source property to retrieve a Members table
Me.RecordSource = mod_JoinMember.RetrieveMembers
End Sub
'mod_JoinMember Class
Public Function RetrieveMembers() As String
Dim strSQL As String
Set strSQL = "SELECT tbl_Member.Title, tbl_Member.Gender, tbl_Member.LastName,
tbl_Member.DateofBirth, tbl_Member.Occupation, tbl_Member.PhoneNoWork,
tbl_Member.PhoneNoHome, tbl_Member.MobileNo, tbl_Member.Email,
tbl_Member.Address, tbl_Member.State, tbl_Member.Postcode FROM tbl_Member;"
RetrieveMembers = strSQL
End Function
需要对象引发错误
我无法理解这个编译错误。我认为我的代码没有错,因为recordsource是字符串类型的属性。我模块的函数Retrievemembers返回一个字符串值
为什么它对此不满意?当您使用类模块时,我认为您需要使用:
Public Property Get RetrieveMembers() As String
而不是:
Public Function RetrieveMembers() As String
谢谢你的帮助
我修好了。原因是字符串并不是一个真正的对象。因此不需要“Set”关键字,因为您不需要显式声明字符串类型的对象
现在一切都好了 错误在哪一行抛出?(我怀疑代码中没有显示…)它作为字符串行抛出到公共函数RetrieveMembers。只是一点信息——虽然数据库应用程序是MS Access 2003,但我正在笔记本电脑上运行MS Access 2007软件。菲玛特。我试过了。但它不起作用。错误一直以字符串形式出现在函数方法行ie Public function RetrieveMembers()。@AW-GWTF899是否尝试使用Access 03运行时而不是07运行它,存在兼容性问题。+1很好地发现,我完全没有注意到:)值得一提的是,您可以通过删除strSQL并立即将RetrieveMembers设置为SQL来缩短代码。@mattdonan:是的,我想我可以做到。省去了我以后的麻烦。此外,在这个问题第一次出现时,我不知道记录源是字符串类型的属性,因此必须编写长代码,认为它可能需要记录集对象。。。谢谢