2017-02-07 37 views
1

アクセス時にフォームを開いているときにエラーが発生しました。
このコードは、そのフォームの "OnOpenイベント"で実行する必要があります。 しかし、私のスクリプトにはエラーが発生しています。ACCESS2013 - 実行時エラー '3061'。パラメータが少なすぎます。予想される1

Dim ThisDB As DAO.Database 
    Set ThisDB = CurrentDb 
    Dim d As DAO.Recordset 
    Dim q As String 
    q = "SELECT [tbl-apartner].[EMail] FROM [tbl-apartner] WHERE [tbl-apartner].[SID] = " & sid2 'sql query 
    Set d = ThisDB.OpenRecordset(q, dbOpenDynaset) 
    Dim Result As String 
    Result = "" 
    If d.EOF = False Or d.BOF = False Then 'if-else clause 
     d.MoveFirst 
     Do While Not d.EOF 
      If Result <> "" Then Result = Result & "; " 
      Result = Result & d!EMail 
      d.MoveNext 
      Loop 
     End If 
    d.Close 

障害のある行は次のようになります。

Set d = ThisDB.OpenRecordset(q, dbOpenDynaset) 
+1

はのOpenRecordset前に 'のDebug.Print q'を行います。私の推測では、あなたの 'sid2'はNULLです –

+0

私は' MsgBox q'を行い、sid2はNULLではありません。 MsgBox qの出力はSELECT [tbl-apartner]です。[EMail] FROM [tbl-apartner] WHERE [tbl-apartner]。[SID] = AKP' – rel0aded0ne

答えて

1

私は問題を解決しました。

ライン

q = "SELECT [tbl-apartner].[EMail] FROM [tbl-apartner] WHERE [tbl-apartner].[SID] = " & sid2

は正しくありませんでした。

q = "SELECT [tbl-apartner].[EMail] FROM [tbl-apartner] WHERE [tbl-apartner].[SID] = " & "'" & sid2 & "'" 

違いがある:= " & "'" & sid2 & "'"

関連する問題