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

时间:2015-06-09 14:28:21

标签: vba ms-access ms-access-2013

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

  • 分配
  • 付诸行动
  • 应答
  • 完整

我还有其他5个日期字段,如下所示:

  • Shortage_date
  • Allocated_date
  • Actioned_date
  • Acknowledged_date
  • Complete_date

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

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

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

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

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

希望我有意义!

1 个答案:

答案 0 :(得分:2)

首先,我会在场地上设置一个Input Mask。您可以将表单放入设计视图,然后选择字段,然后选择Property Sheet Alt+Enter如果它未打开,则选择Data标签并设置一个Input Mask。这将处理您的验证部分,因此您不必使用代码。

然后你应该可以使用代码:

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

If语句只是为了确保每次更改日期时都不会将值重置为原始值。此处还有一个链接,您可以在其中阅读Input Maskshttps://msdn.microsoft.com/en-us/library/office/ff821336.aspx

更新:已更改为Input Mask而非Validation Rule