Benutzung auf eigene Gefahr ! |
Beschreibung |
Löscht alle Beziehungen in einer Datenbank und dokumentiert diese in einer Tabelle für eine Wiederherstellung mit der Prozedur 'BeziehungenErstellen'. |
VBA-Quelltext |
Public Sub BeziehungenLöschen(NameTabelle As String) Dim Beziehung As DAO.Relation, BeziehungsTabelle As DAO.Recordset Dim Nr As Integer, BeziehungsNr As Integer ''' Alle Beziehungen In einer Tabelle dokumentieren If NameTabelle <> vbNullString Then If RecordSetExistiert(NameTabelle) Then If MsgBox("Tabelle '" & NameTabelle & "' existiert bereits. Überschreiben ?", vbOKCancel, "Beziehungen löschen") = vbCancel Then Exit Sub DoCmd.DeleteObject acTable, NameTabelle End If ' Tabelle erstellen DoCmd.RunSQL "CREATE TABLE [" & NameTabelle & "] ([BeziehungsNr] Byte, [Name] TEXT, [Table] TEXT, [ForeignTable] TEXT, [Attributes] Long, [PartialReplica] BIT, [FieldName] TEXT, [ForeignFieldName] TEXT);" Set BeziehungsTabelle = CurrentDb.OpenRecordset(NameTabelle) BeziehungsNr = 0 ' Einzelne Beziehungen untersuchen For Each Beziehung In CurrentDb.Relations BeziehungsNr = BeziehungsNr + 1 ' Einzelne Felder In jeder Beziehung untersuchen For Nr = 0 To Beziehung.Fields.Count - 1 With BeziehungsTabelle .AddNew ' Attribute der Beziehung ![BeziehungsNr] = BeziehungsNr ![Name] = Beziehung.Name ![TABLE] = Beziehung.TABLE ![ForeignTable] = Beziehung.ForeignTable ![Attributes] = Beziehung.Attributes ![PartialReplica] = Beziehung.PartialReplica ![FieldName] = Beziehung.Fields(Nr).Name ![ForeignFieldName] = Beziehung.Fields(Nr).ForeignName .Update End With Next Nr Next Beziehung BeziehungsTabelle.Close End If ''' Alle Beziehungen löschen For Each Beziehung In CurrentDb.Relations CurrentDb.Relations.Delete Beziehung.Name Next Beziehung End Sub |
Argumente der Funktion/Prozedur |
Wird kein Argument übergeben, erstellt das Programm keine Tabelle und löscht einfach nur alle Beziehungen. |
Hinweis |
Um die Beziehungen wieder aus der Tabelle zu erstellen, kann die Funktion |
Anwendungsgebiete, Fehler und Warnungen |
Verwendet die DAO Objektbibliothek. Ab Access 2000 muss diese explizit im VBA-Editor über 'Extras' -> 'Verweise' als 'Microsoft DAO 3.6' (oder höher) eingebunden werden und vor die 'Microsoft ADO 2.1' (oder höher) Bibliothek gesetzt werden. |