ms-access - 选择组合框时出现错误 2115

标签 ms-access vba ms-access-2010

我在表单上有一个组合框,在 Access 数据库上运行 SQL 查询后,我试图以编程方式选择组合框中的一个项目。
我使用以下代码迭代项目并设置所选项目:

'Make the appropriate location appear in the combobox
For i = 0 To cboLocations.ListCount - 1
  If Me.cboLocations.Column(0, i) = locindex Then
    Debug.Print "locindex: " & locindex & vbCrLf & " Me.cboLocations.Column(0, i):" & Me.cboLocations.Column(0, i)
    Me.cboLocations.SetFocus
    Me.cboLocations.ListIndex = i '<<< error 2115
    Exit For
  End If
Next i

如前所述,我不断收到错误 2115:设置为此字段的 BeforeUpdate 或 ValidationRule 属性的宏或函数阻止 Access 将数据保存在字段中。

错误消息中指示的此组合框的任何属性均未设置为任何值。所以我被困住了。请指教。

最佳答案

programmatically select one of the items in the combobox



我一直这样做的方法是将某些内容分配给组合的 Value像这样 ...

Me.MyCombo.Value = "target text"
Value来自组合选定行的绑定(bind)列。 (您可以在组合属性表的数据选项卡上找到绑定(bind)列。)相反,将“目标文本”分配给 Value选择匹配的行。

在您的情况下,我认为您正在尝试选择包含与您的 locindex 变量相同的文本的组合行。如果这是真的,那么我认为你所需要的就是这个......

Me.cboLocations.Value = locindex

至于当你这样做时,更新前或验证规则对我来说似乎都不是正确的选择。我建议您在查询后立即从您用来运行“数据库上的 SQL 查询”的任何代码中执行此操作。

关于ms-access - 选择组合框时出现错误 2115,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33057353/

相关文章:

mysql - 在导航控件上的子表单上进行过滤

sql-server - 升迁拆分 Access 数据库

excel - 使用 VBA 中的查找函数

ms-access - 如何确保弹出表单在屏幕中央打开?

sql - 嵌套查询: best practices

excel - 将 Access 表从 Excel VBA 导出到 dBase 文件?

c# - 如何在执行或设置时将 visual studio 中的文件路径修改为我的数据库

vba - 使用 VBA 按代号引用另一个工作簿中的工作表

vba - vba 上小数点上的运行循环步被卡住

java - 带有 MS Access 的 JDBC 中的 "architecture mismatch between the Driver and Application"