我正在尝试在Access 2010中使用VBA宏创建一个新表来存储一些输出,但是我无法执行仅创建上述空表的相关代码的基础工作:
Dim dbs As DAO.Database
Dim emptyTdf As DAO.TableDef
Dim rs, emptyRs As DAO.Recordset
Dim fld, emptyFld As DAO.Field
Dim fldnm As String
Dim fldv As Variant
Dim isEmptyField As Boolean
Set dbs = CurrentDb
Set rs = dbs.OpenRecordset("AP")
Set emptyTdf = dbs.CreateTableDef("AP_Empty")
Set emptyFld = emptyTdf.CreateField("HID", dbText, 255)
dbs.TableDefs.Append emptyTdf
最后一行会引发运行时错误。我已经在线学习了一些使用DAO方法创建表的教程,并且我的代码没有偏离,所以我想这是我偶然发现的语法陷阱。
最佳答案
您需要先将字段附加到TableDef,然后再附加TableDef本身:
Dim dbs As DAO.Database
Dim emptyTdf As DAO.TableDef
Dim rs, emptyRs As DAO.Recordset
Dim fld, emptyFld As DAO.Field
Dim fldnm As String
Dim fldv As Variant
Dim isEmptyField As Boolean
Set dbs = CurrentDb
Set rs = dbs.OpenRecordset("AP")
Set emptyTdf = dbs.CreateTableDef("AP_Empty")
Set emptyFld = emptyTdf.CreateField("HID", dbText, 255)
'Append your created field.
emptyTdf.Fields.Append emptyFld
dbs.TableDefs.Append emptyTdf
'Just so your collections and the db window is refreshed.
dbs.TableDefs.Refresh
Application.RefreshDatabaseWindow
关于ms-access - 运行时错误 '3264' Access 2010 VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24152505/