
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も見ています
-
Excel→Accessテーブル インポート後の主キーについて
Access(アクセス)
-
アクセスで入力したデータの順番が変わってしまいます
その他(ビジネス・キャリア)
-
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
-
4
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
5
ラベルとテキストボックスのグループ化を解除したい
Access(アクセス)
-
6
ACCESSのクエリー抽出条件にIIFを使用して
Access(アクセス)
-
7
Accessにインポートしたら並び順が変わっちゃった
Access(アクセス)
-
8
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
9
ACCESSのクエリで集計で、先頭・最後とは?
その他(データベース)
-
10
Accessのテーブルを開いたときに最後のレコードを表示させたい
Access(アクセス)
-
11
アクセスのクエリ 1文字以上を抽出
Access(アクセス)
-
12
アクセス VBAで列の入れ替え データシートビュー
その他(Microsoft Office)
-
13
列を移動させるvbaコードを教えてください。
Access(アクセス)
-
14
既存のテキストファイルを開く方法
Visual Basic(VBA)
-
15
Accessのコマンドボタンの立体化について
Access(アクセス)
-
16
Access2010 Enterで次テキストへ移動
その他(Microsoft Office)
-
17
Returnに対するGoSubがありません
Access(アクセス)
-
18
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
壊れてしまったアクセスデータ...
-
Access2000形式でのインポート...
-
エクセルで作成した、某列のデ...
-
アクセス2010にエクセルデータ...
-
テキストでは0が表示。アクセ...
-
ACCESSにEXCELからインポートし...
-
今あるデータベース(Access200...
-
accessのシステム開発。自動更...
-
accessのデータで重複している...
-
アクセスにオラクルのテーブル...
-
クエリのデータをテーブルに入...
-
アクセスのエラー「クエリには...
-
access IDの振り直しについて
-
アクセスで追加した項目に全て...
-
テキストボックスにクエリ結果...
-
差込印刷での全角表示について...
-
Access レポートについて
-
クロス集計クエリの結果をテー...
-
access インポート時、既にある...
-
クエリのヘルプの使い方 アク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSにEXCELからインポートし...
-
Access フォームからの入力結...
-
アクセスの容量がなぜか増加します
-
アクセス2010にエクセルデータ...
-
アクセス2003 複数の列に...
-
Access(アクセス)でのインポー...
-
テキストでは0が表示。アクセ...
-
Access2016でフォーム内にExcel...
-
ACCESS、フィールドが異なるデ...
-
アクセス 日付を項目追加して取込
-
Access2010でVBAでのインポート
-
access 2003 1万件以上がカット...
-
Access2010 コンボボックスで...
-
エクセルデータを使ってアクセ...
-
Excel 文字列データ から Acce...
-
Access テーブルをデータシー...
-
ACCESS ユニオンクエリ...
-
リンクされたテーブルのレコー...
-
accessのデータを検索するツー...
-
アクセスでの、固定長でのテキ...
おすすめ情報