Vba Access 2013-基于另一个字段的值设置字段值

Vba Access 2013-基于另一个字段的值设置字段值,vba,ms-access,ms-access-2013,Vba,Ms Access,Ms Access 2013,我有一个组合框(状态),其中包括以下内容: 短缺 分配 采取行动 承认 完整的 我还有5个其他日期字段,如下所示: 缺货日期 分配日 诉讼日期 确认日期 完成日期 但是,我希望根据在以前字段中输入的数据自动填充此状态 例如,一旦短缺日期填充了有效日期(00/00/0000),我希望“状态”更改为“短缺” 一旦分配日期已填入有效日期(00/00/0000),我希望“状态”更改为“已分配” 我在网上看到了这段代码,但我完全糊涂了: Private Sub Textbox1_AfterUpda

我有一个组合框(状态),其中包括以下内容:

  • 短缺
  • 分配
  • 采取行动
  • 承认
  • 完整的
我还有5个其他日期字段,如下所示:

  • 缺货日期
  • 分配日
  • 诉讼日期
  • 确认日期
  • 完成日期
但是,我希望根据在以前字段中输入的数据自动填充此状态

例如,一旦短缺日期填充了有效日期(00/00/0000),我希望“状态”更改为“短缺”

一旦分配日期已填入有效日期(00/00/0000),我希望“状态”更改为“已分配”

我在网上看到了这段代码,但我完全糊涂了:

Private Sub Textbox1_AfterUpdate()

    If Textbox1.Value = "1" Then
       Textbox2.Value = "10"

    End If

End Sub
我相信我的应该像这样,但我不知道我需要什么来确保它验证日期

Private Sub shortage_date_AfterUpdate()

    If shortage_date.Value = "(I want to valididate the date here)" Then
      Status.Value = "Status"

    End If

End Sub

希望我有道理

首先,我会在字段本身上设置一个
输入掩码。您可以通过将表单放入设计视图,然后选择字段,然后转到
属性表
,即
Alt+Enter
,如果该属性表未打开,则选择
数据
选项卡并设置
输入掩码
。这将处理您的验证部分,这样您就不必在代码中进行验证

然后,您应该能够使用以下代码:

Private Sub shortage_date_AfterUpdate()
      If Nz(shortage_date.Value, "") <> "" Then
         Status.Value = "Status"
      End If
End Sub
Private Sub-shorth\u date\u AfterUpdate()
如果Nz(短缺日期值“”),则
Status.Value=“Status”
如果结束
端接头
If
语句只是为了确保不会在每次更改日期时将值重置回原始值。这里还有一个链接,您可以在其中阅读有关输入掩码的信息:

更新:更改为
输入掩码
,而不是
验证规则