Tabellen - Feld löschen
Wie kann ich ein Feld löschen?
Sollte es die Situation erfordern, muss auch schon mal ein Feld gelöscht werden. Bitte beachten Sie, dass nur Felder gelöscht werden können, die keinen Index besitzen und achten Sie darauf, dass die Datenintegrität gewährleistet bleibt. Falls nötig, löschen Sie zunächst den Index und dann erst das Feld.
DAO-Variante
Beispiel:
Public Function DAO_DeleteField(pdbs As DAO.Database, _ ByVal psTable As String, _ ByVal psField As String) As Boolean On Error Resume Next pdbs.TableDefs(psTable).Fields.Delete psField DAO_DeleteField = (Err.Number = 0) End Function
ADOX-Variante
Beispiel:
Public Function ADO_DeleteField(pcnn As ADODB.Connection, _ ByVal psTable As String, _ ByVal psField As String) As Boolean Dim cat As New ADOX.Catalog On Error Resume Next cat.ActiveConnection = pcnn cat.Tables(psTable).Columns.Delete psField ADO_DeleteField = (Err.Number = 0) If Not cat Is Nothing Then Set cat = Nothing End Function
SQL-DDL-Variante
Beispiel:
' DAO-Variante Public Function DDL_DeleteFieldDao(pdbs As DAO.Database, _ psTable As String, _ psFieldName As String) As Boolean On Error Resume Next Dim sSQL As String sSQL = "ALTER TABLE " & psTable & " DROP COLUMN " & psFieldName pdbs.Execute sSQL, dbFailOnError DDL_DeleteFieldDao = (Err.Number = 0) End Function ' ADO-Variante Public Function DDL_DeleteFieldADO(pcnn As ADODB.Connection, _ psTable As String, _ psFieldName As String) As Boolean On Error Resume Next Dim sSQL As String sSQL = "ALTER TABLE " & psTable & " DROP COLUMN " & psFieldName pcnn.Execute sSQL, dbFailOnError DDL_DeleteFieldADO = (Err.Number = 0) End Function