访问VBA无法创建表

时间:2012-03-28 15:41:40

标签: ms-access access-vba

我在使用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。)

1 个答案:

答案 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)