Vba 根据组合框中的是/否值逐行更新表列

Vba 根据组合框中的是/否值逐行更新表列,vba,ms-access,combobox,Vba,Ms Access,Combobox,我对Access和VBA非常陌生,但我尝试做的很简单: 我有一个表格,我想在表格中显示,我已经把表格放在一个子表格框中。 我想有一列,我想根据组合框中的选项(是/否/可能)更新状态 如图所示:我想在子窗体中选择一行,并通过在组合框中选择一个选项来更新列状态 Private Sub cboStatus_AfterUpdate() subForm1.Form!Status = cboStatus End Sub 您可以在组合框的AfterUpdate事件中修改子窗体中选定的记录 Priva

我对Access和VBA非常陌生,但我尝试做的很简单:

我有一个表格,我想在表格中显示,我已经把表格放在一个子表格框中。 我想有一列,我想根据组合框中的选项(是/否/可能)更新状态

如图所示:我想在子窗体中选择一行,并通过在组合框中选择一个选项来更新列状态

Private Sub cboStatus_AfterUpdate()
    subForm1.Form!Status = cboStatus
End Sub

您可以在组合框的
AfterUpdate
事件中修改子窗体中选定的记录

Private Sub cboStatus_AfterUpdate()
    subForm1.Form!Status = cboStatus
End Sub
这假设组合框控件名为
cboStatus
,子窗体名为
subForm1
,要更新的字段名为Status。它还假设您没有将数字ID用作值的外键

一次只能更新一行


超出你问题的范围

有许多其他方法可以开发编辑行的界面。一种方法是修改表中的字段查找属性。您可以将显示控件更改为组合框,将行源类型设置为值列表,然后将行源设置为可能的值列表(用分号分隔)

现在,无论何时在数据表视图中打开该表(如子窗体上的示例),该列中都会出现一个下拉列表。用户可以在该视图中直接编辑,而不需要单独的组合框控件


您可以在组合框的
AfterUpdate
事件中修改子窗体中选定的记录

Private Sub cboStatus_AfterUpdate()
    subForm1.Form!Status = cboStatus
End Sub
这假设组合框控件名为
cboStatus
,子窗体名为
subForm1
,要更新的字段名为Status。它还假设您没有将数字ID用作值的外键

一次只能更新一行


超出你问题的范围

有许多其他方法可以开发编辑行的界面。一种方法是修改表中的字段查找属性。您可以将显示控件更改为组合框,将行源类型设置为值列表,然后将行源设置为可能的值列表(用分号分隔)

现在,无论何时在数据表视图中打开该表(如子窗体上的示例),该列中都会出现一个下拉列表。用户可以在该视图中直接编辑,而不需要单独的组合框控件


表中需要一个字段来接收数据。将该字段设置为组合框(我从不在表中这样做),或者在子窗体中使用窗体对象而不是表,并在窗体上构建组合框。需要在表中设置字段以接收数据。要么将该字段设置为组合框(我从来没有在表中这样做),要么在子表单中使用表单对象而不是表,并在表单上构建组合框。