Tabellen - Löschen
Wie kann ich eine Tabelle löschen?
Zum Löschen einer Tabelle gibt es ebenfalls mehrere Möglichkeiten. Bei allen Varianten werden als Parameter die Verbindung zur Database und der Tabellenname übergeben. Bitte berücksichtigen Sie, falls vorhanden, die Gewährleistung der referentiellen Integrität!
DAO-Variante
Wenn Sie eine Tabelle mit DAO löschen wollen, müssen Sie das dazugehörige TableDef-Objekt aus der TableDefs-Auflistung entfernen.
Beispiel:
Public Function DAO_DeleteTable(pdbs As DAO.Database, psTable As String) As Boolean On Error GoTo HandleErr If TableExistsDAO(pdbs, psTable) Then pdbs.TableDefs.Delete psTable DAO_DeleteTable = True End If HandleExit: Exit Function HandleErr: Select Case Err.Number Case Else MsgBox "Fehler " & Err.Number & ": " & _ Err.Description, vbCritical, _ "modKap02.DAO_DeleteTable" End Select DAO_DeleteTable = False Resume HandleExit End Function
ADOX-Variante
Hier beziehen Sie sich wieder auf das Catalog-Objekt und der entsprechenden Tables-Auflistung.
Beispiel:
Public Function ADO_DeleteTable(pcnn As ADODB.Connection, psTable As String) On Error GoTo HandleErr Dim cat As New ADOX.Catalog If TableExistsADOX(pcnn, psTable) Then cat.ActiveConnection = pcnn cat.Tables.Delete psTable ADO_DeleteTable = True End If HandleExit: If Not cat Is Nothing Then Set cat = Nothing Exit Function HandleErr: Select Case Err.Number Case Else MsgBox "Fehler " & Err.Number & ": " & _ Err.Description, vbCritical, _ "modKap02.ADO_DeleteTable" End Select ADO_DeleteTable = False Resume HandleExit End Function
SQL-DDL-Variante
Mit Hilfe der DROP TABLE-Anweisung können Sie eine existierende Tabelle aus der Datenbank entfernen. Hierzu müssen Sie lediglich noch den Namen der zu löschenden Tabelle kennen, den Sie der der Anweisung spezifizieren müssen.
Beispiel:
'// DAO-Variante Public Function DLL_DeleteTableDao(pdbs As DAO.Database, psTable As String) As Boolean On Error GoTo HandleErr Dim sSQL As String If TableExistsDAO(pdbs, psTable) Then sSQL = "DROP TABLE " & psTable pdbs.Execute sSQL, dbFailOnError DLL_DeleteTableDao = True End If HandleExit: Exit Function HandleErr: Select Case Err.Number Case Else MsgBox "Fehler " & Err.Number & ": " & _ Err.Description, vbCritical, _ "modKap02.DLL_DeleteTAble" End Select DLL_DeleteTableDao = False Resume HandleExit End Function '// ADO-Variante Public Function DLL_DeleteTableAdo(pcnn As DAO.Database, psTable As String) As Boolean On Error GoTo HandleErr Dim sSQL As String If TableExistsDAO(pdbs, psTable) Then sSQL = "DROP TABLE " & psTable pcnn.Execute sSQL, dbFailOnError DLL_DeleteTableAdo = True End If HandleExit: Exit Function HandleErr: Select Case Err.Number Case Else MsgBox "Fehler " & Err.Number & ": " & _ Err.Description, vbCritical, _ "modKap02.DLL_DeleteTableAdo" End Select DLL_DeleteTableAdo = False Resume HandleExit End Function