在Ms Ms中,我有两个未绑定的组合框:StateBox
和DVPCBox
。 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(据我所知)。
答案 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行或更多行时你想做同样的事情。