• ベストアンサー
  • 暇なときにでも

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

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

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

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

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

固定長のファイルでしたら 一度Accessにそのままインポートしてそれからテーブルに保存する方法もあります。 Private Sub コマンド0_Click() On Error GoTo Err_コマンド0_Click Dim kensu1 Dim MyChar Dim DB1 As Database Dim TBL1 As Recordset Set DB1 = DBEngine.Workspaces(0).Databases(0) Set TBL1 = DB1.OpenRecordset("テストテーブル", dbOpenDynaset) Open "C:\????.log" For Input As #1 '????はパスとデータの名前 kensu1 = 0 Do While Not EOF(1) MyChar = Input(???, #1) '???は固定長の長さ kensu1 = kensu1 + 1 TBL1.AddNew TBL1("テストテーブル") = MyChar TBL1.Update Loop MsgBox "処理終了xx: " & kensu1 & "件出力しました。" Close #1 TBL1.Close Exit_コマンド0_Click: Exit Sub Err_コマンド0_Click: If Err = 62 Then ' 終了 MsgBox "処理終了: " & kensu1 & "件出力しました。" Close #1 TBL1.Close Resume Exit_コマンド0_Click End If MsgBox Err.Description Resume Exit_コマンド0_Click End Sub クリックした際の仕様で書きましたがこれでインポートしたデータ件数も数え 後は固定長のまま1レコードごと取り込んだデータをMid関数でも使ってモジュ ールを作るか追加クエリでも作って保存するテーブルに落とせます。

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

その他の回答 (2)

  • 回答No.2
  • papayuka
  • ベストアンサー率45% (1388/3066)

こんにちは。 *.logがテキストファイルで、固定長なら、拡張子をtxtに変えて、インポート定義を作っておいて取りこめば良いと思います。 Sub Test() Dim myDB As DAO.Database, Path As String  Set myDB = CurrentDb  Path = Left(myDB.Name, Len(myDB.Name) -  Len(Dir(myDB.Name)))  Path = Path + "Test.txt"  DoCmd.TransferText acImportFixed, "Test インポート定義", "テストテーブル", Path End Sub アクセスは得意じゃないので、、、 勘違いしてたらゴメンナサイ。

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

  • 回答No.1
  • papayuka
  • ベストアンサー率45% (1388/3066)

こんにちは。 元データは固定長でも無く、何の区切りもないのですか? 現在はどうやって、区切りを判断しているのでしょう?

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

質問者からの補足

説明不足でした。。。固定長です。 正規表現の置換ツールで毎回置換してます。

