1

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

我正在尝试将 DVPCBox 的值设置为等于其列表中的第一项。由于员工列表是基于 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(据我所知。)

4

1 回答 1

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 行或更多行时你想做同样的事情。

于 2013-07-31T17:18:41.290 回答