Автоматическое заполнение поля в access 2003 данными из другой таблицы

#database #forms #ms-access #hyperlink

#База данных #формы #ms-access #гиперссылка

Вопрос:

У меня есть база данных access 2003 со многими таблицами. Вот пример того, чего я пытаюсь достичь. У меня есть таблица и форма для моих кандидатов. В этой таблице есть поле для имени и поле для регистрационного номера. Возможно ли, чтобы моя другая форма автоматически заполняла регистрационный номер в этой форме при выборе того же имени. Например, если у меня есть кандидат в моей таблице кандидатов с заполненным регистрационным номером. Если я выберу этого кандидата в своей другой форме, как я могу заставить его автоматически заполнять регистрационный номер. Надеюсь, это достаточно понятно. Буду признателен за любую помощь. Спасибо.

Ответ №1:

Это можно сделать несколькими способами.

Если вы используете поле со списком для выбора кандидата из таблицы кандидатов, регистрационный номер может быть одним из столбцов, и в этом случае вы можете просто обратиться к столбцу в controlsource текстового поля:

  =MyCombo.Column(2)
  

Аналогично, вы можете использовать DLookup, но это может быть сравнительно медленным, если ваши таблицы большие:

  =DlookUp("enrollmentnumber","candidates","UniqueNumericID=" UniqueNumericID)
  

Где UniqueNumericID — это элемент управления или поле (столбец) в форме или наборе записей формы.

Также может быть возможно создать запрос, содержащий все соответствующие данные, и использовать его для источника записей вашей формы. Обычно это довольно хорошее решение, например:

 SELECT This, That, Candidates.EnrollmentNumber 
FROM ExamsJunctionTable 
INNER JOIN Candidates 
ON ExamsJunctionTable.CandidateID = Candidates.UniqueCandidateID
  

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