2016-07-30 8 views
0

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 

答えて

0

私はこれを解決したと思います。

私はもともと "Private Sub animal_Click()"を "Private Sub animal_dblClick()"に変更しましたが、これはイベントプロシージャーエラーの原因となりました。

私は「Private Sub animal_Enter()」に変更しました。リストボックスに入ると、クエリボックスが表示されますが、リストボックス内のアイテムを選択することはできます。

ただし、別の解決方法がある場合や、ダブルクリック方法の使用方法がわかっている場合。それは素晴らしいだろう!

関連する問題