Шаг 213 - Свойство Table

Описание
Задает или возвращает значение, указывающее имя главной таблицы связи, представленной объектом Relation. Данное имя должно совпадать со значением свойства Name объекта TableDef или QueryDef (только в рабочей области Microsoft Jet).

Значение
Задаваемое или возвращаемое значение является выражением типа String, значением которого является имя таблицы, входящей в семейство TableDefs, или запроса из семейства QueryDefs. Значение свойства Table доступно для чтения/записи для нового объекта Relation, еще не добавленного в семейство, и доступно только для чтения для существующего объекта Relation в семействе Relations.

Замечания
Свойство Table применяется вместе со свойством ForeignTable (внешняя таблица с ключом) для определения объекта Relation, который представляет связь между полями из двух таблиц или запросов. Значение свойства Table должно представлять значение свойства Name объекта TableDef или QueryDef, описывающего главную таблицу или главный запрос связи, а значение свойства ForeignTable должно представлять значение свойства Name объекта TableDef или QueryDef, описывающего внешнюю (адресующую) таблицу с ключом или запрос. Тип связи между двумя объектами определяется значением свойства Attributes.

Например, если имеется список кодов запасных частей (в поле "КодДетали"), сохраненный в таблице "Детали", то можно определить связь с отношением "один-ко-многим" с таблицей "Заказы" таким образом, чтобы в таблицу "Заказы" можно было вводить только значения кодов, уже существующих в таблице "Детали". В этом случае попытка ввести значение, отсутствующее в таблице "Детали", приведет к перехватываемой ошибке, если только не задано принудительное выполнение условий целостности данных с помощью значения dbRelationDontEnforce свойства Attributes объекта Relation.

В этом примере таблица "Детали" является главной таблицей, поэтому значением свойства Table объекта Relation должно быть имя таблицы "Детали", а значением свойства ForeignTable объекта Relation должно быть имя "Заказы". Свойства Name и ForeignName объекта Field из семейства Fields объекта Relation должны иметь значение "КодДетали".

Следующий рисунок иллюстрирует данную связь:

213_1.gif (4338 b)

Пример
Следующая программа демонстрирует применение свойств 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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 17.04.2002