Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 试图解决VBA中的对象必需错误_Sql_Ms Access_Compiler Errors_Vba - Fatal编程技术网

Sql 试图解决VBA中的对象必需错误

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

我有这个问题。我有一个表单,它使用表单的记录源属性检索表数据。打开表单时,我将其记录源属性设置为模块的公共方法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_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:是的,我想我可以做到。省去了我以后的麻烦。此外,在这个问题第一次出现时,我不知道记录源是字符串类型的属性,因此必须编写长代码,认为它可能需要记录集对象。。。谢谢