2つの複数の選択リストボックス「動物」と「状態」があります。これら2つのリストボックスはお互いに依存しています。たとえば、状態リストボックスで "in"と "mi"を選択すると、動物リストボックスには "in"と "mi"の動物のみが表示されます。"オンクリック"イベントにクエリが割り当てられている場合、Accessの複数選択リストボックスで値を選択できません。
私の問題は、動物リストボックスの "クリック時"イベントに割り当てられている以下のクエリにrowsourceを設定していることです。動物リストボックスをクリックするとクエリが実行されますが、動物を選択することはできません。
動物リストボックスで動物を選択できるようにリストボックスを変更するにはどうすればよいですか?
Private Sub animal_Click()
Dim Q As QueryDef
Dim DB As Database
Dim Criteria As String
Dim ctl As Control
Dim Itm As Variant
Dim ctl2 As Control
Dim ctl3 As Control
' Use for dynamic SQL statement'
Dim strSQL As String
Set ctl2 = Me![State]
For Each Itm In ctl2.ItemsSelected
If Len(Criteria2) = 0 Then
Criteria2 = Chr(34) & ctl2.ItemData(Itm) & Chr(34)
Else
Criteria2 = Criteria2 & "," & Chr(34) & ctl2.ItemData(Itm) & Chr(34)
End If
Next Itm
' Modify the Query.
Set DB = CurrentDb()
Set Q = DB.QueryDefs("animal")
' Modify the Query.
Set DB = CurrentDb()
Set Q = DB.QueryDefs("animal")
strSQL = "Select distinct(animal) From [table1] Where [table1].[type] In (" & "'Animal')"
If (Len(Criteria2) <> 0) Then ' Append State Criteria
strSQL = strSQL & " AND [table1].[state] IN (" & Criteria2 & ")"
End If
Q.SQL = strSQL
Q.Close
' Run the query.
'DoCmd.OpenQuery "animalquery"
Me.Animal.RowSource = strSQL
End Sub