
こんにちは。
私は今AccessVBAである管理用データベースをつくろうと思っているのですが、
一番最初の作業であるインポートがどうしてもうまくいきません。
CSVファイルのインポートで、「TransferText」を使うところまではわかっているのですが、
引数の書き方がヘルプを見てもちょっとわかりにくくて・・・。
どなたかわかりやすくご教授願えないでしょうか。
ちなみに私なりにインポートのプログラムを書いたら「実行時エラー'2391' 貼り付け先の'kyk1'テーブルには'F1'フィールドがありません」と出ました。
これは一体どういう意味なんでしょうか?
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.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
があります。
No.3
- 回答日時:
あらかじめ「インポート定義」を作成しておき、
第2引数を省略せずに指定します。
「インポート定義」の作り方はこちらを参考に。
http://www.microsoft.com/japan/technet/archive/c …
No.2
- 回答日時:
こんにちは。
私は、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を使ったほうが早いような気がします。
そうでなければ、インポート・ウィザードを使うことになると思うのです。
詳しくご回答いただきありがとうございます。
CSVファイルにはフィールド行はありませんので、あの部分は「False」で正しいものと私も思っていましたがあのエラーが出るんですよ。
一度、ファイル→外部データの読込みからインポートし、テーブルのデータだけを消して、
再度VBAでインポートしようとしたのですが同じエラーがでました。
もう原因不明なのでインポート・ウィザードを使おうとは思っています。
ひとつ教えていただきたいのですが、ADOとは何でしょうか?自分が買ったVBAの参考書にも載ってはいるんですが、少ししか載ってなくて・・・。
No.1
- 回答日時:
こちらを参考に。
http://www.accessclub.jp/bbs3/0115/superbeg40731 …
まず、「テキスト変換」マクロで作ってみて、
それを VBのコードに変換しましょう。
多くのアクセスプログラマがやってきたことです。
参考URL:http://www.accessclub.jp/bbs3/0115/superbeg40731 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
確定申告しなかった・無申告の人をどうやって見つけるのか元国税調査官に聞いてみた
無申告の方などを対象に税務調査を行う国税局の元税務調査官さんに、どう無申告を探すのか聞いてきました。
-
エクセルからアクセスにインポートすると、エラーが出てしまいます。原因を教えていただけませんか。
Access(アクセス)
-
excelインポート時の「実行時エラー2391」を事前に検知する方法
Access(アクセス)
-
インポート時のエラー「データ型の変換エラー」
Access(アクセス)
-
4
Access から Excelのシートをインポート時エラー
Visual Basic(VBA)
-
5
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
6
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
7
「データベースまたはオブジェクトは読み取り専用なので、更新できません」エラーについて
その他(データベース)
-
8
csvファイルのインポート
その他(データベース)
-
9
ACCESS VBAでのインポート
Access(アクセス)
-
10
Accessのデータのインポートで重複分を排除
その他(Microsoft Office)
-
11
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
12
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
13
Accessのテーブルを既存のExcelファイルへエクスポートしたいんですが
Access(アクセス)
-
14
選択クエリで実行結果を非表示にできますか?
その他(データベース)
-
15
AccessのマクロでCSVファイルをインポートする
Access(アクセス)
-
16
access テキストボックスの値取得
Access(アクセス)
-
17
ACCESSでデータ読み取り専用を解除する方法
その他(データベース)
-
18
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
19
エクセルからアクセスにインポートする際のエラーについて
Access(アクセス)
-
20
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
エクセルにおける「フィールド...
-
5
ACCESS 重複データを1...
-
6
実行時エラー '3464': 抽出条件...
-
7
ACCESSのデータに自動で半角ス...
-
8
varchar型の入力できる最大文字...
-
9
エクセルのピポットテーブルで...
-
10
クエリで割り算する方法を教え...
-
11
ToV、サブイベント・犬マップの...
-
12
sqlserverにはグループ集計のfi...
-
13
ACCESSでフィールド名の変更(...
-
14
クエリーで、全角混じりデータ...
-
15
ACCESSで条件によってフォーム...
-
16
Acsess アクセス のクエリで...
-
17
フィールドの更新がない
-
18
ワードファイルの文字数制限ロ...
-
19
アクセスでのテキストデータ取...
-
20
アクセスの複数フィールドから...
おすすめ情報
公式facebook
公式twitter