1つのテーブルからフィールド行を取得し、各行に新しいテーブルを作成しています。新しいテーブルには、対応する行と同じ名前が付けられます。ここでVBAへのアクセス:エラーの原因となるループ内に作成された新しいテーブル
は私のコードです:
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を設定する必要があるので、私はそれを感じているが、私は確信していない。
誰もがこれで私を助けることができますか? ありがとう!
なぜこのようにしたいですか?これはデータの正規化に違反しています。 –