我有两个多选列表框" Animal"和"州"。这两个列表框相互依赖。例如,如果我选择" in"和" mi"在状态列表框中,动物列表框将仅显示" in"中的动物。和" mi"。
我的问题是我将行源设置为下面的查询,并将其分配给"点击"动物列表框中的事件。当我点击动物列表框时,它会运行查询,但它不再允许我选择任何动物。
如何更改列表框以允许我在动物列表框中选择动物?
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 :(得分:0)
我想我已经为此解决了。
我最初将“Private Sub animal_Click()”更改为“Private Sub animal_dblClick()”,但这导致了事件过程错误。
然后我将其更改为“Private Sub animal_Enter()”。当我进入列表框时,它会运行查询,同时仍允许我选择列表框中的项目。
但是,如果某人有不同的解决方案或知道如何使用双击方法。那会很棒!