Relation.Table プロパティ (DAO)
適用先: Access 2013、Office 2013
Relation オブジェクトの主テーブルの名前を示します。 これは、 TableDef オブジェクトまたは QueryDef オブジェクトの Name プロパティの設定値と同じである必要があります (Microsoft Access ワークスペースのみ)。
構文
式 。テーブル
式Relation オブジェクトを表す変数。
注釈
Table プロパティの設定は、コレクションにまだ追加されていない新しい Relation オブジェクトでは、値の取得および設定が可能で、 Relations コレクションの既存の Relation オブジェクトでは値の取得のみ可能です。
2 つのテーブルまたはクエリのフィールド間のリレーションシップを表す Relation オブジェクトを定義するには、Table プロパティを ForeignTable プロパティと共に使用します。 Table プロパティは、主 TableDef オブジェクトまたは QueryDef オブジェクトの Name プロパティの設定値に設定し、ForeignTable プロパティは、外部 (参照) TableDef オブジェクトまたは QueryDef オブジェクトの Name プロパティの設定値に設定します。 Attributes プロパティは、2 つのオブジェクト間のリレーションシップの種類を決定します。
たとえば、有効なパーツ コード (PartNo という名前のフィールド) の一覧が ValidParts テーブルに保存されているとき、OrderItem テーブルとの一対多リレーションシップを確立して、パーツ コードを OrderItem テーブルに入力する場合、ValidParts テーブルにもそのパーツ コードが既に存在している必要があるようにできます。 パーツ コードが ValidParts テーブルに存在しておらず、 Relation オブジェクトの Attributes プロパティを dbRelationDontEnforce に設定していない場合は、トラップ可能なエラーが発生します。
この例では、ValidParts テーブルが主テーブルになるため、 Relation オブジェクトの Table プロパティが ValidParts に設定され、 Relation オブジェクトの ForeignTable プロパティが OrderItem に設定されます。 Relation オブジェクトの Fields コレクション内の Field オブジェクトの Name プロパティと ForeignName プロパティは PartNo に設定されます。
例
次の例では、 Table、 ForeignTable、および ForeignName の各プロパティによる 2 つのテーブル間の Relation の条件を定義する方法を示します。
Sub ForeignNameX()
Dim dbsNorthwind As Database
Dim relLoop As Relation
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Debug.Print "Relation"
Debug.Print " Table - Field"
Debug.Print " Primary (One) ";
Debug.Print ".Table - .Fields(0).Name"
Debug.Print " Foreign (Many) ";
Debug.Print ".ForeignTable - .Fields(0).ForeignName"
' Enumerate the Relations collection of the Northwind
' database to report on the property values of
' the Relation objects and their Field objects.
For Each relLoop In dbsNorthwind.Relations
With relLoop
Debug.Print
Debug.Print .Name & " Relation"
Debug.Print " Table - Field"
Debug.Print " Primary (One) ";
Debug.Print .Table & " - " & .Fields(0).Name
Debug.Print " Foreign (Many) ";
Debug.Print .ForeignTable & " - " & _
.Fields(0).ForeignName
End With
Next relLoop
dbsNorthwind.Close
End Sub