我必须在 Access 2007 中的 Combobox 上单击两次

Posted

技术标签:

【中文标题】我必须在 Access 2007 中的 Combobox 上单击两次【英文标题】:I have to click twice on Combobox in Access2007 【发布时间】:2012-09-17 14:56:38 【问题描述】:

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

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

        .Requery
    End With

End Sub

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

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

【问题讨论】:

如果您可以提供与您实际使用的查询相似的查询,将会很有帮助。您需要对查询进行哪些更改? where 子句? 是的,它是一个带有 INNER JOIN 和 where 子句的查询,例如“SELECT tblAnotherExample.text FROM tblExample INNER JOIN tblAnotherExample ON tblExample.ID=tblAnotherExample.ExampleID WHERE tblAnotherExample.column1=" + CStr(Me .AnotherCombobox.Value) + " ORDER BY tblAnotherExample.text" 【参考方案1】:

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

【讨论】:

【参考方案2】:

您的 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

【讨论】:

以上是关于我必须在 Access 2007 中的 Combobox 上单击两次的主要内容,如果未能解决你的问题,请参考以下文章

在 access 2007 中更新组合框值

两个查询的一个组合框 Access

如何在 MS Access 2007 中创建报告?

Access Access 2007中的记录集问题

在 Access 2010 中查看时,Access 2007 表单中的幻影框

Access 2007 中的格式组合框