アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (3件)

テキストのインポートもいいのですが、テキストのリンクもお手軽でいいですよ。


ANo.1さんの
DoCmd.TransferText acImportDelim, "インポート定義名"・・・

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

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

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

それと、インポート定義は必ず作った方がいいですよ。
無しでも自動判別で読み込めますが、この自動判別が時々余計な判断するので・・・
    • good
    • 0

#1です。


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

こまかな点は、
VBAのヘルプやネットで
TransferTextメソッドをキーに参照してみてください。
    • good
    • 0

まずは、インポート定義を作成するために、テストインポートを行います。


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

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

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

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!