MSAccess2007テーブルがあります。
列は、DB、Module、CommentID、およびCommentです。
MSAccessクエリデザインで正しいレコードを返すSQLクエリがあります。
イミディエイトウィンドウで、Ms AccessQueryDesignと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'
「strSQ」を「tblComments」に置き換えると、関数は正常に返されます。
しかし、strSQLを使用したrst.openでエラーが発生します
オブジェクト'_Recordset'のメソッド'Open'が失敗しました
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