Compartilhar via


Propriedade Field.ForeignName (DAO)

Aplica-se ao: Access 2013, Office 2013

Define ou retorna um valor que especifica o nome do objeto Field em uma tabela externa que corresponde a um campo em uma tabela primária de uma relação (somente nos espaços de trabalho do Microsoft Access).

Sintaxe

expressão . ForeignName

expressão Uma variável que representa um objeto de Campo.

Comentários

Se o objeto Relation não for acrescentado ao Database, mas Field for acrescentado ao objeto Relation, a propriedade ForeignName será de leitura/gravação. Assim que o objeto Relation for acrescentado ao banco de dados, a propriedade ForeignName será somente leitura.

Somente um objeto Field que pertence à coleção Fields de um objeto Relation pode suportar a propriedade ForeignName.

As configurações das propriedades Name e ForeignName de um objeto Field especificam os nomes dos campos correspondentes nas tabelas primária e externa de uma relação. As configurações das propriedades Table e ForeignTable de um objeto Relation determinam as tabelas primária e externa de uma relação.

Por exemplo, se você tiver uma lista dos códigos de peça válidos (em um campo chamado PartNo) armazenada em uma tabela ValidParts, poderá estabelecer uma relação com uma tabela OrderItem de forma que, se um código de peça for inserido na tabela OrderItem, ele já deverá existir na tabela ValidParts. Se o código de peça não existir na tabela ValidParts e você não tiver definido a propriedade Attributes do objeto Relation como dbRelationDontEnforce, ocorrerá um erro interceptável.

Nesse caso, a tabela ValidParts seria uma tabela externa e, por esse motivo, a propriedade ForeignTable do objeto Relation seria definida como ValidParts e a propriedade Table do objeto Relation seria definida como OrderItem. As propriedades Name e ForeignName do objeto Field da coleção Fields do objeto Relation seriam definidas como PartNo.

Exemplo

Esse exemplo mostra como as propriedades Table, ForeignTable e ForeignName definem os termos de um Relation entre as duas tabelas.

    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