关于组合框选择的错误2115

Ala*_*lan 8 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
Run Code Online (Sandbox Code Playgroud)

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

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

Han*_*sUp 2

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

我一直这样做的方法是将某些内容分配给组合,Value如下所示......

Me.MyCombo.Value = "target text"
Run Code Online (Sandbox Code Playgroud)

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

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

Me.cboLocations.Value = locindex
Run Code Online (Sandbox Code Playgroud)

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