Как мне заполнить форму на основе идентификатора сотрудника, введенного в доступе? - PullRequest
0 голосов
/ 10 июня 2019

Это мой первый проект базы данных, поэтому, пожалуйста, потерпите меня.

В настоящее время я пытаюсь создать базу данных, в которой мне нужно создать форму, которая должна заполняться разными сотрудниками при необходимости. Форма может быть заполнена одним и тем же сотрудником более одного раза. У меня в настоящее время есть

Таблица 1 - Эта таблица содержит все детали, которые вводятся в форму, которая непосредственно заполняет таблицу.

Таблица 2 - Эта таблица содержит имена всех сотрудников, адрес электронной почты и идентификатор сотрудника.

В моей форме я использовал код для автоматического заполнения идентификатора сотрудника с помощью имени пользователя Windows (формы заполняются только сотрудником компании, а их логин в Windows является идентификатором сотрудника). Я хочу автоматически заполнить их имя и адрес электронной почты, проверив идентифицированный идентификатор сотрудника с соответствующими данными в Таблице 2.

Я уже пытался использовать поля со списком (или, может быть, я не правильно их использую), но я не хочу выпадающий список. Я хочу, чтобы обнаруженный идентификатор сотрудника был проверен с соответствующими данными в таблице 2 (в которой уже есть идентификатор сотрудника, имя и адрес электронной почты)

Возможно ли это сделать, не используя раскрывающийся список?

Спасибо.

1 Ответ

1 голос
/ 10 июня 2019

Вы можете сделать это с помощью 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

...