MS Access:如何使此文本框根据查询自动填充值?

Posted

技术标签:

【中文标题】MS Access:如何使此文本框根据查询自动填充值?【英文标题】:MS Access: How can I make this textbox automatically fill in a value based on a query? 【发布时间】:2016-06-02 13:00:11 【问题描述】:

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

    工作(文本) 后缀(整数) 生产日期(日期) 班次(文字) 开始时间(时间)

用户填写这些框,然后提交表单以写入表格。用户每班使用相同的信息多次执行此操作。

问题:有时用户忘记填写第5个文本框,所以我想简单地在表格中查看他们之前提交的值,并在文本框中填写最大开始时间。

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

目标: 5 个文本框一开始应该是空白的(目前是空白)。用户填写前 4 个文本框后,第 5 个文本框应填充最长开始时间。

【问题讨论】:

【参考方案1】:

您需要为 4 个字段添加更新后代码,该代码应检查所有 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

【讨论】:

以上是关于MS Access:如何使此文本框根据查询自动填充值?的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 报告:如何根据显示的文本在文本框中添加换行符

如何根据每条记录的连续表单中 ms-access 中的其他值填充文本框上的值

根据另一个文本框填充文本框值 - Ms Access

如何使 MS Access 直通查询在 SQL Server 中正确运行

MS Access - 自动填充在组合框中不起作用

MS Access,根据多个标准表单输入选择记录