【问题标题】:How do I autofill a form based on the employee ID entered in access?如何根据在 access 中输入的员工 ID 自动填写表格?
【发布时间】:2019-10-25 05:39:08
【问题描述】:

这是我的第一个数据库项目,请多多包涵。

我目前正在尝试设计一个数据库,我必须在其中创建一个必须由不同员工在需要时填写的表单。同一员工可以多次填写该表格。我目前有

表 1- 此表包含在直接填充表的表单中输入的所有详细信息。

表2- 此表包含所有员工的姓名、电子邮件和员工 ID。

在我的表单中,我使用了一个代码通过 windows 用户名自动填写员工 ID(表单仅由公司员工填写,他们的 windows 登录名是他们的员工 ID)。我想通过将检测到的员工ID与表2中的相应数据核对来自动填写他们的姓名和电子邮件。

我已经尝试过使用组合框(或者我没有正确使用它们),但我不想要下拉列表。我希望将检测到的员工 ID 与表 2 中的相应数据(已经有员工 ID、姓名和电子邮件)进行检查

这可以在不涉及下拉列表的情况下完成吗?

谢谢。

【问题讨论】:

  • 在规范化数据库中,您只需将员工 ID 作为外键存储在 Table1 中。您可以通过加入员工 ID 表来查找姓名或电子邮件或其他任何内容。

标签: sql database forms ms-access autofill


【解决方案1】:

你可以用这样的 Recordset 来做到这一点

Sub FindEmployee
    Dim RST As DAO.Recordset, EmployeeID As Long
    ' You said you have code to get ID:
    EmployeeID = YourIDFunction()
    ' Create recordset with query to your Table2
    Set RST = CurrentDb.OpenRecordset("SELECT [Name], [Email] " _
        & " FROM Table2 WHERE EmployeeID = " & EmployeeID, dbOpenSnapshot)
    If RST.RecordCount > 0 Then
        ' Fill fields on your form with data from recordset:
        Me.NameField = RST(0)
        Me.EmailField = RST(1)
    Else
        ' Nothing is found
    End If
    ' Close and destroy recordset:
    RST.Close
    Set RST = Nothing
End Sub

【讨论】:

  • 效果很好。谢谢!我可能有更多问题,但只要有像你这样的人,我应该没问题。语法对我来说有点混乱。
猜你喜欢
  • 2017-11-07
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
相关资源
最近更新 更多