こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルデータをアクセスに自動的に取り込める?

現在研究で、エクセルファイル200個ほどをアクセスにインポートしたいと考えております。
エクセルファイルは研究用のデータなので同じ形式のテーブルで入っている状態です。
フィールドなどが統一されています。
キーはファイル名となっており、それぞれのエクセルファイル名がIDとなっています。

このファイル200個程度をマクロなどを使い自動的にアクセスへ取り込みたいのですが参考書を読んでも方法がわかりません。よろしければ教えてください。宜しくお願いいたします。

投稿日時 - 2006-01-08 06:21:33

QNo.1882331

すぐに回答ほしいです

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

#2です。
#2で(3)の(C)で言ったコード例は
Sub test01()
filename = Dir("*.xls", vbNormal)
Do While filename <> ""
MsgBox filename
filename = Dir()
Loop
End Sub
参考は
http://homepage2.nifty.com/kasayan/vba/dir.htm
ほか、「dir() VBA 」でWEB照会してください。バリエーションの対処方法がたくさん出ます。

投稿日時 - 2006-01-08 10:21:21

お礼

imogasi様ご丁寧にありがとうございます。
参考に勉強させていただきます!!

投稿日時 - 2006-01-08 14:32:48

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

勉強課題は3つあると思います。
アクセスにはVBAと違う「マクロ」というものがありますが、本件は、マクロでなく、アクセスVBAが必要でしょう。
200回の手作業で同じ作業を繰り返すなら、話は別ですが。
(1)エクセルー>アクセスインポートのコード
(2)インポートしたアクセス側で200のファイル(テーブル)を
1つのテーブルにまとめるコード
(3)200のエクセルファイル(ブック)を、連続で次々にコードで指定し、(1)のエクセルファイル名を順次変えて、(1)のコードを繰り返す方法。
(1)を1つのエクセルファイルにインポートするのは、細かいことは抜きにして,1行で終わりです。(私の環境で確認済み)
Sub test11()
DoCmd.TransferSpreadsheet acImport, 8, "BookA", "C:\Documents and Settings\XXXX\My Documents\BookA.xls", True, ""
End Sub
(2)は1つインポートしたごとに本体のアクセスのテーブル(上記例でBookA)にマージするか、200個一旦テーブルを作って
、一気にマージするかの2つの方法が考えられますが、ベターは前者かなと思います。
(3)は(A)エクセルファイル名を200個を、表で持つ
(B)名前に規則性かある(Booknnnのnnnが連番とか)
(C)同じフォルダーにインポート対象のエクセルファイルをだけを集める
などの方法が考えられると思う。(c)が良いかとおもう。
プログラム構成として
ーーー
(3)(C)が一番外側での繰り返し
(1)のブック名を変えてインポート(の繰り返し)
(2)のインポートしたアクセステーブルを本体に融合(の繰り返し)
まあしかし、アクセスの中級以上の問題でしょうね。
>参考書を読んでも
(1)は載ってます。(3)の(C)はWEBにも似たような例があります。(2)はずばりは、ないかも知れない。(3)は探してみます。

投稿日時 - 2006-01-08 09:44:15

お礼

大変親切かつ早急な書き込みありがとうございます。なるほど、自分がもっていなかった視点でしたので大変参考になります。学生ばかりかまわりにアクセスを使える人が意外にいなく困っていました。
早速やってみようと思います♪
ありがとうございます。

投稿日時 - 2006-01-08 14:30:38

ANo.1

ACCESSマクロは組めますか?
マクロを勉強してみて下さい。
マクロで処理可能です。

投稿日時 - 2006-01-08 06:36:09

お礼

ご返信ありがとうございます。MYSQLなどは使えるのですが、マクロは全くの初心者です。もっと勉強してみたいと思います。

投稿日時 - 2006-01-08 14:28:05

あなたにオススメの質問