Database 用于更新access中的字段的VBA代码

Database 用于更新access中的字段的VBA代码,database,forms,ms-access,vba,Database,Forms,Ms Access,Vba,我的目标是根据“专业”字段中的条目更新“专业代码”字段。例如,如果他们选择了护士从业者,我希望专业代码字段自动更新为000 我使用了以下代码,但无效: Private Sub SpecialtyCode_BeforeUpdate(Cancel As Integer) Me.SpecialtyCode.Value = DLookup("[HSD_Code]", "Crosswalk_ProviderHSD", "[Specialty] = Me.Specialty.Value") End Sub

我的目标是根据“专业”字段中的条目更新“专业代码”字段。例如,如果他们选择了
护士从业者
,我希望专业代码字段自动更新为
000

我使用了以下代码,但无效:

Private Sub SpecialtyCode_BeforeUpdate(Cancel As Integer)
Me.SpecialtyCode.Value = DLookup("[HSD_Code]", "Crosswalk_ProviderHSD", 
"[Specialty] = Me.Specialty.Value")
End Sub
HSD代码是我想要拉的专业代码,人行横道是我想要参考的表格


对于给定邮政编码的县和地区数据,我也希望这样做。我知道我的密码错了。正确的语法是什么?是否有更有效的方法来完成此操作?

您不能在自己的BeforeUpdate事件中更新字段。你的DLookup语法是错误的

试试这个:

Private Sub Form_BeforeUpdate(Cancel As Integer)
    Me.SpecialtyCode.Value = _
    DLookup("[HSD_Code]", "Crosswalk_ProviderHSD", "[Specialty] = '" & Me.Specialty.Value & "'")
End Sub

也就是说,请倾听有关查询的评论。

您不能在其自身的BeforeUpdate事件中更新该字段。你的DLookup语法是错误的

试试这个:

Private Sub Form_BeforeUpdate(Cancel As Integer)
    Me.SpecialtyCode.Value = _
    DLookup("[HSD_Code]", "Crosswalk_ProviderHSD", "[Specialty] = '" & Me.Specialty.Value & "'")
End Sub

也就是说,听听关于查询的评论。

既然您已经标记了“表单”,我想您的数据是在表单上显示/选择的?表单是否“绑定”到基础记录集?“选择”在哪里?它是一个组合框吗?@WayneG.Dunn-是,表单绑定到一个基础表,该表包含与提供程序相关的其他数据。是的,它是一个组合框,包含一系列特色菜。这些专业及其相关代码位于名为Crosswalk_ProviderHSD的单独表格中。我想在从下拉列表中选择专业后更新“代码”字段。通常,您使用的组合框包含多个列,其中一些列可以选择隐藏。然后将控件“绑定”到组合框的某一列,以便在选择“护士…”时,实际数据库值保存为“000”。i、 e.组合框的rowsource从“Crosswalk…”表(Nurse P…)中选择您想要的任何字段,包括它的唯一键(000)。将ControlSource设置为绑定表中的HSD代码;将列宽度设置为0以隐藏某些列;将绑定列设置为“护士…”列。立即保存或移动到另一个记录时保存?您可能有点想得太多了。。。所有这些都应该可以通过查询实现。能否列出所有控件和表名以及相关字段?如果您在使用重新查询更新后更改绑定控件的基础数据,可能更合适。@WayneG.Dunn我尝试了您的示例,但找不到ControlSource选项,因为您标记了“表单”,我假设您的数据显示/选择在表单上?表单是否“绑定”到基础记录集?“选择”在哪里?它是一个组合框吗?@WayneG.Dunn-是,表单绑定到一个基础表,该表包含与提供程序相关的其他数据。是的,它是一个组合框,包含一系列特色菜。这些专业及其相关代码位于名为Crosswalk_ProviderHSD的单独表格中。我想在从下拉列表中选择专业后更新“代码”字段。通常,您使用的组合框包含多个列,其中一些列可以选择隐藏。然后将控件“绑定”到组合框的某一列,以便在选择“护士…”时,实际数据库值保存为“000”。i、 e.组合框的rowsource从“Crosswalk…”表(Nurse P…)中选择您想要的任何字段,包括它的唯一键(000)。将ControlSource设置为绑定表中的HSD代码;将列宽度设置为0以隐藏某些列;将绑定列设置为“护士…”列。立即保存或移动到另一个记录时保存?您可能有点想得太多了。。。所有这些都应该可以通过查询实现。能否列出所有控件和表名以及相关字段?如果您在使用重新查询更新后更改绑定控件的基础数据,可能更合适。@WayneG.Dunn我尝试了您的示例,但找不到ControlSource选项