• ベストアンサー

【Access97】txtファイルの一括インポート

txtファイルをAccessへ自動でインポートする方法としてはマクロの”テキスト変換”しか知識がありません。 今回そのtxtファイルが1000個以上あり、一回一回txtファイル名を変えての”テキスト変換”では膨大な時間がかかってしまいます。 ファイル名はすべて「数字4桁.txt」で統一、1つのフォルダ内に保存してありますので、この条件でAccessへ一度に取り込む方法があればご教授ください。 <txtファイル:ヘッダーなし、1ファイルにつき1~100行程度のデータ> 001,"トウキヨウ","東京" 002,"オオサカ","大阪" 003,"ナゴヤ","名古屋" 004,"フクオカ","福岡"   ・   ・   ・ <Accessテーブル:フィールド名はtxtデータの並び順に合わせて作成> ─── ──── ─── 番号   支店カナ 支店名 ─── ──── ───

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

  • ベストアンサー
  • wildcard
  • ベストアンサー率54% (54/100)
回答No.3

Access97を所持していない為、Access2003で作成し動作確認をしました。 たぶんAccess97でも問題ないと思います。 まずモジュールを新規に作成し、以下のコードを貼り付けて、F5 キーで実行して下さい。ただし、テキストファイルは「C:\新しいフォルダ」に保存してあるものとし、テーブル名を「テーブル1」と仮定していますので、2行目と3行目は適宜変更してください。 Sub テキスト取り込み()   Const strTBL As String = "テーブル1" '←テーブル名。変更してください   Const strFolder As String = "C:\新しいフォルダ" '←テキストが格納されているフォルダ名。変更してください      On Error GoTo Err_テキスト取り込み   Dim rs As DAO.Recordset   Dim MyData As String   Dim FNo As Long   Dim strData() As String   Dim strFILE As String       Set rs = CurrentDb.OpenRecordset(strTBL)       strFILE = Dir(strFolder & "\*.txt", vbNormal)   Do While strFILE <> ""        FNo = FreeFile     Open strFILE For Input As #FNo             Do While Not EOF(FNo)         Line Input #FNo, MyData         strData = Split(MyData, ",")         rs.AddNew         rs("番号") = Replace(strData(0), """", "")         rs("支店カナ") = Replace(strData(1), """", "")         rs("支店名") = Replace(strData(2), """", "")         rs.Update       Loop             Close #FNo     strFILE = Dir()   Loop   rs.Close   Set rs = Nothing   MsgBox "取り込み完了",vbInformation   Exit Sub    Err_テキスト取り込み:   MsgBox Error$ End Sub

KO1014
質問者

お礼

返答が遅れてしまい、申し訳ありません。 ご回答の通りテーブル名やフォルダの保存先も同じにしてやってみましたが「Sub または Function が定義されていません。」というエラーが出て出来ませんでした。 モジュールというものを使用したことが無く修正の仕方も分からないので、今回は諦めます。 せっかくコードを書き込んでいただいたのに申し訳ありませんでした。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

APIを記述してコモンダイアログを 表示し、ファイルを選択するという 大掛かりな方法もありますが、 ここはDir関数で十分です。 ms access Dir関数 でググれば直接的な方法が結構 見つかります。Dir関数を利用して ループ処理でフォルダ内のText 拡張子のファイルをを取得する 関数をつくり、これをファイル インポート関数から呼ぶか渡す なりしてファイル処理をします。 大まかなところはこのような 感じです。何かあれば書き込みを。

KO1014
質問者

お礼

返答が遅れてしまい、申し訳ありません。 ググってみましたが、当方の知識では到底理解できる内容ではありませんでした。 せっかく詳しく説明していただいたのに申し訳ありませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

ファイル結合フリーソフトで、各テキストファイルを結合してはいかがでしょうか。 例:Join Man Mini Version1.4

KO1014
質問者

お礼

