Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 11全般 : Microsoft 365)
ExcelのテーブルをAccessインポート
投稿日時: 24/03/26 21:36:19
投稿者: zzxxcc

Excelにテーブル化した表があります。
テーブル名は「TBLDATA01」を設定しています。
AccessにExcelテーブルのデータをインポートしたいのです。
テーブル化していないに表に範囲名を設定して、AccessVBAで設定した範囲名を指定してAccessにインポート出来ました。
しかし、テーブル化したテーブル名を指定してもエラーが発生しました。
名前の確認すると、「TBLDATA01」の範囲名があり、範囲も設定されていたのに、何が原因なのでしょうか?
 
Excelのテーブルのレコード件数は可変で、ファイルが重いので出来ればExcel開かずにAccessにインポートしたいです。
良い方法がありましたら、ご教授ください。

回答
投稿日時: 24/03/27 12:10:14
投稿者: hatena
投稿者のウェブサイトに移動

VBA板なので、TransferSpreadsheetメソッドで取り込もうとしているということですよね。
 
試してみたら、テーブル名ではエラーになりました。
手動でインポートするときも、テーブル名は選択できませんでした。
自分で範囲を指定して名前を付けた場合は、選択できてインポートできました。
そういう仕様なのでしょう。
 
レコード件数は可変なので、固定範囲でインポートではなく、自動でデータのある最終行までをインポートしたいということが目的なら、範囲引数で最後の行番号を省略すればデータのある範囲をインポートできます。
下記のような感じです。
 

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "テーブル名", "C:\test\test.xlsx", True, "Sheet1!A3:D"

投稿日時: 24/03/27 13:14:41
投稿者: zzxxcc

ご回答ありがとうございます。
 
テーブルの下にもコメント等があるため、出来ればテーブル名を指定して、インポートできれば良いと考えておりました。
調べていただきありがとうございます。

トピックに返信