• ベストアンサー

複数行を含む列を含むCVSファイルをインポートし、フォームで改行を反映させて表示したい

電子メールのデータ(日付、タイトル、本文等)をコンマ区切りのCVSファイルに出力し、それをマイクロソフトAccess2003(windowsXP環境)にインポートしました。 本文は複数行あるのでCVSファイル内では""で囲んであります。 インポート後のテーブル表示では、複数行の文字列として格納されていることを確認しております。 例えばメモ帳などにコピー&ペーストすると改行を含んだ形で元の電子メールデータの本文が正しく表示されます。 しかし、これをAccessのフォーム機能にて表示すると、複数行の文字列が一行に変換されて表示されてしまいます。 最終的にやりたいことは、メールデータをCVS形式でAccessのテーブルにインポートし、それを1メール1フォームの形式で表示し、各メールに対して自由記述あるいはチェックボックス等を使ってフラグ付けをしながら次々にページをめくるようにして読んでいきたいということです。 現在のところテーブルへのインポートまでは成功していると認識しておりますが、肝心のフォーム表示にて本文が一行化されてしまい非常にみにくくて作業効率が悪い状態でなんとかならないかと考えています。

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

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

>インポート後のテーブル表示では、複数行の文字列として格納されていることを確認しております。 正しく改行されてフィールドに保存されていればフォームのコントロールにも改行されて表示されるはずなのですが。 Chr(13)だけインポートされている状態だと・(キャリッジリターンのみ)になり改行できません。Chr(13) & Chr(10)を含めてインポートするとか。 フォームのコントロールに表示したときにコントロール内に・があるようならユーザー関数を作ってクエリ上で改行に変換すれば表示できます。 標準モジュールに下記をコピーしてください。(コピーすればMyRaplaceという関数として使えます。) Option Compare Database Option Explicit Function MyRaplace(VarExpression As Variant _ , StrFind As String _ , StrReplace As String _ ) As Variant If IsNull(VarExpression) Then MyRaplace = Null Else MyRaplace = Replace(Expression:=VarExpression _ , Find:=StrFind _ , Replace:=StrReplace _ , Compare:=vbTextCompare) End If End Function そしてクエリに 本文1:MyRaplace(テーブル名.本文,"・",Chr(13) & Chr(10)) で変換後にコントロールのソースを本文1にするか フォームのレコードソースに本文を持っていれば本文を表示したいコントロールのソースに =MyRaplace(本文,"・",Chr(13) & Chr(10)) で変換し改行することができます。

syuutomi
質問者

お礼

ご回答ありがとうございました。 ご指摘の点で「・」も表示されておりませんでした。 で、結論を言うとやはり改行コードの問題UNIX形式のlfとなっていました。 これをperl側でs/\n/\r\n/g;としてやることで無事Accessにて正常に改行されるようになりました。

その他の回答 (1)

  • sakko99
  • ベストアンサー率63% (19/30)
回答No.1

本来の改行位置に「・」のようなものが表示されていませんか? メモ帳などで見る改行コードとAccessフォームの改行コードは 違ったと記憶しています。そうであれば、インポートした後に そのコード変換のUPDATE処理を実行すれば解決すると思います。

syuutomi
質問者

お礼

ご回答ありがとうございました。 ご指摘の点で「・」も表示されておりませんでした。 で、結論を言うとやはり改行コードの問題UNIX形式のlfとなっていました。 これをperl側でs/\n/\r\n/g;としてやることで無事Accessにて正常に改行されるようになりました。

