- ベストアンサー
AccessのマクロでCSVファイルをインポートする
Accessのマクロ・VBAにてCSVファイルを インポートしたいのですが、うまくいきません。 DoCmd.TransferText acImportDelim, , "C:\Documents and Settings\yoshimi\My Documents\顧客マスタテーブル.csv", False 現在のコードです。 「オブジェクト'0.txt’が見つかりませんでした。 オブジェクトが存在していること、名前やパス名が正しいことを確認 してください。」 とエラーが表示されます。 過去ログを検索し、似たようなものを見つけ同じようにしたつもりです。 http://okweb.jp/kotaeru.php3?q=1691138 (回答のANo.1の定義の保存場所が分からずしていません) どこがおかしいのか教えていただきたいです・・・
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
インポート先(保存先)となるテーブルが指定されていないようです。 その分、カンマ(,)が1個少ないなっているために引数がずれて判断され、インポートするファイルが「C:\~顧客マスタテーブル.csv」ではなく、「0.txt」だと判断されているのではないかと思います。 (「False」がファイル名と解釈され(False=0)、テキストファイルと解釈されて拡張子「.txt」をつけてエラー表示された、と) とりあえず、「Test」テーブルを作成し(フィールドは仮でF1,F2の2つでテキスト型)、「,"C:\~」の前に「,"Test"」を入れて実行してみて下さい。 (csvファイルが3列以上の構成であれば、「テーブル'Test'にはF3フィールドがありません」とのエラーが表示されるようになりると思いますので、適宜F3,F4,・・・と、必要な列数を追加して下さい:定義のかわりです)
その他の回答 (2)
- DexMachina
- ベストアンサー率73% (1287/1744)
No.1です。 すみません、 > 「,"Test"」 ではなく、 > 「"Test",」 でした。お詫びの上、訂正いたします。 大変失礼致しました。
お礼
ありがとうございました。 (「False」がファイル名と解釈され(False=0)、テキストファイルと解釈されて拡張子「.txt」をつけてエラー表示された エラーの理由を教えていただいて勉強できました。 &うまくいきました。m(_ _)m
- sanbit
- ベストアンサー率32% (16/50)
手動でインポートしインポートの定義ファイルの作成してください。 テーブルインポート→テーブル選択新規⇒区切り記号つき→カンマ、先頭行をフィールド名にチェック →新規テーブルに保存→各フィールドの型設定→主キーを設定をチェック ⇒「これでデータをインポートするための設定は・・・」となります。 ここで画面の設定ボタンをクリック→インポートの定義ファイルを保存します。 DoCmd.TransferText acImportDelim, "インポートの定義ファイル名","Accessのテーブル名","テキスト名.csv" DoCmd.TransferText acImportDelim,"インポートの定義ファイル", _ "Test", "C:\Documents\顧客マスタテーブル.csv", False これでどうでしょうか?参考まで
お礼
インポートの定義ファイルを保存 の方法が分からず困っていました。 インポートする際のルールを先にきめておくようなもの・・と 理解しました。(うまく言えませんが) インポートできました。 ありがとうございました。
補足
ご返答ありがとうございます。 遅くなり申し訳ありません。 「込み合っています」のメッセージばかりで、書き込めませんでした・・・ 教えていただいたように、下記のようになおしました。 Private Sub 商事部門_Click() On Error GoTo 商事部門_Err DoCmd.TransferText acImportDelim, , , "Test", "C:\Documents and Settings\yoshimi\My Documents\顧客マスタテーブル.csv", False 商事部門_Exit: Exit Sub 商事部門_Err: MsgBox Error$ Resume 商事部門_Exit End Sub 今度は、 「指定した式は、いずれかの引数とデータ型が対応していません」と 表示されました。 念のため、csvのファイルを2列で文字のみのデータにしてみましたが 同じエラーが表示されます。 何がいけないのでしょうか?