我在使用VBA创建Access表时遇到问题,然后通过open-recordset访问它。我的目标是将记录写入表格。如果我手动创建表,我的代码完美无缺。如果该表不存在,则程序在打开记录集尝试时终止。错误消息是:
“MSO Access数据库引擎无法找到对象'myTable'
其中“myTable”是argTable的值。这是代码片段:
Dim tbl As DAO.TableDef
Dim db As DAO.Database
Dim fld As DAO.Field
Set db = CurrentDb()
Set tbl = db.CreateTableDef(argTable)
Set fld = tbl.CreateField("F1")
Set rstAccessTableOut = db.OpenRecordset(argTable, dbOpenTable)
我做错了什么? (注意我不想使用SQL。)
答案 0 :(得分:0)
添加完字段后,必须将新表def附加到集合才能使用它。该文件也需要附加
Dim tbl As DAO.TableDef
Dim db As DAO.Database
Dim fld As DAO.Field
Set db = CurrentDb()
Set tbl = db.CreateTableDef(argTable)
Set fld = tbl.CreateField("F1", dbText, 20)
tbl.Fields.Append fld
db.TableDefs.Append tbl
Set rstAccessTableOut = db.OpenRecordset(argTable, dbOpenTable)