関連するQ&A

  • cvsファイルをGmailにインポートするには

    EXCELで連絡先リストを作って、Gmailにインポートしたいのですが、CVSファイルに問題がある、というメッセージが出て、受付けられません。 自分の作ったCVSファイルは、「名前」「メールアドレス」の2列のものです。 シートの1行目に、「名前」「メールアドレス」と入力して、2行目からデータを入れています。 どこがおかしいのでしょうか?

  • 複数のCSVファイルの一括インポートについて

    CSVファイルをインポートしたいと思っているのですが、 複数のファイルをいっぺんに複数のテーブルにインポートする方法が わからず困っています。200行8列の2000ファイルを、 テーブル1,テーブル2,テーブル3・・・・テーブル2000にそれぞれ 1ファイルずつを一回のSQL文でインポートするやり方です。 毎日ほぼ同じ量のデータをインポートする必要がありますので、 2000ファイルをファイル名などの固有の情報を付加し連結して、 1ファイルにしてしまい、1テーブルにインポートする方法だと SELECT文をかけたときに取得する時間がとてもかかってしまうような 気がしますので、、、

    • ベストアンサー
    • MySQL
  • アクセスでフォームで入力 複数列にできる?

    アクセス2000です あるフィールドに続けてデータを打ち込むためのフォーム作り中。レポートなら複数列にして印刷できるが、フォームではひとつのフィールドを繰り返し使うには縦にずらっとならびますよね。フォームを工夫して複数列に表示できたら入力しやすいのですが。もしうまい方法がありましたら教えてください。 

  • access フォーム上で複数行のレコードを追加したい。

    宜しくお願いします。 仕様環境:WinXP access2002 フォーム上にコマンドボタンで空白のレコードを 追加したいのですが、一行だけなら「値の代入」マクロで 追加できるのですが、複数行だとやり方がわかりません。 「追加クエリ」を作ってコマンドボタンにマクロで乗せてみたのですが、 テーブル上では複数の空白レコードが追加されてますが、 フォーム上には反映してくれません。 「値の代入」マクロを使って、複数行のレコードをフォーム上に追加するか、 「追加クエリ」を使って、複数行のレコードをフォーム上に反映させるか したいのですが教えてください。 ※ ちなみにこのフォームはサブフォームです。   また5行追加しようとしています。   この方法では無理でしたらご指導お願いします。 宜しくお願いします。

  • リストボックスに複数列表示したい。

    こんにちわ。 いまASP.Net 2005でWebフォームにSQLServerのテーブルの内容を 表示しようとしています。 そこでlstABC.DataSource = "データセット名"としたのですが, テーブルの先頭カラムしか表示されません。 そのテーブルには2列あり,2列とも表示したいのですができません。 どうすればリストボックスの列を複数にして,2列とも 表示できるのでしょうか? 教えてください。よろしくお願いします。

  • 複数のファイル 改行が入った文字列の一括変換

    改行が入って複数行にわたる文字列を 複数のファイルを対象にして 一括変換するツールは ありませんでしょうか。 一行だけの文字列では 「ファイルから置換」を使っているのですが、 複数行を対象にした置換をする方法がわからないのです。

  • エクセルで複数の行・列を同時に同じ大きさにするには?

    よろしくお願いします。 資料を作る際に、行の幅、列の幅を揃えたいのですが、 一行一行行うと大変なので複数行、複数列を一回で同じ幅(例えば18.5ピクセルなど)にしたいです。 やり方はあるのでしょうか? 教えていただけると助かります。 よろしくお願いします。

  • textarea形式のフォームで複数行入力したテキストデータを保存すると、複数行のデータができてしまう現象を回避する方法

    「テキストファイルのデータを読み込み、html画面のフォームに表示させ、データを修正後、元のテキストファイルに書き戻す」というCGIを作成中です。 テキストファイルのデータの並びは決まっていて、例えば3番目のデータが「名前」4番目のデータが「住所」だったりします。 ここで、複数行の入力が必要なフィールドをが必要となり、"textarea"形式のフォームを設定したところ、複数行のインプットをすると、テキストファイルにも複数のデータができてしまいました。2行のデータをインプットすると、データも2行になってしまい、後のデータがずれてしまいます。 そこで「複数行のテキストデータを、改行マークをつけたまま、1行のデータとして保存し、読み込んでtextarea 形式のフォームに表示させるときは、改行されて表示する」という処理が実現できるよう、時間をかけて調べておりますが未だ判らない状態です。  ご存じの方がいらっしゃいましたら是非教えて頂きたく、宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • 複数CSVファイルを一括インポート

    お世話になります ■概要 Accessのボタンで複数のCSVファイルを一括にひとつのテーブルにインポートさせたいのですが ■内容 テキストボックス、参照ボタン、実行ボタンをフォーム上に設置 参照ボタンでダイアログボックスを表示させCSV複数選択し 選択内容がテキストへ反映。 実行ボタンで選択された複数CSVをインポートさせたいです 少し難しいと思いますが、わかる方ご教授よろしくお願い致します。

  • postgreSQLに複数行(改行された)文字列を追加するには

    postgreSQLに複数行(改行された)文字列を追加するにはそうしたらよいのでしょうか? PHPでHTMLからデータを受け取り挿入したいのですが 複数行の文字列を入れるとおかしなことに・・・(汗