Access 2013 - 根据另一个字段的值设置字段值

Access 2013 - Set a field value based on value of another field

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

我还有另外5个日期字段如下:

但是我希望根据我之前字段中输入的数据自动填充此状态。

例如,一旦 shortage_date 填充了有效日期 (00/00/0000),我希望 "status" 更改为 "shortage"。

一旦 allocated_date 填充了有效日期 (00/00/0000),我希望 "status" 更改为 "allocated"。

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

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

希望我说得有道理!

首先,我会在场地上设置一个 Input Mask。您可以通过将表单放入设计视图,然后 select 字段,然后转到 Property SheetAlt+Enter 如果它未打开,然后 select Data 选项卡并设置 Input Mask。这将处理您的验证部分,因此您不必在代码中。

那么你应该可以只使用代码:

Private Sub shortage_date_AfterUpdate()
      If Nz(shortage_date.Value, "") <> "" Then
         Status.Value = "Status"
      End If
End Sub

If 语句只是为了确保它不会在每次更改日期时都将值重置回原始值。这里还有 link,您可以在其中阅读有关 Input Masks 的信息:https://msdn.microsoft.com/en-us/library/office/ff821336.aspx

更新:更改为 Input Mask 而不是 Validation Rule