关于组合框选择的错误2115

时间:2015-10-10 18:12:08

标签: ms-access access-vba ms-access-2010

我在表单上有一个组合框,我尝试在访问数据库上运行我的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在字段中保存数据。

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

2 个答案:

答案 0 :(得分:2)

  

以编程方式选择组合框中的一个项目

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

Me.MyCombo.Value = "target text"

Value来自组合所选行的绑定列。 (您可以在组合的属性表的数据选项卡上找到绑定列。)相反,分配&#34;目标文本&#34; Value选择匹配的行。

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

Me.cboLocations.Value = locindex

就您这样做而言,更新前验证规则似乎都不是我的正确选择。我建议您使用在查询后立即在数据库&#34;上运行&#34; SQL查询的任何代码来执行此操作。

答案 1 :(得分:1)

您可能正在与BeforeUpdate事件发生冲突。

尝试使用AfterUpdate。