関連するQ&A

  • アクセス2010のインポートについて

    調べてみてもわからなかったので教えてください。アクセス初心者です。 アクセスでデータベースを作成しようと試みています。 あるエクセルデータをアクセスでテーブルとして使用したく、インポートしました。 なにやら、思惑とは違い、一部のデータが、エクセルの所定の列とはフィールドがずれていて、 エクセルデータを確認したところ、一つのセルの中に、半角カンマが入っていました。 どうやらこのことが原因みたいなのですが、最初は半角カンマを他の文字に変えようかとも検討したのですが、半角カンマが入った状態でインポートした方がいいという結論に達しました。 どうしたら上記のデータを半角カンマをとらずにフィールドがずれることなくアクセスへインポートできるでしょうか

  • MS Accessでデータインポート前に置換処理をするには

    OSは98、Access2000です。 あるオフィスコンピュータよりデータを、txt形式(カンマ区切り)でAccessにインポートしたいのですが、データの中に「"」が使用されていて、そのままインポートすると「解析不能の・・・」というエラーが出てしまいます。 そこで、Accessにデータをインポートする前に、置換処理をかけて「"」を違う文字に変換しそれからAccessにインポートするというような感じにしたいのですが、どなたかご教授いただけないでしょうか。 毎日インポートするデータですので、何かのボタンをクリックしたら実行されるような形で作りたいと思っております。 本当に少しならVBAが分かるようになってきましたので、アドバイス等よろしくお願い致します。

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

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

  • ACCESSデータベースで

    テーブルのフィールド内容は全く同じだとして、ACCESS97で作ったデータベースのテーブルに、ACCESS2000のテーブル(データ)をインポートすることは可能でしょうか。

  • Access2000形式でのインポートについて

    Access2000形式でタブ区切りのテキストデータをテーブルにインポートすると、 インポート後のテーブルの内容がテキストデータと違う順番になってしまいます。 何回やってもこの現象なので困っています。 何かわかる方、お願いします。

  • インポートについて

    初歩的な質問ですみません・・・ ユーザモードでエクスポートした [ data.dmp ] があるのですが、このデータを、同じユーザが作成されている別のデータベースに、インポートしたいと思っています。その時、 [ data.dmp ] にある全テーブルのデータを(テーブルの作成と合わせて)インポートしたいのですが、 IMP USERID=****/**** FILE=user.dmp LOG=imp.log FULL=y IGNORE=y で大丈夫でしょうか? 「FULL」というパラメータが良く分かっていません。「全体をインポート」「全ファイルをインポート」という説明があったのですが、「全部」とは何を意味しているのか良く理解できていません。 よろしくお願いします。

  • 【Access2010】CSVインポートについて2

    お世話になります。 現在、表題につきまして以下の質問をさせて頂いておりますが、もう一つ質問させて頂きます。 http://questionbox.jp.msn.com/qa8724865.html インポートしようとしているCSVファイルはカンマ区切りですが、その中のデータにカンマが含まれている場合がございます。 項目1  項目2  項目3 ・・・  1    あ,あ   いい  2    うう    ええ これをカンマ区切りでインポートすると、 項目1  項目2  項目3  フィールド1 ←自動的についたフィールド名  1    あ     あ    いい  2    うう    ええ となってしまいます。 これを回避する方法はございますでしょうか。 ※CSVファイルは変更したくないので、予めCSVから不要なカンマを削除しておく・・というのは無しでお願いします。 ご教授の程、宜しくお願い致します。

  • ACCESS アクセスで他のデータベースからのデータインポート

    アクセスど初心者です。 Aというデータベースファイルにあるテーブルaのデータを、Bというデータベスファイルにあるテーブルbに インポートできますか?フィールド等詳細は両テーブルとも一緒だとします。 イメージ的には、テーブルbの最終レコードの後にテーブルaのデータがくっつくという感じです。 コピー&ペーストだとエラーになってしまうのですが・・・。宜しくお願いします。

  • heroDBに外部CSVをインポートしたいのですが

    heroDBというデータベースを利用しており、外部のCSVをインポートさせたいのですがどのようにすればいいのでしょうか? 現在heroDBというフリーのデータベースを利用し、別なサイトの会員データCSVをインポートしてデータベース更新などができればと考えています。 コンマ区切りのCSVなのですが、heroDBを利用してインポートは可能なのでしょうか? その際はどのようにすればインポートできますでしょうか? 初心者なので右も左もわからず・・・

  • ACCESS複数テキストファイルをインポートについて

    ドライブC、フォルダ DETA 内に 数は100を越えるテキストファイルがあります "C:\DETA\*.txt"です  性質は 「区切り記号付(カンマ区切り)」です。 フィールドは全部で4つ データ型は全て同じで”テキスト型”です。 これを 同フォルダ内の 「データベース1.mdb」にインポートしたく思います。 本来ならウィザード使って終わりですが インポートするテキストファイルが100を越えるため  一度で何とかインポートしたいのですが 手段がわからずじまいです。 マクロという項目がありますが ここでは使えないのでしょうか? アクセスに関しては超入門レベルで もう少し調べろとお叱りをいただくレベルだと思います。 そこを何とぞご教授 お願いしたく思います。