【发布时间】:2011-07-20 20:21:01
【问题描述】:
我正在从一个表中获取字段行并为每一行创建一个新表。新表的名称将与它们对应的行相同。
这是我的代码:
Option Compare Database
Public Function createTables()
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim rst As DAO.Recordset
Dim fld As DAO.Field
Dim strSQL As String
strSQL = "Select SKUS from SKUS"
Set db = CurrentDb()
Set rst = db.OpenRecordset(strSQL)
Set fld = rst.Fields("SKUS")
'MsgBox fld.Value
rst.MoveFirst
Do While Not rst.EOF
Set tdf = db.CreateTableDef(fld.Value)
Set fld = tdf.CreateField("SKUS", dbText, 30)
tdf.Fields.Append fld
Set fld = tdf.CreateField("Count", dbInteger)
tdf.Fields.Append fld
db.TableDefs.Append tdf
rst.MoveNext
Loop
End Function
问题是在代码的第一次迭代之后(创建了第一个表),它给了我一个错误“无效操作”指向该行
...
Set tdf = db.CreateTableDef(fld.Value)
...
你认为这是为什么?我有一种感觉,因为我需要重新设置 fld 或 rst,但我不确定。
谁能帮我解决这个问题? 谢谢!
【问题讨论】:
-
您为什么要这样做?这违反了数据规范化。