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

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

  1. 工作(文本)
  2. 后缀(整数)
  3. 生产日期(日期)
  4. 班次(文字)
  5. 开始时间(时间)

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

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

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

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

【问题讨论】:

    标签: forms ms-access autofill


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2011-04-16
      • 2020-05-25
      • 1970-01-01
      • 2011-09-19
      • 2019-04-16
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多