• ベストアンサー

アクセスでのデータの入力と出力について

アクセスでテーブルに下記のデータを登録したいのですがなるべく簡単な登録方法を教えていただけないでしょうか インポートとかいろいろ調べてみましたが地道に一つずつ入力するしかないのでしょうか? (1)フオルダにある3000個の「ファイル名」(テキストファイル)をアクセスのテーブルに登録  例 abcde001.txtというようなファイルが3000個ありますこれらのファイルのファイル名をテーブルに取り込む (2)最終的にしたいことは(1)のファイルの内容を検索して@から始まる文字列を抽出したい まとめますと、あるフオルダにあるすべてのファイルの中身を文書検索して@から始まる数桁の文字列を検索したあとにファイル名ごとに@から始まる文字列の一覧表を作成したいのですが、アクセスでできる範囲をこえているのでしょうか? アクセスで実現する方法、プログラムを組む、フリーのツールで実現できるようなものがあるなどアドバイスをいただければと思います よろしくお願いします

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

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

grepがいいんではないでしょうか? 正規表現でファイルの中身を検索し、その一覧を作ってくれます。 もともとUNIXのコマンドなんですが、Windows(DOS)で動作するgrepのコマンドがフリーソフトでありますよ。 http://www.vector.co.jp/soft/win95/util/se015011.html 検索結果はDOSのリダイレクトを行うことでファイルに出力すればOKです。 ちなみに、私は秀丸エディタについているgrepの機能を使っています。

参考URL:
http://www.vector.co.jp/soft/win95/util/se015011.html

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

3000個あるテキストは固定長のテキストですか? 一定の入力規則のようなものがあるテキストなのですか? テキストを取り込んで@から始まる文字列を抜き出すことは出来ます。

unname1
質問者

補足

>3000個あるテキストは固定長のテキストですか? 可変長のテキストです >一定の入力規則のようなものがあるテキストなのですか? 入力の規則はなくどこに@があるかはわかりません. テキストを取り込む方法ですがなるべく簡単な方法だといい のですが・・・. よろしくお願いします

