総ありがとう数 累計4,290万(2014年11月1日現在)

毎月4,000万人が利用!Q&Aでみんなで助け合い!

-PR-
yuhei_1800

教えてください。
毎月、同じ書式のCSVデータが発行されます。
そのcsvデータを参照ボタンを用意して、
任意の場所にあるそのCSVデータを毎回同じtable名で取り込み、
その後のプロシージャ―で使用したいのですが、
どのようにやったら可能でしょうか?
  • 回答数3
  • 気になる数0

Aみんなの回答(全3件)

回答 (全3件)

  • 2007-11-25 06:39:34
  • 回答No.1
noname#79209

まずは、インポート定義を作成するために、テストインポートを行います。
その際、CSVファイルの一行目が、データで始まっているなら、メモ帳等のエディタで各フィールド名をカンマで区切って一行目に入力しておきます。
メモ帳よりもエクセルで読み込んで、空の一行目を挿入して記入した方が楽かも知れません。

そのあと、Accsessを寄贈して、
CSVファイルを「ファイル」-「外部データの取込」-「インポート」でCDSVファイルをインポートぢます。

インポートウイザードの最後で、「設定」をクリックしインポート定義を保存しておきます。

あとは、参照ボタンの「クリック時」イベントプロシージャで、
DoCmd.TransferText acImportDelim, "インポート定義名", "インポート先テーブル名","CSVファイルのフルパス",True又はFalse
で取り込めます、
最後にある、「True又はFalse」とは、CSVファイルの一行目がデータかフィールド名なのかを指定します。
True=フィールド名の行あり、False=フィールド名の行なし。
テストインポートでフィールド名を追加しましたが、これは最初だけで、
フィールド名なしでCSVファイルが提供される場合、単にフィールド名をつけたインポート定義を作成したかったためだけなので、
実運用に入ったら、毎回フィールド名を追加する作業は必要ありません。
通報する
  • 同意数0(0-0)
  • ありがとう数0
  • 2007-11-25 06:47:25
  • 回答No.2
noname#79209

#1です。
予め、取り込む先のテーブルを作っておくほうが、楽かも知れませんね。

こまかな点は、
VBAのヘルプやネットで
TransferTextメソッドをキーに参照してみてください。
通報する
  • 同意数0(0-0)
  • ありがとう数0
  • 2007-11-25 10:59:04
  • 回答No.3
テキストのインポートもいいのですが、テキストのリンクもお手軽でいいですよ。
ANo.1さんの
DoCmd.TransferText acImportDelim, "インポート定義名"・・・

DoCmd.TransferText acLinkDelim, "インポート定義名"・・・
にすると、実際にはテキストを読み込まないテーブルができます。
最初に1度、手動でリンクさせる必要があります。

更新は最初に手動で定義したcsvファイルの位置に新しいcsvファイルをコピーするだけですみます。

良い点は、実際のデータをテーブルに挿入しないので、ファイルのサイズが大きくならないのと、他のプログラムや手動でコピーすれば済む点です。
悪い点は、大きいcsvファイルだと処理に時間がかかる場合があるのと、csvファイルの位置や名前が変わると変更する必要があります。

それと、インポート定義は必ず作った方がいいですよ。
無しでも自動判別で読み込めますが、この自動判別が時々余計な判断するので・・・
通報する
  • 同意数0(0-0)
  • ありがとう数0
  • 回答数3
  • 気になる数0
  • ありがとう数1
  • ありがとう
  • なるほど、役に立ったなど
    感じた思いを「ありがとう」で
    伝えてください

関連するQ&A

その他の関連するQ&Aをキーワードで探す

別のキーワードで再検索する

あなたの悩みをみんなに解決してもらいましょう

  • 質問する
  • 知りたいこと、悩んでいることを
    投稿してみましょう
-PR-
-PR-
-PR-

特集

専門医・味村先生からのアドバイスは必見です!

関連するQ&A

-PR-

ピックアップ

  • easy daisy部屋探し・家選びのヒントがいっぱい!

-PR-
ページ先頭へ