5

Excel スプレッドシートにリンクするデータベースがあります。リンクされたテーブルを手動で追加する場合、問題はありません (小さなウィザードに従うだけで、テーブルは完全に作成されます)。VBAを使用して自動化しようとしています:

Dim db as DAO.Database
Dim tdf as TableDef

Set db = CurrentDB
Set tdf = db.CreateTableDef("linked_table")
tdf.Connect = "Excel 8.0;HDR=YES;IMEX=2;DATABASE=" & Me.txtExcelFile  ' references form field
db.TableDefs.Append tdf  ' Here's where I get a run time error

残念ながら、最後の行で実行時エラー 3264 が発生し、「フィールドが定義されていません。TableDefs または Index を追加できません」と表示されます。最後の行が必要な理由もわかりません (データベースの TableDefs コレクションにテーブルを追加することがわかったドキュメントからのようです)。エラーを解決するための提案はありますか?

4

1 に答える 1

4

あなたが欠けています:

tdf.SourceTableName = "Sheet1$"

または、テーブルとして使用する任意の範囲またはシート名。

したがって、全体として、これは私にとってはうまくいきます:

Dim db as DAO.Database
Dim tdf as TableDef

Set db = CurrentDB
Set tdf = db.CreateTableDef("linked_table")
tdf.SourceTableName = "Sheet1$"
tdf.Connect = "Excel 8.0;HDR=YES;IMEX=2;DATABASE=" & Me.txtExcelFile  ' references form field
db.TableDefs.Append tdf

TransferSpreadsheetを使用してExcelをリンクすることもできます

于 2012-09-12T19:49:13.053 に答える