プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。
私は今AccessVBAである管理用データベースをつくろうと思っているのですが、
一番最初の作業であるインポートがどうしてもうまくいきません。
CSVファイルのインポートで、「TransferText」を使うところまではわかっているのですが、
引数の書き方がヘルプを見てもちょっとわかりにくくて・・・。
どなたかわかりやすくご教授願えないでしょうか。
ちなみに私なりにインポートのプログラムを書いたら「実行時エラー'2391' 貼り付け先の'kyk1'テーブルには'F1'フィールドがありません」と出ました。
これは一体どういう意味なんでしょうか?

教えて!goo グレード

A 回答 (4件)

こんにちは。


#2 の Wendy02です。

>CSVファイルにはフィールド行はありませんので、あの部分は「False」で正しいものと私も思っていましたがあのエラーが出るんですよ。

既存のテーブルに入れるのでしたら、エラーがでます。仮のフィールドが必要ですからね。
#3 さんが紹介してくれた内容でも、

>元になるデータと完全にフィールド名を一致させておく必要があります。

というわけで、何もない状態では、DBデータとして受け入れられないわけですね。ダミーテーブルがよいのでは、とは思ったのですが、私には、#3さんのインポート定義が、VBAで有効なのか、良く分かりません。

私は、あくまでも、VBAの側からみた話ですが、CSVのフィールドが決まっているなら、一行目をテキストストームなどで、フィールドのテキスト・データを加えてから、改めてインポートしても、よほど、大きなものでない限りは、そんなに問題じゃないよう思います。

ADO は、DB系のVBA/VBでは必須なのですが、詳しい内容は、谷尻かおりさんの本などに出てきます。上記で述べたよりは、遥かに難しくなります。

簡単な読み物でしたら、ADO入門講座(Access Club)
http://www.accessclub.jp/ado/index.html

があります。
    • good
    • 1

あらかじめ「インポート定義」を作成しておき、


第2引数を省略せずに指定します。
「インポート定義」の作り方はこちらを参考に。
http://www.microsoft.com/japan/technet/archive/c …
    • good
    • 0

こんにちは。



私は、Access は、門外漢ですが、

例えば、

 DoCmd.TransferText acImportDelim, , "kyk1", strFileName, False
 
とした時に、

>貼り付け先の'kyk1'テーブルには'F1'フィールドがありません」と出ました

というのは、まず、HasFieldName (上記では、Falseとしている)では、先頭行をフィールド名として使用しませんので、仮のフィールドのF1 を探そうとするけれども、kyk1 テーブルには、F1 フィールドがありませんから、エラーが返ってくると思います。

CSV データにkyk1テーブルと同じフィールドがあると仮定すれば、

 DoCmd.TransferText acImportDelim, , "kyk1", strFileName, True

としたら、出来るはずです。(ダブりなどがあれば、そのデータは弾かれます)

フィールド行がなければ、ダミーテーブルを作っておくほかには、TransferText では出来ないように思います。もしVBAが詳しい方なら、最初から、ADOを使ったほうが早いような気がします。

そうでなければ、インポート・ウィザードを使うことになると思うのです。
    • good
    • 0
この回答へのお礼

詳しくご回答いただきありがとうございます。
CSVファイルにはフィールド行はありませんので、あの部分は「False」で正しいものと私も思っていましたがあのエラーが出るんですよ。
一度、ファイル→外部データの読込みからインポートし、テーブルのデータだけを消して、
再度VBAでインポートしようとしたのですが同じエラーがでました。
もう原因不明なのでインポート・ウィザードを使おうとは思っています。
ひとつ教えていただきたいのですが、ADOとは何でしょうか?自分が買ったVBAの参考書にも載ってはいるんですが、少ししか載ってなくて・・・。

お礼日時:2006/09/10 12:44

こちらを参考に。


http://www.accessclub.jp/bbs3/0115/superbeg40731 …

まず、「テキスト変換」マクロで作ってみて、
それを VBのコードに変換しましょう。

多くのアクセスプログラマがやってきたことです。

参考URL:http://www.accessclub.jp/bbs3/0115/superbeg40731 …
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング