Обеспечить ссылочную целостность с помощью связанной таблицы
В настоящее время я создаю и поддерживаю ряд баз данных MS Access, предназначенных для замены систем бумажных документов, где я работаю. В рамках этой работы я использую простые комбинации имени пользователя и пароля вместо подписи на документе и хотел бы, чтобы комбинация имени пользователя и пароля была общей для всех документов, для этого я создал отдельную базу данных, содержащую только пользовательскую информацию это общее для всех разных документов.
Однако для каждой базы данных документов мне бы хотелось иметь таблицу "разрешений", в которой есть набор полей "Да / Нет", определяющих, какие разрешения имеет пользователь в отношении этого конкретного документа, очевидно, я бы хотел сохранить ссылочную целостность между таблицей разрешений. и таблица пользователей. Все рассматриваемые базы данных хранятся на общем диске.
Сначала я подумал, что в WhwhatDoc.mdb я мог бы связать таблицу tblUsers в Users.mdb, а затем создать взаимно-однозначное отношение между полем имени пользователя в tblUsers и tblPermissions, но мне кажется, что я не могу принудительно применить ссылочный целостность, когда я создаю отношения со связанной таблицей.
Есть ли обходной путь для этого? Я открыт для решений с участием VBA, но подумал, что я задам здесь, а не StackOverflow, так как это не вопрос программирования.
2 ответа
Создайте внутреннюю базу данных со всеми вашими таблицами и установите отношения в этой базе данных. Затем свяжите все таблицы на сервере с вашей базой данных, содержащей все ваши формы, запросы и код.
Решение, которое я сейчас использую:
В дизайне таблицы для tblPermissions выберите поле User и затем на вкладке Lookup для параметров поля установите следующие параметры.
Display Control: Combo Box
Row Source Type: Table/Query
Row Source: SELECT Username FROM tblUsers;
Limit To List: Yes
Это препятствует тому, чтобы поле User в tblPermissions содержало значение, которое не присутствует в поле Имя пользователя tblUsers из-за того, что для опции "Limit To List" установлено значение yes для соответствующего источника строки.