![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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(のような)振る方法
その他(データベース)
-
Excel→Accessテーブル インポート後の主キーについて
Access(アクセス)
-
-
4
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
5
親フォームからサブフォームのレコードソースを設定
Access(アクセス)
-
6
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
7
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
8
ACCESSのSQLで、NULLかNULLでないかの判定
その他(データベース)
-
9
Accessのフィールド数が255しかない=業務では使えない?
PowerPoint(パワーポイント)
-
10
ACCESS 一番最新の日付の金額を出したいのですが・・
その他(データベース)
-
11
「#エラー」の回避
Access(アクセス)
-
12
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
13
【Access】Excelインポート時にエラー
Excel(エクセル)
-
14
アクセスvbaでエクセルブックを保存
その他(Microsoft Office)
-
15
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
16
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
17
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
18
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
19
On ErrorでエラーNoが0
Visual Basic(VBA)
-
20
アクセスで入力したデータの順番が変わってしまいます
その他(ビジネス・キャリア)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS ユニオンクエリ...
-
Access2002でExcel2002のデータ...
-
Excelで入力したデータをAccess...
-
Access フォームからの入力結...
-
エクセルデータを使ってアクセ...
-
Access2010でVBAでのインポート
-
エクセルからアクセスへデータ転送
-
日付型のフィールドに空白を入...
-
差込印刷での全角表示について...
-
アクセスのエラー「クエリには...
-
SQL文で パラメータが少なすぎ...
-
BCPでCSV内の文字列をテーブル...
-
ACCESSで2つフィールドの日付...
-
アクセスで追加した項目に全て...
-
フィールドの更新がない
-
エクセルにおける「フィールド...
-
ACCESSでテーブルにあるチェッ...
-
Accessの桁区切りについ...
-
ACCESS クエリの抽出条件に他の...
-
Accessのテーブルのフィールド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSにEXCELからインポートし...
-
ACCESS、フィールドが異なるデ...
-
Access フォームからの入力結...
-
Access2010でVBAでのインポート
-
Access(アクセス)でのインポー...
-
アクセスの容量がなぜか増加します
-
アクセス2003 複数の列に...
-
Access2016でフォーム内にExcel...
-
access 2003 1万件以上がカット...
-
ACCESS ユニオンクエリ...
-
Excelで入力したデータをAccess...
-
リンクされたテーブルのレコー...
-
accessのデータで重複している...
-
accessのデータを検索するツー...
-
Access2002でExcel2002のデータ...
-
ACCESSのテーブルからデータを...
-
アクセス2010にエクセルデータ...
-
エクセルからアクセスへデータ転送
-
アクセスでの、固定長でのテキ...
-
エクセルからアクセスへ貼り付...
おすすめ情報