• ベストアンサー

Accessにエクセルからデータをインポートしたい(VBA)

Access(2000)のVBAでExcel(2000)からデータをインポートしたいと思います。 詳細は以下の通りです。 フォームでコマンドボタンをクリック時にダイアログボックスが開き、ファイルを指定し、該当のシート(シート名はどのファイルも固定)のデータをアクセスのテーブルにインポートしたい。 どうしたらできるのかここ数日悩んでいます。 よい方法がありましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>フォームでコマンドボタンをクリック時にダイアログボックスが開き、ファイルを>指定し、該当のシート(シート名はどのファイルも固定)のデータをアクセスのテ>ーブルにインポートしたい。 過去に同様な質問がありました。(http://oshiete1.goo.ne.jp/kotaeru.php3?q=268353httpを参照ください。) まず >フォームでコマンドボタンをクリック時にダイアログボックスが開き、ファイルを>指定し、 というところはAccessDeveloper版でなければダイアログボックスは使えません。 そこでWindowsAPIを使用します。(下記参考URL参照ください。) これを使ってファイルの情報が得られたらあとはデータをインポートすればよいだけです。がんばってください。 PS このWindowsAPIはファイルを開くダイアログボックスですが、このサンプルコードのOPENをSAVEに変えたらファイルを保存のダイアログボックスになるようです。

参考URL:
http://www.moug.net/cgi-bin/technic.cgi?acvba+TI02010007
nao111111111111
質問者

お礼

ありがとうございます。 No2をやってみた後に、AccessDeveloper版で試してみたいと思います。

その他の回答 (1)

  • muran
  • ベストアンサー率31% (12/38)
回答No.2

TransferSpreadsheet メソッド を使用すれば、指定したファイルのデータをインポートできます。 ヘルプにも載っているので確認してみてください。 使用例:TBL_TESTというテーブルにtest.xlsの内容をインポートする DoCmd.TransferSpreadsheet acImport, 3,"TBL_TEST","C:\test\test.xls"

nao111111111111
質問者

お礼

ありがとうございます。 インポートはできそうなんですけど、その時にダイアログが開くかどうか・・・ やってみないことには解りませんね。 今、エクセルの方でもVBAをやってるので、なかなか捗りません!!

nao111111111111
質問者

補足

できました。引数の宣言にちょっと戸惑ってしまいましたが…。 テーブルのインポートはできましたが、ダイアログでファイルを選択したいので、 No1の方をやってみます。