我有一个 MS Access 2007 表:
列是 DB、Module、CommentID 和 Comment
我有一个 SQL 查询,它在 MS Access 查询设计中返回正确的记录。
我已经在即时窗口中确认,在 Ms Access Query Design 和 VBA 模块“Module1”中的 sql 是相同的。
我调用函数如下:
?LookupComment(currentproject.Name,Application.VBE.ActiveCodePane.CodeModule,"1")
随后函数中的 strSQL 在即时窗口中被确认为
Select * from tblComments where DB='db1.accdb' AND Module='Module1' AND CommentID='1'
如果我用“tblComments”替换“strSQ”,则函数返回正常。
但是我在使用 strSQL 的 rst.open 时遇到错误
对象“_Recordset”的方法“打开”失败
Public Function LookupComment(theDB, theModule, theCommentID As String) As String
Dim cn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim strSQL As String
Set cn = CurrentProject.Connection
Set rst = New ADODB.Recordset
strSQL = "Select * from tblComments where DB='" & theDB & "' AND " _
& "Module='" & theModule & "' AND CommentID='" & theCommentID & "'"
rst.Open strSQL, cn, adOpenDynamic, adLockReadOnly
' rst.Open "tblComments", cn, adOpenDynamic, adLockReadOnly
If rst.EOF = False Or rst.BOF = False Then
rst.MoveFirst
LookupComment = rst!Comment
End If
Set rst = Nothing
Set cn = Nothing
End Function
想法?
TIA