1

我有一个只有一个文本列的表格。此外,我有一个带有组合框的表单。现在我希望组合框重新查询焦点。所以我在vba中添加了一个方法:

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

        .Requery
    End With

End Sub

当我现在单击组合框1 时,下拉列表不会打开。只有当我第二次点击它时,它才会打开。这里有什么问题?如果我将这两条 .-line 放在评论中,我可以只单击一次组合框并显示一个空列表。

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

4

2 回答 2

0

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

于 2013-03-01T12:50:50.670 回答
0

您的 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
于 2019-09-11T06:22:52.200 回答