Ms access 在Access2007中,我必须在Combobox上单击两次

Ms access 在Access2007中,我必须在Combobox上单击两次,ms-access,combobox,click,Ms Access,Combobox,Click,我有一个只有一个文本列的表。此外,我还有一个带有组合框的表单。现在我想让组合框重新查询焦点。因此,我在vba中添加了一个方法: Private Sub combobox1_GotFocus() With combobox1 .RowSource = "SELECT text " + _ "FROM tblExample " + _ " ORDER BY text" .Requery End With

我有一个只有一个文本列的表。此外,我还有一个带有组合框的表单。现在我想让组合框重新查询焦点。因此,我在vba中添加了一个方法:

Private Sub combobox1_GotFocus()
    With combobox1
        .RowSource = "SELECT text " + _
           "FROM tblExample " + _
           " ORDER BY text"

        .Requery
    End With

End Sub
现在单击combobox1时,dropdownlist不会打开。只有当我再次单击它时,它才会打开。这里有什么问题?如果我把这两行放在注释中,我只需点击组合框一次,就会出现一个空列表


注意:我简化了这个问题。我有另一个公式,在其中我做同样的事情,它工作得很好。我希望有人知道如何解决这个问题。

当您重新查询组合框时,它会暂时失去焦点。当您再次单击它时,它已经具有焦点,因此OnFocus事件不会触发。在用户单击组合框之前,您可能需要重新查询它。

您的OnFocus操作很好,但您也可以添加类似的内容

Private Sub combobox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Me.combobox1.SetFocus
  Me.combobox1.Dropdown
End Sub

如果您可以提供一个与实际使用的查询类似的查询,这将非常有用。关于查询,您需要更改什么?where子句?是的,它是一个带有内部联接的查询,并且是一个where子句,如SELECT tblAnotherExample.text FROM tblExample internal JOIN tblAnotherExample.ID=tblAnotherExample.ExampleID其中tblAnotherExample.column1=+CStrMe.AnotherCombobox.Value+按tblAnotherExample.text排序