• ベストアンサー
  • すぐに回答を!

ACCESSでのインポート処理の自動化

ACCESS2002を使用して、CSVデータをもとにリストを作成するMDBを作成しました。 このCSVデータは不定期に更新され、更新するごとに新しいファイル名がついて準備されます。 今、マクロを使ってインポートの設定をしようと思ったんですが、ファイル名をきっちり指定しないとできないので、今回のように、そのつど、ファイル名が変わる場合はどのように設定をしていいのかわかりません。 私の希望としては、該当のフォルダを開くとこまでをマクロか何かでして、ファイルの選択は利用者にしてもらって、その後は自動的にインポート定義に基づいてインポートされるようにしたいんです。 こういうことは簡単にできないものでしょうか? VBとかもあまり使ったことがないので、マクロとかで指定できればそのほうが助かります。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数401
  • ありがとう数3

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

  • ベストアンサー
  • 回答No.1
  • mshr1962
  • ベストアンサー率39% (7416/18946)

内容が変わらないのであれば、 マクロのテキスト変換の区切り記号付きインポートで ファイル名の欄に =Forms![フォーム名]![テキストボックス名] としてフォームのテキストボックスの入力値を指定する。 ファイルのパスが変わらない場合は ="C:\パス\" & Forms![フォーム名]![テキストボックス名] でファイル名のみ入力でも可

共感・感謝の気持ちを伝えよう!

質問者からのお礼

できました。 お礼が遅くなりました。 ありがとうございました。

関連するQ&A

  • Access(ファイルの管理、インポートの自動化)

    ファイルサーバーにあるCSVファイルを、accessでインポートしてレポートにしたいのですが ※ファイルサーバーにあるCSVファイル名は固定 ※バッチ処理が動くとCSVファイルは上書き 普通にインポートするだけならできるのですが 同じファイル名なのでレポートを発行しなかった場合、 インポートを忘れてしまった場合などで 前のファイルが上書きできえてしまします。 インポートの自動化と例えば時間ごとのファイル管理が アクセスでできたらいいのではないかと思うのですがやり方もわかりません。 アドバイスいただけないでしょうか?

  • Access2003でインポートをマクロで簡単に自動化したいです。

    Access2003でインポートをマクロで簡単に自動化したいです。 今はAccess2003でインポートをマクロにしたい時は、インポートする画面でインポート定義を作っておいて、マクロのテキスト変換でマクロにしています。 これだと、テキスト変換の画面でインポート元のフルパスを指定して、インポート先のテーブルのファイル名を指定しなくてはいけません。 インポート定義を作ってるのだから、定義と同じインポート元、インポート先で簡単にマクロでインポートを自動化する方法はありませんか? マクロにしたいインポートとエクスポートが結構な数あるので、マクロを作る時にいちいちフルパスとファイル名をコピーしてくるのが大変です。 簡単にインポートをマクロにする方法がありましたら、教えてください。

  • Access2010でVBAでのインポート

    csvファイルを指定したテーブルにインポートさせるのですが、この最初のフィールドに主キーを付与させようとしています。手動でインポートする際はメニューで指定するので主キーが付与されるのですが、VBAではcsvファイルそのままの状態でしかインポートされません。 このテーブルは、毎月更新させるので、一度データを削除してインポートさせます。 Mypath & Fdnは階層指定です。 いろいろネットで調べて下記の構文でインポートはできるのですが DoCmd.TransferText acImportDelim, "222 更新データ インポート定義", "更新データ【更新根拠】(当月)", Mypath & Fdn & "\222 更新データ【請求根拠】.csv", True, "" 手動でインポートする時指定する”主キーを自動的に設定する”はどのようにすれば適用されるのかがわかりません。 どなたか教えてください。よろしくお願いいたします。

その他の回答 (2)

  • 回答No.3
  • imogasi
  • ベストアンサー率27% (4576/16387)