ご回答ありがとうございました。 自宅PCでしたらフリーソフト入れ放題なのですが、あいにく今回は会社PCですので勝手にフリーソフトを入れるわけにもいかないのです。 せっかくご紹介いただいたのですが、申し訳ありません

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ACCESSでTXTにデータエクスポートする際

    ACCESSでマクロ組んでます。 マクロでテーブルデータをtxtファイルにエクスポートしたいのですが、テキスト変換を設定する時に、定義名を入れないとダメみたいですが、何を入れればいいのか分かりません できるだけマクロ使いたいのですが、無理ならばVBAでもと思っています。 access2000を使用しており、デスクトップにデータ出したいと思っています。

  • 拡張子のないファイルをACCESSにインポート

    ACCESS2003についての質問です。 データをインポートする際、拡張子の付いていないファイル(データの内容は区切り記号付きテキストファイルで表示することができます。)をACCESSにインポートする方法を教えて下さい。 .txt や .csv などの拡張子をつればACCESSでインポートできるファイルになるのですがその手間を省けないか?と言われています。 それ位してくれよと思うのですが・・・ VBAは少し勉強しているのですが、VBAを利用すればACCESS上でファイルに拡張子を付け加える事は可能になるのでしょうか?教えてください。

  • ACCESS でインポートファイル名とエキスポートファイル名を変数にしたい

    ACCESSで ファイルインポート-->データ加工-->ファイルエキスポート-->インポートしたデータテーブルを削除 という処理を行っています。 ファイル名が担当者毎に違うので担当者分(20人分)ファイル名を変えてACCESSを作成しています。 なので、仕様変更があると20コのACCESSを変更しなければいけません。ファイル名を変数にすればACCESSは1つで良いのではと考えたのですが、その方法がわかりません。どうか教えて下さい。 ACCESS 2002 例 担当者Aならインポートファイル名 INFILE.A.TXT エキスポートファイル名 OUTFILE.A.TXT  担当者Bならインポートファイル名 INFILE.B.TXT  エキスポートファイル名 OUTFILE.B.TXT   データ加工(処理)の内容は同じです。 どうぞよろしくお願いします。  

  • テキストファイルをエクセルもしくはアクセスで加工

    こんばんわ。 仕事でタイトルの作業が必要になり困ってしまい、過去のQ&Aの方法も試しましたが、うまくいかなかったのでどなたかご教授いただけると嬉しいです。 PCの環境はWindows XP、Excel2003、Access2000です。 私自身はExcelは何とかいじれますが、Accessは全くの初心者です。 テキストファイルの中身は改行が全くなく、以下の例1のように数字とカナが混在した状態です。(*はスペースの数を表します) (例1)0000001524****264アイチ******6482645ナゴヤ**********000002546814********0000002546****264ミエ 4532789ヨッカイチ******000001468234******** テキストファイルの中はこの例2のような文字列がかなり膨大な量ではいっていました。この文字列を以下の例のように直したいです。 (例2)0000001524****264アイチ******6482645ナゴヤ**********000002546814     0000002546****264ミエ******4532789ヨッカイチ**********000001468234 各文字間のスペースの数が違うのでなんとかできないか試行錯誤してみましたが、私の知識では不可能でした。 このような変換はできるのでしょうか? ご教授よろしくお願いします。

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

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

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

    マイクロソフトアクセス2010でテーブルを作り、そこにCSVファイルを読みこませたいです。 テーブルのフィールドはテキスト型です。 例えば、Table_TESTというテーブルにF1というテキスト型のフィールドを設けます。 Access標準のTEXTインポート機能を使い、インポートを行おうとします。 CSVファイルのデータは、「12345678912345678ABCD」といったように数値とアルファベットです。 なぜか、このようなデータをインポートする時にデータ変換エラーと表示されて、正しくインポートできません。 これは、なぜこのような現象が起こるのでしょうか?

  • AccessからCSVファイルを作成するとき。

    とあるページでAccessからCSV形式のファイルをエクスポートするときあは、ただエクスポートするだけでは並び順になっていない可能性が高いので、クエリからCSVファイルを作るほうがよいと書いてありました。 下記のやり方ではデータがうまくファイルに入らないのでしょうか? ご教授お願いいたします。 http://support.secure.ne.jp/manual/db/access.html

  • テキストファイルのインポートマクロが作成できない

    テキストファイルのインポートをマクロ作成しようと、 アクション:データベース変換 変換の種類:インポート データーベースの種類:テキストを選択しようとしたところ、選択リストにCSVやTXTの選択項目がありません。 Office proにて再インストールをしてみましたが、やはりTXTの選択項目は出てきませんでした。 どこかに設定があるのでしょうか。 宜しくお願いいたします。 ちなみにOSはXP、ACCESSは2000です。

  • txtファイルのフォーマットを教えてください。

    Linax上で動いているtxtファイルのフォーマットが知りたいです。 ヘッダファイルがどこからどこまでで、ヘッダファイルデータの中のどこがデータのサイズが明記されているなどの、情報がほしいです。 基本的なこと過ぎるのか、検索しても引っかかるのはbmpのフォーマットだったり、WAVのフォーマットだったりします。 どうしても必要な情報なので、知っている方HPアドレスなど教えていただけるとうれしいです。

  • ファイル名からテキスト内文字列の置換

    フォルダ内に tokyo.txt、nagoya.txt、osaka.txt… といったファイル名のテキストファイルがあり そのテキストファイルの中に 地名リンクという文字列があります。 この地名リンクという文字列を各々のファイル名 tokyo.txt、nagoya.txt、osaka.txt…(できれば.txtなしのtokyo,nagoya,osaka) に一括置換したいのですが、何かいい方法はありませんか。

このQ&Aのポイント
  • iPhone XR、iOS14.4.2を使用しています。設定の「App Store」の自動ダウンロードの「Appのアップデート」が緑色になっているので、アップデートが自動的にされる設定になってると思うのですが、添付スクショのように、クラウドマークがついており、それを押すとアップデートされているように思います。
  • この前、お店でアプリを使おうと思った時に、すぐに開かずアップデート中になってしまい、すぐにアプリで会員証を見せることができず、不便だなと思いました。こちら自動的にアップデートはされないようになってしまったのでしょうか?
  • iCouldがいっぱいだからとか関係あるのでしょうか?
回答を見る

専門家に質問してみよう