私のデータベースでは、SQL 文字列を受け取り、開いているレコードセットを返すモジュールにパブリック関数があります。この関数は、このモジュールと他のモジュールの両方で、他のパブリック サブルーチンによって呼び出されたときに問題なく動作します。
ただし、まったく同じコードを使用して同じ関数を呼び出そうとすると、「引数の数が間違っているか、プロパティの割り当てが無効です」というコンパイル エラーが発生します。
正確なコードを切り取って別のモジュールに public sub として貼り付けると、正常に動作します。この問題は、名前付けまたはおそらく隠し変数に関係していると思われます。残念ながら、検索しても解決策を思いつくことができませんでした。
Public Function Query(SQL As String) As ADODB.Recordset
Dim cnnConn As ADODB.Connection
Dim rsRecord As New ADODB.Recordset
Set cnnConn = CurrentProject.Connection
rsRecord.ActiveConnection = cnnConn
rsRecord.Open SQL
Set Query = rsRecord
End Function
Private Sub Setup()
Dim rs As New ADODB.Recordset
Dim SQL As String
SQL = "Select * FROM [Configuration]"
Set rs = Query(SQL) <--- Compile Error
rs.Close
End Sub
どんな助けでも大歓迎です。