【问题标题】:Access 2013 - Set a field value based on value of another fieldAccess 2013 - 根据另一个字段的值设置字段值
【发布时间】:2015-06-10 02:44:53
【问题描述】:

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

  • 短缺
  • 已分配
  • 已执行
  • 已确认
  • 完成

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

  • 短缺日期
  • 分配日期
  • 行动日期
  • Acknowledged_date
  • 完成日期

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

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

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

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

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

希望我说得通!

【问题讨论】:

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


    【解决方案1】:

    首先,我会在字段本身上设置一个Input Mask。您可以通过将表单放入设计视图,然后选择字段,然后转到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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 2020-08-04
      相关资源
      最近更新 更多