以下のようなCSVファイルがあり、これをAccessにインポートしようとしています。
フィールド1 数字7桁
フィールド2 数字2桁
・・・・・
フィールド20 テキスト42桁
・・・
フィールド26 数字13桁
ただ、レコードの中には長すぎるためか途中で改行されてしまっている
レコードがあり、レコードが途中で切れてしまい、続きが次の行に
読み込まれると言う少し困った状態になっています。
(見たところ、フィールド20で切れているようです)
数箇所なら元のCSVを修正してから取り込めばいいのですが、全体が約80万件で、
そのうち200件以上はあるため、手作業でなく何か自動的に直す方法で対処したいと思っています。
(元のCSV自体が読み込みが重いため、手作業は困難です・・)
Accessに取り込むためのいい方法はないでしょうか?
OSはWinXPのSP2、Accessは2003です。
No.4ベストアンサー
- 回答日時:
検索や置換に正規表現を使えるテキストエディタやPerlの処理系が
あれば、対処出来ます。
フィールド1が数値なので、改行直後は数字であるのが正しいはずで
すよね。テキストの途中で手動で改行してしまったような場合は改
行直後が数字ではない可能性が高いので、そのパターンを見つけて
置換してしまいましょう。たとえば(\r)([^0-9])を\2にとかね。
CSVの処理はOffice製品以外を使うのがコツです。
No.3
- 回答日時:
次のような手順はいかがですか?「フィールド20」以外は数字項目であると仮定しています。
1. 次のような空のテーブルAを用意する
一連番号 オートナンバー型
フィールド1 数字7桁
フィールド2 数字2桁
・・・・・
フィールド20 テキスト42桁
・・・
フィールド26 数字13桁
2. テーブルAに1件、ダミーレコードを格納する
3. 次のような空のテーブルBを用意する
一連番号 オートナンバー型
フィールド20 テキスト42桁
・・・
フィールド26 数字13桁
4. テーブルA、テーブルBにCSVファイルをインポートする
5. テーブルAの先頭レコードを削除する
5. 削除クエリを作成してテーブルAから「フィールド1」の内容が「フィールド20」であるレコードを削除する(VarType関数で判断)
6. 削除クエリを作成してテーブルBから「フィールド20」の内容が「フィールド1」であるレコードを削除する(VarType関数で判断)
7. テーブルA、テーブルBを「一連番号」で結合した、テーブルAの更新クエリを作成し、テーブルBの「フィールド20」~「フィールド26」でテーブルAの「フィールド20」~「フィールド26」を更新する
この手順でテーブルAは求めるテーブルになっているはずです
No.2
- 回答日時:
A.量的に手作業で不可能
B.質問にぴったりの操作もない(そんな特殊ニーズ向きの操作ある訳がない)
であればプログラムで処理するしかない。
プログラム組めない?。●投げだが、じゃあ今回限りということで、ご親切なご回答者が現れるのを待つより他ない。
ーー
そこで問題のレコードを見つける方法は、どうしたらよいか考えましたか。それが判らなければプログラムも組めない。
ーー
私の推測では
CSVを文字列に読み込む(通常は1レコード)
Split関数で、その文字列をカンマで分離。分離されて配列に入るが、Uboundで、これで何個に分離したかわかる。
普通は26個。
分割されたものは25個以下(多分質問者の言によると、20個らしい)なら、分断されたと看做す(X)
25以下なら次を1つ読んで継ぎ足す。
ーー
●Xについて質問者は正しいと思うか?
●80万件CSVファイルを例えばLINE INPUTで読んで、辛抱できないくらい長時間かかると思うか(y)
>元のCSV自体が読み込みが重いためー>少し時間はかかるのは当然だが、私には信じられないが。
ともあれ、CSVファイルを読まなきゃプログラムで処理できないのはあたりまえ。
ーー
この2つぐらいについての見解を補足しておいたら。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
EXCEL→ACCESSインポートでセル内改行が機能しません・・。
Access(アクセス)
-
ACCESSでの改行コード
その他(データベース)
-
アクセスでのインポート時の改行について
Access(アクセス)
-
-
4
Access2003で特定列の改行コードを削除してCSVへエクスポート
Excel(エクセル)
-
5
Accessでの置換
Access(アクセス)
-
6
アクセス・テーブルの改行についてです。
Access(アクセス)
-
7
ACCESSにエクセルのデータをインポートする際、改行は?
Access(アクセス)
-
8
Chr(13)とChr(10)の違いは?
PowerPoint(パワーポイント)
-
9
Access テキスト型に対する指定桁での0埋め方法
その他(データベース)
-
10
Access インポート
Access(アクセス)
-
11
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
12
アクセスからエクセルのシートを追加して、名前をつける方法
Excel(エクセル)
-
13
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
14
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
15
他のフォームから別のフォームのサブルーチンを呼び出す
Visual Basic(VBA)
-
16
アクセスのレポートのヘッダーを2ページ以降にもつけるには?
Access(アクセス)
-
17
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
18
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
19
accessでSQL文を使ってcsvファイルをインポートする方法
Visual Basic(VBA)
-
20
Accessでテーブル名やクエリ名一覧の抜き出し
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスにクエリ結果...
-
更新クエリをリンクデータベー...
-
Accessのテーブルのフィールド...
-
Accessで、テーブルに入力した...
-
アクセスで追加した項目に全て...
-
ACCESSで2つフィールドの日付...
-
Access2007のテーブルにハイパ...
-
アクセスのクエリ 1文字以上を...
-
Access:値が求めたい値の2倍...
-
ACCESSで今日までの勤務時間の...
-
Access で 特定の文字の個数を...
-
アクセスのクエリに「PHONETIC...
-
Accessを開きなおすとテキスト...
-
AccessのDLookUpの第3引数の値...
-
Accessの電話番号フィールド
-
開所日数の計算
-
ACCESSでの桁数を指定して数値...
-
Access クエリの演算フィールド...
-
Accessで、1つの項目に複数の...
-
テーブルでメモ型になっている...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスで追加した項目に全て...
-
Accessを開きなおすとテキスト...
-
Accessで、1つの項目に複数の...
-
テキストボックスにクエリ結果...
-
Accessのテーブルのフィールド...
-
テーブルでメモ型になっている...
-
Access:値が求めたい値の2倍...
-
アクセスのクエリ 1文字以上を...
-
Accessで、テーブルに入力した...
-
Accessのクエリでハイパーリン...
-
accessでの文字列の混ざった連...
-
Access で 特定の文字の個数を...
-
アクセス クエリのフィールド...
-
access フォームを開くと「パ...
-
追加クエリで特定フィールドの...
-
途中で改行されたCSVをAccessに...
-
更新クエリをリンクデータベー...
-
Access2010での、レポートの両...
-
ACCESSのテーブル複数行...
-
Access2002の重複クエリで大文...
おすすめ情報