Описание
Задает или возвращает значение, представляющее для связи имя объекта Field внешней таблицы, соответствующего полю в главной таблице (только в рабочей области Microsoft Jet).
Значение
Задаваемое или возвращаемое значение данного свойства имеет тип String и содержит имя объекта Field в семействе Fields соответствующего объекта TableDef.
Если объект Relation еще не добавлен в объект Database, а объект Field уже добавлен в объект Relation, то свойство ForeignName доступно для чтения/записи. После добавления объекта Relation в базу данных свойство ForeignName становится доступным только для чтения.
Замечания
Свойство ForeignName поддерживается только объектами Field, принадлежащими к семейству Fields, которое содержится в объекте Relation.
Значения свойств Name и ForeignName объекта Field указывают имена связываемых полей в главной и внешней таблице связи. Значения свойств Table и ForeignTable объекта Relation задают имена главной и внешней таблицы связи.
Например, если в поле "КодДетали" таблицы "Детали" содержатся уникальные коды запасных частей, то можно определить связь с таблицей "Заказы" таким образом, чтобы в таблицу "Заказы" можно было вводить только значения кодов, уже существующих в таблице "Детали". В этом случае попытка ввести значение, отсутствующее в таблице "Детали", приведет к перехватываемой ошибке, если только не задано с помощью константы dbRelationDontEnforce принудительное выполнение условий целостности данных с помощью свойства Attributes объекта Relation.
В этом примере таблица "Детали" является внешней таблицей с ключом, поэтому значением свойства ForeignTable объекта Relation должно быть имя таблицы "Детали", а значением свойства Table объекта Relation должно быть имя таблицы "Заказы". Свойства Name и ForeignName объекта Field в семействе Fields объекта Relation должны иметь значение "Код детали".
Описанную выше связь иллюстрирует следующий рисунок:
Пример
Следующая программа демонстрирует применение свойств Table, ForeignTable и ForeignName для определения параметров объекта Relation (связи) между двумя таблицами.
Sub ForeignNameX() Dim dbsNorthwind As Database Dim relLoop As Relation Set dbsNorthwind = OpenDatabase("Борей.mdb") Debug.Print "Связь" Debug.Print " Table - Field" Debug.Print " Главная (сторона 'один') "; Debug.Print ".Table - .Fields(0).Name" Debug.Print " Внешняя (сторона 'многие') "; Debug.Print ".ForeignTable - .Fields(0).ForeignName" ' Отображает семейство Relations базы данных 'Борей', ' значения свойств объекта Relation и содержащихся ' в нем объектов Field. For Each relLoop In dbsNorthwind.Relations With relLoop Debug.Print Debug.Print "Связь " & .Name Debug.Print " Таблица - Поле" Debug.Print " Главная (сторона 'один') "; Debug.Print .Table & " - " & .Fields(0).Name Debug.Print " Внешняя (сторона 'многие') "; Debug.Print .ForeignTable & " - " & .Fields(0).ForeignName End With Next relLoop dbsNorthwind.Close End Sub