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