MS Access:如何使此文本框自动填写基于查询的值?

时间:2016-06-02 13:00:12

标签: forms ms-access autofill

我在表单上有5个文本框。

  1. 工作(文字)
  2. 后缀(整数)
  3. 生产日期(日期)
  4. shift(text)
  5. 开始时间(时间)
  6. 用户填写这些框,然后提交表单以写入表格。用户使用相同的信息每班多次执行此操作。

    问题:有时用户会忘记填写第5个文本框,因此我只想检查其先前在表格中提交的值,并使用最长开始时间填写文本框。

    我尝试了什么:我做了一个查询,将前4个文本框作为标准,然后返回最大开始时间。该查询有效,但我无法在表单上默认显示该查询。我使用默认值属性指向查询中的正确值,但没有显示任何内容。

    目标: 5个文本框最初应为空白(当前为空)。在用户填写前4个文本框后,第5个框应填充最大开始时间。

1 个答案:

答案 0 :(得分:0)

您需要为4个字段添加AfterUpdate代码,该字段应检查所有4个第一个字段的值,如果它们不为空,请使用查询中的DLookup填充第5个文本框。

例如,你可以从所有AfterUpdate事件中调用这样的函数:

Private Function CheckData()
If Nz(Me.job, "") <> "" And Nz(Me.suffix, "") <> "" _
    And Nz(Me.[production date], "") <> "" And Nz(Me.Shift, "") <> "" Then

    Me.[start time] = DLookup("start time", "MyQuery", "job='" & Me.job & _
        "' and suffix=" & Me.suffix & " and [production date]=#" & _
        Format(Me.[production date], "yyyy/mm/dd") & "# and Shift='" & Me.Shift & "'")

End If
End Function