【问题标题】:Select combo box option with VBA in Access 2013在 Access 2013 中选择带有 VBA 的组合框选项
【发布时间】:2016-08-16 11:30:24
【问题描述】:

我有一个带有组合框的表单。在组合框中选择某些选项将触发表单中的不同操作。

我希望在打开表单或转到下一条记录时自动选择第一个下拉选项。使用VBA命令ComboBox.Value = "Option1"只在组合框中输入一个字符串;这与手动单击选项不同,并且不会触发其他操作。

如何在组合框下拉列表中选择一个选项,让 Access 识别它的方式与单击它的方式相同?

【问题讨论】:

  • 您使用哪个组合框事件来触发操作?您的组合框数据源是表/查询还是列表?

标签: ms-access vba ms-access-2013


【解决方案1】:

如果您想使用按钮更新/更改组合框值,请在点击事件中

me.combobox.value = "option1"

【讨论】:

  • 我不希望根据组合框值执行操作 - 我有这个工作。我希望使用 VBA 来选择该选项,例如,如果我单击表单上的按钮,则该按钮的 On Click 事件会填充组合框。
  • 编辑了解决方案,只需在点击事件中更改组合框的值
  • 仍然不会触发与组合框关联的操作。我也尝试将代码放入其他事件中,但它们都不起作用。
  • 在 Form_Load 事件中:
  • Form_Load 只会在我打开表单时运行它。每当我更改组合框时,我都需要它运行。
【解决方案2】:

在下面的代码中,将 Combo7 更改为 ComboBox 的名称。将 Filed1 更改为表的 Fieldname。将 option1 更改为您的选项字符串:

Private Sub Form_Current()
   If IsNull(Me.recordSet.field1) Then
       Me.recordSet.Edit
       Me.recordSet.Field1 = "option1"
       Me.recordSet.Update
   End If
   Call Combo7_Change
End Sub

在下面的代码中,将 Text9.Value 更改为表单打开或更改记录时要执行的代码:

Private Sub Combo7_Change()
    Select Case Combo7.Value
    Case "option1"
       Text9.Value = 1
    Case "option2"
       Text9.Value = 2
    Case "option3"
       Text9.Value = 3        
    End Select    
End Sub

如果您有任何问题,请告诉我。

【讨论】:

  • Me.recordSet.Field1 = "option1"ComboBox.Value = "Option1" 有何不同? Call 函数对我来说是新的,我会尝试一下。
  • ConboBox.Value 只会将表单字段设置为 Option1。我展示的技术更新了 Recordset 中相应的 ComboBox 字段。试试吧。我测试了它,它可以工作。
  • 我做到了,如果我将绑定列的名称设置为 Field1,“option1”就不会出现。如果我用ComboBox.Value = "option1" 替换 If 语句,“option1”会立即显示,然后被组合框写入的表中的第一行替换。如果我手动在组合框中键入它,它会保留。是否与组合框的绑定方式有关?
  • 表是否正在更新,即使您没有输入值? Field1 应该是 ComboBox 绑定到的字段的名称。它应该工作的方式是,如果您没有在 ComboBox 中输入值,则在循环通过记录集时,它应该默认为 Option1。您可以发布新的 On Current 和 On Change 代码吗?
【解决方案3】:

我解决了这个问题,方法是按照其他答案中的说明设置组合框值,然后调用 AfterUpdate 事件,在该事件中对我的操作进行编码。事件触发并使用我使用 VBA 设置的ComboBox.Value

ComboBox.Value = "Option1"
Call ComboBox_AfterUpdate

【讨论】:

    猜你喜欢
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多