
Access2003でインポートをマクロで簡単に自動化したいです。
今はAccess2003でインポートをマクロにしたい時は、インポートする画面でインポート定義を作っておいて、マクロのテキスト変換でマクロにしています。
これだと、テキスト変換の画面でインポート元のフルパスを指定して、インポート先のテーブルのファイル名を指定しなくてはいけません。
インポート定義を作ってるのだから、定義と同じインポート元、インポート先で簡単にマクロでインポートを自動化する方法はありませんか?
マクロにしたいインポートとエクスポートが結構な数あるので、マクロを作る時にいちいちフルパスとファイル名をコピーしてくるのが大変です。
簡単にインポートをマクロにする方法がありましたら、教えてください。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
VBA(=マクロでは「プロシージャの実行」)、をイメージしていたので
同じ定義を違うテーブルへインポートするときは、
DoCmd.TransferText acImportDelim, "インポート定義01", "tbl01", "file.csv", False, ""
DoCmd.TransferText acImportDelim, "インポート定義01", "tbl02", "file.csv", False, ""
DoCmd.TransferText acImportDelim, "インポート定義01", "tbl03", "file.csv", False, ""
DoCmd.TransferText acImportDelim, "インポート定義01", "tbl04", "file.csv", False, ""
という感じです。
"tbl01"~"tbl04"の部分を変数にしてしまえばいくらでも、と
思いましたが、これはできませんか?。
"tbl01"~"tbl04"は一つの文字列としてとらえれば
設定テーブルの1項目の値となるので、
これも画面からいろいろ修正するにはいいかな、というところです。
いずれにしてもVBAなら少しは楽になると思います。
※実際テストはしていないので、頭の中の想定の範囲です。
layyさん、お礼が遅くなって申し訳ありません。
3回もご回答下さりありがとうございます。
VBAの詳しい書き方まで載せて下さって、ありがとうございます。
今回は仕事で使うために質問して、仕事を引き継ぎ時の問題もあり、周りのパソコンレベルも考慮すると、VBAは避けたいので今回はVBAを使わないで済ませたいところです。
Access2007みたいに保存済みインポートみたいにインポート定義で簡単にできないかなと思い質問しました。
しかし、教えていただいたVBAの
>TransferText acImportDelim
の部分を変えれば、エクスポートにも使えそうですね。
VBAは色々応用性が広そうなので、自分用に使う時やそれ以外でもVBAではできないかとAccessだけではなくExcelでも考えていきたいです。
できること(世界)がちょっと広がっていざという時に対処の幅が広がります。ありがとうございました。
No.2
- 回答日時:
マクロ内の「インポート元フルパスやインポート先テーブル名」は固定にして
直前、直後を任意の値に変えるという手もできるかもしれません。
複数あるフルパスやテーブル名も一つの値ですから、
マクロ処理用設定テーブルの1レコードとして作るとか。
layyさん。
2回も回答して下さりありがとうございます。
お礼が遅れて申し訳ありません。
> マクロ内の「インポート元フルパスやインポート先テーブル名」は固定にして
> 直前、直後を任意の値に変えるという手もできるかもしれません。
インポートのためにTEMP(一時)ファイルを作る方法でしょうか。
今回は後からの参照用のためインポート先が12テーブルに分かれていたりで1つのインポート先、インポート元という手は使えませんでしたが、インポート一時テーブルを作る方法は大変参考になりました。
これからAccessのファイルを作る時に、このインポートはインポート一時ファイルを作ってすませられるのではという視点を持つことができました。ありがとうございます。
> 複数あるフルパスやテーブル名も一つの値ですから、
> マクロ処理用設定テーブルの1レコードとして作るとか。
これはちょっと考えもつきもしませんでした。
仰っていることは、
【テーブルA】
フィールド[テーブル名]
インポート先テーブル名
フィールド[ファイル名]
C:\Documents and Settings\User\My Documents\test.csv
としておいて、マクロのテキスト変換でテーブル名、ファイル名の部分がテーブルAのテーブル名、ファイル名を参照するようにしてやればいいのだと私は理解しました。
ちょっとやり方は今はわかりませんが、応用が効きそうですね。フォームでフィールドを書き換えて、違う名前のファイル名も簡単にインポートできたり好きな名前でエクスポートできたり。
新たな視点をありがとうございます。ちょっと世界が広がりました。
No.1
- 回答日時:
マクロをモジュールで保存し、プロシジャでの実行、の動きに変えましょう。
ファイルの指定を変数で与えることができるようになります。
cde_cdelayyさん、返信遅くなりまして申し訳ありません。
回答ありがとうございます。
Access2003のインポートマクロを作るのは仕事で使用するため、VBAを持ち込むとうまく引き継げないため、できればVBAを持ち込まないでできると最高です。
Access2007だと保存済みのインポートは、インポート元フルパスやインポート先テーブル名をもう一度書かなくてもインポートマクロを作れるので、「Access2003でもインポート元フルパスなどをいちいち入力しなくてもできるんじゃないか」と考えて、質問しました。
しかし、教えていただいた方法なら1つのインポートマクロだけ作れば、後はコピペでちょっといじれば簡単にできそうで、ためになりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
TERA TERMを隠す方法
-
エクセルに張り付けた写真のフ...
-
ファイルが見つからない時、ス...
-
ExcelのVBA。public変数の値が...
-
ダブルクリックで貼り付けた画...
-
【Excel】複数のマクロをまとめ...
-
IF関数を使ってマクロを実行さ...
-
Excel_マクロ_現在開いているシ...
-
エクセルで別のセルにあるふり...
-
特定文字のある行の前に空白行...
-
エクセルで縦に並んだデータを...
-
マクロ実行時エラー
-
【EXCEL VBA】オートシェイプを...
-
Excelのセル値に基づいて図形の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
Excel_マクロ_現在開いているシ...
-
一つのTeratermのマクロで複数...
-
マクロの連続印刷が突然不可能...
-
ExcelのVBA。public変数の値が...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
エクセルに張り付けた写真のフ...
-
Excelのセル値に基づいて図形の...
-
TERA TERMを隠す方法
-
マクロ実行時エラー
-
ExcelVBAでPDFを閉じるソース
-
wordを起動した際に特定のペー...
-
特定文字のある行の前に空白行...
-
Excel マクロでShearePoint先の...
-
エクセルで縦に並んだデータを...
-
マクロ実行時、ユーザーフォー...
-
ソース内の行末に\\
おすすめ情報