csvファイルを指定したテーブルにインポートさせるのですが、この最初のフィールドに主キーを付与させようとしています。手動でインポートする際はメニューで指定するので主キーが付与されるのですが、VBAではcsvファイルそのままの状態でしかインポートされません。
このテーブルは、毎月更新させるので、一度データを削除してインポートさせます。
Mypath & Fdnは階層指定です。
いろいろネットで調べて下記の構文でインポートはできるのですが
DoCmd.TransferText acImportDelim, "222 更新データ インポート定義", "更新データ【更新根拠】(当月)", Mypath & Fdn & "\222 更新データ【請求根拠】.csv", True, ""
手動でインポートする時指定する”主キーを自動的に設定する”はどのようにすれば適用されるのかがわかりません。
どなたか教えてください。よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
質問返し?になってしまいますが
>後から別途オートナンバーを付与する方法を見つけたのですが、レコード数が17万ほどなのでエラーが出て、レジストリを触らないといけないと解説にあったため
の解説リンク先?または、具体的な方法を教えてもらえますか?
出来ればエラー内容も?
回答の際はなるべく検証してから行うようにしていますが
せっかく回答しても「それでダメだったんです。」だと辛いので。。。
当方の後学の意味でも是非。
再インポートの際にはオートナンバーは1から振り直しということで
下準備
取りあえずウィザードでインポートを完了させます。
(これは出来ているようですね)
出来たテーブルを開いて、Ctrl + A で全レコードを選択し、Delete します。
デザインビューに切り替えて、主キーフィールドを削除し一旦保存。
再度デザインビューで開いて、手作業で主キーフィールド(オートナンバー型)を設定します。
(ウィザードで作られた主キー(オートナンバー型)だと下記コードでエラーになります)
(フィールドのデータ型が正しくありません←バグっぽい?)
あとは、下記コードを実行する都度オートナンバーは1から始まるハズです。
Sub test1()
'要参照設定 Microsoft ActiveX Data Objects 6.x Library か Microsoft ActiveX Data Objects 2.x Library どちらかに
With CurrentProject.Connection
.Execute "DELETE * FROM [テーブル名];", dbFailOnError
.Execute "Alter Table [テーブル名] Alter Column [主キーのフィールド名] Identity( 1, 1 );", dbFailOnError
End With
DoCmd.TransferText acImportDelim, "インポート定義名", "テーブル名", "CSVファイルのフルパス", True
End Sub
※参照設定は多分、Objects 6.x Library は 6.1になっていると思います。
VBEのメニュー → ツール → 参照設定 からプルダウンしチェックを入れてください。
この回答への補足
NotFound404さま
お礼に書き込めませんでしたので、すみません、補足欄に・・。
ありがとうございました!うまくできました☆
わかりやすく教えていただきありがとうございました。
NotFound404さま
ご教示ありがとうございます。
早速やってみます。
結果前にお礼を記載していますが、お尋ねの内容を早くご連絡しようと思い記載いたしました。
エラー:
実行時エラー’3052’:
ファイルの共有ロック数が制限を超えています(Error 3052)。レジストリエントリ
MaxLocksPerFile の値を増やしてください。
このエラー関連の質問↓
http://detail.chiebukuro.yahoo.co.jp/qa/question …
ベストアンサーで紹介されていたサポートです↓
http://support.microsoft.com/kb/815281/ja
No.1
- 回答日時:
データだけ削除してインポートすれば
Currentdb.Execute "DELETE * FROM [更新データ【更新根拠】(当月)]",dbFailOnerror
DoCmd.TransferText acImportDelim, "222 更新データ インポート定義", "更新データ【更新根拠】(当月)", Mypath & Fdn & "\222 更新データ【請求根拠】.csv", True, ""
主キーなどなどの設定は変化しないハズです。
テーブル名やフィールド名などにたとえ全角文字であっても丸かっこを使用するのは
止めといた方が・・・。
http://support.microsoft.com/kb/826763/ja
この回答への補足
NotFound404さま
ありがとうございます。
インポート対象のcsvファイルには元々ナンバーがふられていないため、インポートする際に"主キーを自動的に設定する"機能で番号を付与したいのです。
VBA構文で指定方法は有りますでしょうか。
別途、後から別途オートナンバーを付与する方法を見つけたのですが、レコード数が17万ほどなのでエラーが出て、レジストリを触らないといけないと解説にあったため"主キーを自動的に設定する"機能で番号を付与しようとしています。
それからテーブル名等の記載方法についてURLありがとうございます。大変参考になりました。
まだまだ初心者なので大変助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Access(アクセス) スキルシートのエクセルの項目に 2 2023/04/04 22:41
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- Access(アクセス) Access2016のExcelインポートの機能のことで教えてください 1 2022/09/11 14:58
- Chrome(クローム) ブラウザのブックマークの同期の仕方についてお尋ねします。 1 2022/08/10 16:44
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- Windows 10 Windows11の初期設定を行ったのですが、 ずっと「対応が必要です」「Googleでは、引き続き 1 2023/07/09 21:40
- Excel(エクセル) Excel VBAでフォルダが何層にもなっていて最下層の中にCSVファイルがあり最上層のファイルを指 4 2022/06/08 20:41
- Outlook(アウトルック) outlookでのデータ移行について 2 2022/05/30 08:42
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Accessのデータのインポートで重複分を排除
その他(Microsoft Office)
-
accessテーブル作成クエリを実行したときにオートNo(のような)振る方法
その他(データベース)
-
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
-
4
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
5
Accessでフォームから別フォームのテキストボックスの値を設定する
Visual Basic(VBA)
-
6
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
7
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
8
ACCESSのBookmarkプロパティの使い方
その他(データベース)
-
9
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
10
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
11
AccessのDAOでフィールド名を配列に格納して・・・
Visual Basic(VBA)
-
12
ACCESSでフィールド名の変更(VBA)
Access(アクセス)
-
13
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
14
ACCESSのフォームで次のレコードに移動しない方法を教えてください
その他(データベース)
-
15
アクセス:クエリの結合とリレーションシップの違いについて
Access(アクセス)
-
16
アクセスで入力したデータの順番が変わってしまいます
その他(ビジネス・キャリア)
-
17
アクセスのフォームで、文字を中央揃えにしたい
Access(アクセス)
-
18
ACCESS VBAでインポート定義の場所
Access(アクセス)
-
19
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
20
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSにEXCELからインポートし...
-
Access2010でVBAでのインポート
-
Access(アクセス)でのインポー...
-
ACCESS、フィールドが異なるデ...
-
アクセス2000 65536行を超える...
-
差込印刷での全角表示について...
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
アクセスのエラー「クエリには...
-
エクセルにおける「フィールド...
-
2つのテーブルに共通するレコ...
-
ACCESSのデータに自動で半角ス...
-
ACCESS 「パラメータの入力」...
-
access テーブル作成クエリでテ...
-
クエリ上でフィールド名が2つ...
-
デザインビューにてテーブルが...
-
フォーム データシートビューで...
-
アクセス:クエリの結合とリレ...
-
クエリの結果が文字化け(Access...
-
ACCESS テーブルを見比...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSにEXCELからインポートし...
-
Access フォームからの入力結...
-
Access2010でVBAでのインポート
-
アクセス2003 複数の列に...
-
ACCESS、フィールドが異なるデ...
-
Access(アクセス)でのインポー...
-
アクセスでの、固定長でのテキ...
-
リンクされたテーブルのレコー...
-
マイクロソフトアクセスのイン...
-
Access2002でExcel2002のデータ...
-
Excelで入力したデータをAccess...
-
ACCESS ユニオンクエリ...
-
Access2016でフォーム内にExcel...
-
ACCESSのテーブルからデータを...
-
Access テーブルをデータシー...
-
Excelからaccessに入出庫管理を...
-
アクセス2010にエクセルデータ...
-
accessのデータを検索するツー...
-
アクセス 日付を項目追加して取込
-
エクセルデータを使ってアクセ...
おすすめ情報