Access 2013 - 根据另一个字段的值设置字段值
Access 2013 - Set a field value based on value of another field
我有一个组合框(状态),其中包括以下内容:
- 短缺
- 已分配
- 已采取行动
- 已确认
- 完成
我还有另外5个日期字段如下:
- Shortage_date
- Allocated_date
- Actioned_date
- Acknowledged_date
- Complete_date
但是我希望根据我之前字段中输入的数据自动填充此状态。
例如,一旦 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 Sheet
即 Alt+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
我有一个组合框(状态),其中包括以下内容:
- 短缺
- 已分配
- 已采取行动
- 已确认
- 完成
我还有另外5个日期字段如下:
- Shortage_date
- Allocated_date
- Actioned_date
- Acknowledged_date
- Complete_date
但是我希望根据我之前字段中输入的数据自动填充此状态。
例如,一旦 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 Sheet
即 Alt+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