MS Access运行时错误2115

时间:2013-07-31 17:08:45

标签: vba ms-access access-vba

在Ms Ms中,我有两个未绑定的组合框:StateBoxDVPCBox。 StateBox只是美国州的列表,DVPCBox包含来自查询的员工姓名,基于StateBox的值。

我正在尝试将DVPCBox的值设置为等于其列表中的第一项。由于Employees列表基于StateBox的值,因此每次StateBox更改时我都需要更新DVPCBox的值。我尝试了以下方法:

Private Sub StateBox_AfterUpdate()
    Me.DVPCBox.Requery
    If (Me.DVPCBox.ListCount = 1) Then
        Me.DVPCBox.SetFocus
        Me.DVPCBox.ListIndex = 0 //<-Error here
    End If
End Sub

但是我遇到了运行时错误2115 - 为此字段设置为BeforeUpdate或ValidationRule属性的宏或函数阻止Microsoft Office Access在字段中保存数据。

对我来说最奇怪的是我甚至没有使用BeforeUpdate事件或ValidationRule(据我所知)。

1 个答案:

答案 0 :(得分:1)

ItemData(0)是第一个组合框值。所以设置组合等于。

Private Sub StateBox_AfterUpdate()
    Me.DVPCBox.Requery
    If (Me.DVPCBox.ListCount >= 1) Then
        Me.DVPCBox.SetFocus
        'Me.DVPCBox.ListIndex = 0 //<-Error here
        Me.DVPCBox = Me.DVPCBox.ItemData(0)
    End If
End Sub

我也更改了ListCount >= 1因为我认为当组合包含2行或更多行时你想做同样的事情。