2016-08-02 103 views
3

我有一個函數可以從我在MS Access中創建的表中刪除指定的字段。已使用this問題以供參考。我怎樣才能讓這個刪除一個指定的字段?以下是我迄今爲止:如何從Access VBA中的表中刪除一個字段

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

我可以問你,你爲什麼不乾脆用SQL丟棄列?或者試試'dbs.TableDefs([tableName])。Fields.Delete fieldToDrop' – lokusking

回答

5

如果你想使用DAO TableDef方法砸你的領域,使用Database.TableDefs(tableName).Fields.Delete fieldToDrop,作爲@Lokusking suggested

但是我覺得它更容易只是執行DDL ALTER TABLE statement砸場:

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 
相關問題