2016-10-20 11 views
0

mulitSelectリストボックスを使用してクエリを実行するフォームがあります。私はそれがあるかもしれないと思うが、SQLのセクションは私に問題を与えているものです。 テーブルは "SupervisorsQuery" クエリは "Query1" リストボックスは "lstUser" クエリはボタンのクリックイベントによって実行されます。エラーは、FROMステートメントで開始するように見えます。どんな助けも素晴らしいだろう!このMultiSelectリストボックスクエリ

Private Sub Command6_Click() 
Dim Q As QueryDef, DB As Database 
Dim Criteria As String 
Dim ctl As Control 
Dim itm As Variant 

Set ctl = Me![lstUser] 
For Each itm In ctl.ItemsSelected 
    If Len(Criteria) = 0 Then 
     Criteria = Chr(34) & ctl.ItemData(itm) & Chr(34) 
    Else 
     Criteria = Criteria & "," & Chr(34) & ctl.ItemData(itm) & Chr(34) 
    End If 
Next itm 
If Len(Criteria) = 0 Then 
    itm = MsgBox("You must select one or more items in the list box") 
    Exit Sub 
End If 

Set DB = CurrentDb() 
Set Q = DB.QueryDefs("Query1") 
Q.SQL = "Select SupervisorsQuery.Date, SupervisorsQuery.Client,SupervisorsQuery.[Job Code Description], SupervisorsQuery.[Perf Percent]" 
FROM SupervisorsQuery 
WHERE ((SupervisorsQuery.[User ID]) In (" & Criteria & "));" 

Q.Close 
DoCmd.OpenQuery "Query1" 


End Sub 
+0

投稿コードでSQL文字列は、最初の行のみです。これはタイプミスですか? FROMパーツを行の最後に追加するか、ストリングに追加する必要があります。 – Johanness

+0

あなたのSQLステートメントの 'Debug.print'。すぐにエラーが表示されます。ヒント:[MSDN](https://msdn.microsoft.com/en-us/library/ba9sxbw4.aspx) – MoondogsMaDawg

答えて

0

用途:

Q.SQL = "Select SupervisorsQuery.[Date], SupervisorsQuery.Client,SupervisorsQuery.[Job Code Description], SupervisorsQuery.[Perf Percent] " & _ 
"FROM SupervisorsQuery " & _ 
"WHERE ((SupervisorsQuery.[User ID]) In (" & Criteria & "));" 
+0

100万回以上ありがとうございます。これは完全に機能しました。 – lPaclMan