質問: accessからexcelファイルのデータ取得 access2000かexcelファイルのデータを取得したいのですが、 excelファイルを一度 csvファイルに変換し、その後accessのテーブルへデータ取り込み といった手順をとりたいのです。 この方法って、どうコーディングすればいいのですか? (accessのインポート処理は使用しない方法です)
回答: vbaでの制御になりますが、 excelをインポートするには、「transferspreadsheet」使って、インポートできます。 (excelをそのままインポート) excelの項目(セル)に該当するテーブルを作成しておき、そのテーブルへ直接インポートすることができます。docmd.transferspreadsheet acimport, acspreadsheettypeexcel9, "インポート先のテーブル名", "excelへの絶対パス", , "シート名"※シート名は、指定しなければ1シート目がインポートされます。 もしシートが複数あるのなら、adoか、dao等でexcelに接続して、「tabledefs(0).name」で、シート名も取得できます。 --- '■excelデータベースへ接続 dim xdb as database set xdb = opendatabase("excelへの絶対パス", false, true, "excel 8.0;") '■1シート目の名称取得 dim f_name as string f_name = xdb.tabledefs(0).name '(先頭に[']文字、最後に[$']文字が付くので省く) f_name = mid(f_name, 2, (len(f_name) - 3))tabledefs(1)にすれば、2シート目のシート名を取得できます。 no4の方が言われている通り、adoで直接接続すれば、わざわざインポートする必要はないです。 でも、adoを使ってない人には、難しいですよね。 あ、別にcsv変換する手法が悪い!と言っているのではないです。 office製品同士で、互換性?があるのに、使わないなんて勿体無いかな...と思って。