I DAO als Erik schlägt vor, verwenden würde. Obwohl ich keinen Code habe es von C# zu laufen, sollte das VBA Beispiel hier zeigt die Schritte erforderlich:
' Creates and appends missing relations between the local tables.
' Note, that this will create a hidden index on the foreign table field.
' Returns True if success, False if not.
'
' 2017-11-14. Gustav Brock. Cactus Data ApS, CPH.
'
Public Function CreateLocalDataTableRelations() As Boolean
Dim Database As DAO.Database
Dim Field As DAO.Field
Dim Relation As DAO.Relation
Dim Table As DAO.TableDef
Dim ForeignTable As DAO.TableDef
Dim RelationName As String
Dim Result As Boolean
Set Database = CurrentDb
Set Table = Database.TableDefs("Country")
Set ForeignTable = Database.TableDefs("Zone")
RelationName = Table.Name & "_" & ForeignTable.Name
If Not IsTableRelation(RelationName) Then
' Create and append relation RelationName.
Set Relation = Database.CreateRelation(RelationName)
Relation.Table = Table.Name
Relation.ForeignTable = ForeignTable.Name
Relation.Attributes = dbRelationUpdateCascade
Set Field = Relation.CreateField("Code")
Field.ForeignName = "CountryCode"
Relation.Fields.Append Field
Database.Relations.Append Relation
End If
Set Table = Database.TableDefs("Zone")
Set ForeignTable = Database.TableDefs("Timezone")
RelationName = Table.Name & "_" & ForeignTable.Name
If Not IsTableRelation(RelationName) Then
' Create and append relation RelationName.
Set Relation = Database.CreateRelation(RelationName)
Relation.Table = Table.Name
Relation.ForeignTable = ForeignTable.Name
Relation.Attributes = dbRelationUpdateCascade
Set Field = Relation.CreateField("ZoneId")
Field.ForeignName = "ZoneId"
Relation.Fields.Append Field
Database.Relations.Append Relation
End If
Result = (Err.Number = ErrorNone)
CreateLocalDataTableRelations = Result
End Function
und die Hilfsfunktion:
' Checks if a relation named RelationName exists.
' Returns True if it is found, False if not.
'
' 2017-11-14. Gustav Brock. Cactus Data ApS, CPH.
'
Public Function IsTableRelation(_
ByVal RelationName As String) _
As Boolean
Dim Relation As DAO.Relation
Dim Result As Boolean
For Each Relation In CurrentDb.Relations
If Relation.Name = RelationName Then
Exit For
End If
Next
Result = Not (Relation Is Nothing)
IsTableRelation = Result
End Function
ich theoretisch bedeuten, solange die Datenintegrität bestätigt wurde , so dass es keine Fremdschlüsselfehler gibt, kann ich keinen Grund sehen, dass Sie das – SaggingRufus
nicht tun können, so können Sie nur Tabellen mit den richtigen Schlüsseln erstellen und dann die Beziehungen von einem anderen Programm machen? @SaggingRufus kannst du mir bitte ein Beispiel oder einen Link geben – user2038084
so etwas wie das? http://www.c-sharpcorner.com/forums/creating-relations-in-ms-access-with-c-sharp – SaggingRufus