Tipp 4.7 - Alle Daten löschen
Wie kann ich alle Tabellendaten auf einmal löschen?
Mit dieser Funktion können Sie alle Tabellendaten auf einmal löschen. Diese Routine benötigt die Funktion A2XIsSysObject. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.
Beispiel:
Public Function A2XEmptyAllTbls(pdbs As DAO.Database) _ As Boolean '// ===================================================== '// Methode | Löscht alle Daten aus den Tabellen '// ----------------------------------------------------- '// Hinweis | Berücksichtigen Sie, dass die Regeln ' der referentieller Integrität einge- ' halten werden. Ggf. müssen Sie die ' Routine ein weiteres Mal aufrufen ' oder zuvor die Beziehungen löschen! '// ----------------------------------------------------- '// Parameter | pdbs - Datenbankobjekt '// ----------------------------------------------------- '// Rückgabe | Boolean - True erfolgreich/False Problem '// ----------------------------------------------------- '// Erstellt | Manuela Kulpa '// | EDV Innovation & Consulting - Dormagen '// ----------------------------------------------------- '// Beispielaufruf: '// ?A2XEmptyAllTbls(CurrentDb) '// ===================================================== Dim tdf As DAO.TableDef Dim sSQL As String On Error GoTo A2XEmptyAllTbls_Error If MsgBox("Sind Sie wirklich sicher, dass Sie alle Daten " & _ "aus Ihren Tabellen löschen möchten? ", _ vbQuestion + vbYesNo) = vbYes Then ' Schleife über alle Tabellen For Each tdf In pdbs.TableDefs ' Überprüfung auf Systemobject ' Achtung benötigt die Funktion: A2XIsSysObject If A2XIsSysObject(CurrentData.AllTables(tdf.Name)) _ = False Then ' Löschabfrage zusammenbasteln sSQL = "DELETE * FROM [" & tdf.Name & "]" ' Löschabfrage ausführen pdbs.Execute sSQL End If Next tdf End If A2XEmptyAllTbls = True A2XEmptyAllTbls_Exit: On Error GoTo 0 If Not tdf Is Nothing Then Set tdf = Nothing Exit Function A2XEmptyAllTbls_Error: A2XEmptyAllTbls = False Select Case Err.Number Case Else MsgBox "Fehler " & Err.Number & ": " & _ Err.Description, vbCritical, _ "modData.A2XEmptyAllTbls" End Select Resume A2XEmptyAllTbls_Exit End Function