2016-08-02 6 views
3

Ich habe eine Funktion, die ich mache, um ein bestimmtes Feld aus einer Tabelle zu löschen, die ich in MS Access erstellt habe. haben this Frage als Referenz verwendet. Wie kann ich das löschen ein spezifiziertes Feld machen? Hier ist, was ich bisher:Wie kann ich ein Feld aus einer Tabelle in Access VBA löschen

Private Function removeFieldsFromIIPM(tableName As String, fieldToDrop As String) 

    Dim dbs As Database 
    Dim field As field 

    Set dbs = CurrentDb() 
    Set field = dbs.TableDefs([tableName]).Fields(fieldToDrop) 
    dbs.TableDefs([tableName]).Fields.Delete field.Name 
    dbs.Close 
    TableDefs.Refresh 

End Function 
+1

ich Sie fragen, warum Sie einfach die Spalte mit SQL fallen Dont? Oder versuchen Sie es einfach mit 'dbs.TableDefs ([tableName]). Fields.Delete fieldToDrop' – lokusking

Antwort

5

Wenn Sie die DAO TableDef Methoden verwenden möchten, um Ihr Feld zu löschen, verwenden Database.TableDefs(tableName).Fields.Delete fieldToDrop, wie @Lokusking suggested.

Aber ich denke, es ist einfacher, nur eine DDL ausführen ALTER TABLE statement das Feld löschen:

Private Function removeFieldsFromIIPM(tableName As String, fieldToDrop As String) 
    Dim strDrop As String 

    strDrop = "ALTER TABLE [" & tableName & "] DROP COLUMN [" & fieldToDrop & "]" 
    CurrentDb.Execute strDrop, dbFailOnError 
End Function