-PR-

締切り済みの質問

質問No.3544579
困ってます
困ってます
お気に入り投稿に追加する (0人が追加しました)
回答数3
閲覧数846
Accessでcsvを読み込ませるプログラム(VB)
教えてください。
毎月、同じ書式のCSVデータが発行されます。
そのcsvデータを参照ボタンを用意して、
任意の場所にあるそのCSVデータを毎回同じtable名で取り込み、
その後のプロシージャ―で使用したいのですが、
どのようにやったら可能でしょうか?
投稿日時 - 2007-11-25 02:16:00

回答 (3)

回答No.3
テキストのインポートもいいのですが、テキストのリンクもお手軽でいいですよ。
ANo.1さんの
DoCmd.TransferText acImportDelim, "インポート定義名"・・・

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

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

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

それと、インポート定義は必ず作った方がいいですよ。
無しでも自動判別で読み込めますが、この自動判別が時々余計な判断するので・・・
投稿日時 - 2007-11-25 10:59:04
この回答を支持する
(現在0人が支持しています)
回答No.2
#1です。
予め、取り込む先のテーブルを作っておくほうが、楽かも知れませんね。

こまかな点は、
VBAのヘルプやネットで
TransferTextメソッドをキーに参照してみてください。
投稿日時 - 2007-11-25 06:47:25
この回答を支持する
(現在0人が支持しています)
回答No.1
まずは、インポート定義を作成するために、テストインポートを行います。
その際、CSVファイルの一行目が、データで始まっているなら、メモ帳等のエディタで各フィールド名をカンマで区切って一行目に入力しておきます。
メモ帳よりもエクセルで読み込んで、空の一行目を挿入して記入した方が楽かも知れません。

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

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

あとは、参照ボタンの「クリック時」イベントプロシージャで、
DoCmd.TransferText acImportDelim, "インポート定義名", "インポート先テーブル名","CSVファイルのフルパス",True又はFalse
で取り込めます、
最後にある、「True又はFalse」とは、CSVファイルの一行目がデータかフィールド名なのかを指定します。
True=フィールド名の行あり、False=フィールド名の行なし。
テストインポートでフィールド名を追加しましたが、これは最初だけで、
フィールド名なしでCSVファイルが提供される場合、単にフィールド名をつけたインポート定義を作成したかったためだけなので、
実運用に入ったら、毎回フィールド名を追加する作業は必要ありません。
投稿日時 - 2007-11-25 06:39:34
この回答を支持する
(現在0人が支持しています)
この質問は役に立ちましたか?
1人が「このQ&Aが役に立った」と投票しています
もっと聞いてみる

関連するQ&A

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

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

同じカテゴリの人気Q&Aランキング

カテゴリ
Visual Basic
-PR-
-PR-

特集

正しい方法で健康的な綺麗を手に入れよう!

お城、ボート、ツリーハウス、ユニークな物件満載!

患者さんやご家族、それぞれに合ったゴールと道筋を。

同じカテゴリの人気Q&Aランキング

カテゴリ
Visual Basic
-PR-

ピックアップ

-PR-