関連するQ&A

  • ACCESSデータベースのインポート 

    ACCESSデータベースでインポートしたいデータ(拡張子がlog)があるのですが、そのままだと文字列が区切られていなくテーブルに入らないので、毎回 しょうがなく事前に置換ツール等を使ってカンマ区切りにしてからインポートしています。 モジュールなどを使って、インポートする前のデータをテーブルに入れやすい 形(カンマ区切りのtxtファイルぐらいしか思いつかないのですが。。。)に置換・変換っていうのはできるんでしょうか??教えて下さい。。

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

    お世話になります。  Access2003/2010  Excel2003/2010 10年程前より、Access2003で作成したツール(Excel2003形式のファイルを インポート)を利用しております。 Excelファイルは毎日追加/更新しているのですが、先日、とうとうExcel2003 の行の上限である65,536行を超えてしまいました。 今後はExcel2010形式のファイル(行の上限は1,048,546行)とし、かつ、 2010形式のファイルをインポートできるようツールの修正をしなければならなく なりました。 ツールの修正というよりは、今までAccess2003上で使用していたので、そのまま Access2010上で使用したいだけなので、修正が必要がどうかも分からない 状況です。 そこで2点質問ですが、  1.現状インポートする際は、   DoCmd.TransferSpreadsheet acImport, 8, "temp", strFile, True   としておりますが、「8」の箇所は2010形式のExcelをインポートする場合   どのように修正すればよいでしょうか。   ヘルプを見ても8(Excel2000形式)までの記載しかありません。   とりあえず8のままExce2010形式で、かつ2003の行の上限を超えている   ファイルを(66000行)インポートしてみましたが、行は削れることなく   インポートできました。  2.インポート時の文字数制限について   インポートするExcelファイルの「備考」フィールドは文字数が多いのですが、   Access2003上で使用すると全ての文字列(750文字程度)をインポート   できておりました。   しかしAccess2010上で使用すると、文字列が途中で切れる(255文字)   不具合が発生しました   インポートする際は、あらかじめテーブルを作成しておき、そこに対して   Excelのデータをインポートしております。なお、「備考」のデータ型は   メモ型です。   (255文字で切れることから)恐らくAccessがインポートする時点で「備考は   テキスト型」と判断しているから255で切れてしまうのではないか、で、切れた   文字列をメモ型に入れてるだけのように見受けられるのですが。。   2003から仕様が変わってしまったのでしょうか。   上記のことから、インポートするExcelの先頭行の「備考」に、適当な文字列   (750文字)を入力し、それをインポートすると途切れることなくインポート   できました。   ※Accessがメモ型と認識したから? ※いずれもツールをAccess2010上で使用した状況です。 ご教示の程、宜しくお願い致します。

  • ACCESS VBA txtファイル出力

    お世話になっております。 不慣れながら会社でACCESSVBAを使っております。 エクセルファイルをACCESSに取り込み、VBAを使ってtxtファイルとして出力したいです。 その際、現時点で出力まではできているのですが、先頭列の頭の0が落ちてしまいます。 頭の0を残すコードの書き方はどのようにすればよいのでしょうか。 また、そのような設定はありますか。 力不足で恐縮ですが、よろしくお願いします。 保存先はデスクトップ、テーブル名はテーブル名を代入した変数です。 DoCmd.TransferText acExportDelim, , テーブル名, "…(パス)…テスト.txt"

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

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

  • Access2000のCSVファイルのインポートについて

    Access2000でCSVファイルをインポートしようと思っています。 インポート方法は、VBAで 「DoCmd.TransferText acImportDelim, , "テーブル名", "ファイル名"」を使用しています。 この時に、CSVファイルが次のようなデータです。 F1,F2,F3 0010,0200,0001A12 0011,0201,0021B12 (実際は、1000件近いデータです) これをインポートすると、 F1,F2,F3 10,200,1A12 11,201,21B12 となってしまいます。 頭の「0」を省きたくないのです。 文字列として取り込めないでしょうか? CSVのデータに""を自動でつける方法はないでしょうか? Accessの外部データの取り込みを使うと、文字列として指定できるのですが、VBAを使いワンクリックでデータを取り込もうとしています。 よろしくお願いします。

  • ACCESS97 : レコードが長いファイルのインポートについて

    ACCESS97で、文字列を文字数ではなくバイト数で扱うことは可能でしょうか。 1レコードが20,000ByteあるテキストファイルをACCESS97のテーブルに インポートしようとしています。 インポート先のテーブルのフィールドをすべて「メモ型」にしたのですが、 インポート定義を利用してインポートを行おうとすると、 「レコードが大きすぎます。」というエラーが発生します。 そこで、プログラムでファイルを1レコードずつ読み込みながらテーブルに インサートしていく方法を取ろうかと思います。 テキストファイルは半角と全角が混在しているのですが、困ったことに 全角のデータが入るべきところに半角が混ざっている可能性があります。 たとえば、全角10文字入るべき場所に半角の空白が20文字入っていると いうような状態です。 この状態で StrConv関数でUnicodeに変換してからMidB$関数で文字を抜き 出すと、フィールドがずれてきます。 1文字目から10文字分、ではなく1Byte目から10Byte、などというように文 字列を扱うことができれば、全角と半角がどのような位置で混在していても 関係なくプログラム上で扱うことができると思うのですが,方法がわかりません。 また、これ以外で長いレコードのファイルをインポートできる方法があれば 教えていただきたいと思います。 長くなってしまいましたが、ご回答をいただけますようよろしくお願いいたします。

  • 容量の大きいデーター

    今アクセスにてマッチングしているデーターがあるのですが データーの容量がパンパなく大きくてフリーズしてしまいます 何かイイ方法ありませんでしょうか? 当方アクセスしか使ったことがありません・・ データーはCVS形式でインポートしています データー内容は "文字列1","文字列2","文字列3" で 10億件くらいあります これを10個のテーブルにインポートして 文字列2と文字列3のマッチング クエリーを作成しています よろしくお願いします

  • Excel→Accessへの日付データのインポート

    Excelで作った下のようなデータを、Access2000のテーブルにインポートしようとしています。 グループ名(文字列) 納期(日付) 商品(標準) ()内は書式設定 納期の日付書式は「yyyy/m」に設定しているのですが、Accessにインポートすると、テキストとして認識されて「38565」のようの数値が返されてしまします。 Excelの日付データをAccessに日付型データとして 認識させる方法を教えてください。 なるべくシンプルな方法だと助かります。当方、 VBAなどの知識はほとんどありませんので・・・・。 よろしくお願いします!!!

  • Access(アクセス)でのインポートについて

    テーブルのインポートでエクセルファイルをインポートしたいのですが「ワークシートインポートウィザード」の画面でテーブルを指定して保存すると 「Microsoft Access」の画面で「すべてのデータをテーブルに追加できませんでした。 キー違反のため、0件のレコードのデータが失われ、0件のレコードが削除されました。」と出てきて、保存できません。 もとのテーブルのデータ型を使ってインポートするにはどうしたらいいのでしょうか。よろしくお願いします。 インポートする元のデータ(エクセル)とインポート先(アクセス)の関係は次の通りです。 エクセルファイル    アクセスのテーブル (セルの書式設定)   データ型、フィールドサイズ --------------------------------------------- 数値          数値型、長整数型 文字列         テキスト型、16 インポートする前に元のエクセルデータをアクセスのデータ型に合わせただけではダメなのでしょうか

  • access2010でメモ型がインポートできない

    以前のACCESS2000では出来ていたのですが、ACCESS2010(windows7)にバージョンアップしたところ、csvファイルのインポートで、メモ型のデータが255文字までしかインポートできなくなりました。 調べてみたところ、そのフィールドを、クエリなどで使用しているとキャスト(型変換)されるのでメモ型ではなくなり255文字の制限がかかる、との記述がありましたが、新しいテーブルを作成してインポートしてもできませんでしたので、別の原因かと思われます。 また、ACCESS2000のデータを、ACCESS2010の[ファイル]-[保存して発行]・・・・も行い、拡張子を.accdbにしてみましたが、やはり255文字を超えるインポートができませんでした。 インポート時の[設定]のところのフィールドの情報で、メモ型にしてあるフィールド名が表示されていないのが気になりますが。 文字列の引用符は ” にしています。 ACCESSはデータの25行目までを読み込んでデータ型を自動選択している、という記述もあり、1行目のデータに256以上の文字を入れてインポートもして見ましたが255文字で切られてしまいます。 よろしくお願いいたします。