如何从Access VBA中的表中删除一个字段

问题描述:

我有一个函数可以从我在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

如果你想使用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