エクセルでは Sub test01() Filename = Application.GetOpenFilename(filefilter:="テキストファイル(*.txt),*txt") MsgBox Filename End Sub を使えます。ACCESSでは使えません。そこでエクセルが使える場合は http://www2.tokai.or.jp/mother/newhtm2/acvba/av02/av005.htm をご参照下さい。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

今回はACCESSを利用しています。 EXCELで今回のようなケースに直面した時、また参考とさせていただきます。 ありがとうございました。

  • 回答No.2

ファイル名を取得するには、VBAを利用して、コモンダイアログを使用する方法になると思います。 ソースはそれなりの行数がありますので、 「ACCESS コモンダイアログ」 で検索してください。 VBAが無理であれば、#1mshr1962さんの方法になるかと思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

No.1さんのやり方でできました。 お礼が遅くなりました。ありがとうございました。

関連するQ&A

  • Excel → Access データをインポート

    OS WinXP Pro SP2 Office 2000 SP3 はじめまして。 マクロ(Excel VBA)を記述しているExcelファイル(Xls_Macro.xls)とインポート用データのExcelファイル(Xls_Data.xls)は別々のファイルになっていて、マクロを実行するとExcelファイルとインポート用データのExcelファイルのデータをAccessファイル(Access.mdb)にインポートする仕組みを開発しています。 インポート用データのExcelファイル(Xls_Data.xls)をADOで接続しレコードセットでデータを取得し、Accessファイル(Access.mdb)もADOで接続しレコードセットの「.AddNew」でAccessファイル(Access.mdb)に更新しようと考えています。 この考え方で問題ないのでしょうか!? もっと簡単な方法があるという方や、何か良い方法をお持ちの方 いらっしゃいましたら、よろしくお願いいたします。

  • Accessへのインポート

     VBにおいてdatファイルをAccessへインポートしたいのですが、一体どうやるのか皆目検討がつかなくて…(TT)。教えていただけないでしょうか?ちなみにAccessのmdbファイルはまったくない状態で開始します。その場合は列名もしていするのでしょうか?

  • Accessからのインポートについて

    Accessからテキストファイル(txt、csv)をまとめてインポートするにはどうすればいいですか? あるフォルダにあるテキストファイルをまとめてインポートできるようなマクロはできるのでしょうか? 分かる方がいましたら、よろしくお願いします。

  • Accessのマクロにパラメータを渡したい!

    AccessのマクロでCSVファイルのインポートをしているんですが、このときのCSVファイル名をパラメータでVBAから指定する方法を知っていたら教えてくださいっ。

  • ACCESSで、テキストファイルをインポートしたい

    宜しくお願い致します。 ACCESSで、テキストファイルをインポートしてテーブルを作成したいのですが、ファイル→インポートを選択して、ウィザードを開く方法は分かるのですが、マクロを作成してインポートは出来ないでしょうか? excel、CSVファイルでしたら、「ワークシート変換」、「テキスト変換」のマクロでインポートしたりエクスポートしたり出来ると思うのですが・・・、 (1)テキストファイルをインポートしたり、エクスポートしたりする場合、どのようなマクロがあるのでしょうか。 (ためしに、「出力」マクロで、あるテーブルをCSVファイルにエクスポートしてみたのですが、カンマ区切りにできず、excelのような枠付きのテキストファイルになってしまいました。) (2)容量が大きいデータの場合は、テキストファイルでエクスポートしたほうが良い・・・という認識に間違いはありませんでしょうか。 質問が一つ増えてしまいましたが、宜しくお願い致します。

  • AccessでのCSVファイル取り込みの自動化をしたいのですが。

    AccessでのCSVファイル取り込みの自動化をしたいのですが。 D:\DATA\というフォルダの下に「01」~「99」という99個のフォルダがあり、すべてのフォルダの中に「item.csv」「kaku.csv」,「kumi.csv」,「time.csv」,「total.csv」という存在します。 毎日01-99に順番にデータが格納されていきます。そのデータを毎日、Accessのテーブルに保存する作業を自動化(「01」~「99」のフォルダ指定)にしたいのですが出来ません。 どなたかご教授ください。ちなみにAccessのテーブルはCSVのファイル名と同じです。

  • マクロによりテーブルをインポートする際の処理について

    マクロの動作によりあるテキストファイル(csv)をテーブルにインポートする際に、そのテキストファイルにない取り込んだ日のフィールドを追加してインポートしたいと思っています。 具体的にはテキストデータが 番号 内容 1 本 2 自転車 3 東京 となっていまして、このテキストデータをマクロ動作によりインポートすれば 日付 番号 内容 5/31 1 本 5/31 2 自転車 5/31 3 東京 というテーブルになるというイメージです。 もう一つがマクロによりインポートする際に読み込むファイル名が text_data_20060531.txt となっていましてフォームのボタンを押すだけで自動的に本日の日付からこのファイル名を指定するにはどうしたらいいのでしょう?マクロの中では決めうちでファイル名を指定しなければならないように見えます。 どなたかご存知の方ご教授ください。

  • AccessでCSVインポートのゼロサプレス停止

    AccessVBAでCSVインポート時にゼロサプレスをせずに行いたいです。 現状は下記のソースでインポートしていますが数字のみが入っているテキスト項目でゼロサプレスが行われてしまいます。 DoCmd.TransferText acImportDelim, , [テーブル名], [ファイル名] 下記のものについては事情があって対処として厳しいです。 ゼロサプレスのみを止めるよい方法はないでしょうか。 ■インポート定義を使用する ⇒50種類ほど列項目が異なるテーブルがあり、また時々フォーマット変更があるため事前に定義しておくことは難しい。 ■表示フォーマットを指定する ⇒5桁項目に4桁のデータであったり3桁のデータである場合があるがそれらをそのまま保持したい。 ■CSV作成時にダブルクオーテーションで囲む ⇒CSVの作成側に対応依頼はしたができないとの回答があった。 現状としてわかっていることとしては、値をダウブルクオーテーションで囲うことでゼロサプレスを回避できることはわかっているため、 Accessマクロの中でExcelを呼び出しダウブルクオーテーション付で保存できないかと考えていますがうまくいっていない状況です。 Access単独、Excelを使う方法などゼロサプレスを回避できる方法をご教示願います。

  • Access csvの取込 ファイルは任意でテーブルは指定したいのですが?

    Access初心者です。2003を使用しています。 csvをマクロの「テキスト変換」で取り込ませています。取り込み時に定義どおりのテーブルを作成してくれるので、追加クエリを使い作業用テーブルに移動させ、処理にはそちらを使う仕組みにしています。 csv → データ用テーブル → 作業用テーブル(実際使うテーブル) csv取り込みには「テキスト変換」マクロでファイル名にパスを設定していますが、この部分を固定パスではなく任意に指定できるようにしたいのです。(取り込みたいcsvが決まったパス、ファイル名で無い場合があります。) 「コマンドの実行:インポート」ですとダイアログが出て任意に取込ファイルが指定できますが、インポートウィザードが起動してしまいます。使用者がウイザードで適切な定義を選びデータ用テーブルを作成してくれればいいのですが、私がツールを作りPCに詳しくない人が使うのでインポートウイザードを避けたいと考えます。 どなたか、マクロ「テキスト変換」でファイル名をダイアログなどで、任意に指定できるような手法をご存じないでしょうか? また、マクロでは無理なようでしたらVBAでしたら可能でしょうか? よろしくお願いします。

  • テキストファイルをAccessへインポートする自動化の記述方法は?

    Accessの画面より、コマンドボタンをクリックして、外部データベース(MDB)にテキストファイルをインポートするプログラムを作っているのですが、記述方法がわかりません。どなたか回答願います。カレントデータベース(mdb)へテキストファイルをインポートするプログラムは作成したことはあります。