• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセスへの自動インポート)

自動インポートでエクセルデータをアクセスへ簡単に移行する方法と参考図書

このQ&Aのポイント
  • エクセルデータをアクセスへ簡単にインポートするための自動化方法を解説します。
  • ファイル数が多い場合でも、決まったフォルダにファイルを入れるだけで作業ができるようになります。
  • また、参考図書を紹介するのでアクセス初心者の方でも理解しやすくなっています。

質問者が選んだベストアンサー

  • ベストアンサー
  • miya_777
  • ベストアンサー率31% (44/140)
回答No.3

補足に対する回答です。 > データ型はそろえたのですがテーブルでは主キーでオートナンバー型の > フィールドを先頭に入れています。 > これはファイルにはないので削除したほうがいいのですか? 削除してください。フィールド数が一致しないと良くないです。 一度テーブルが無い状態で試してください。 インポートですのでテーブルが新規で作成されるはずです。 ちなみに TransferSpreadsheet メソッドのパラメータでTrueとしているのは、 先頭行を項目名として扱うという意味です。 インポートすると、項目名が自動設定されます。 その後、型が会わない各種データを調整してください。 また、インポート時は、NULL値があったりすると正確にインポートできない場合がありますので気をつけてください。 そういう場合は、先頭20行程度、ダミーデータを予めExcelのシートに突っ込んでおく必要があります。

taku0311
質問者

お礼

度々すみませんでした 何とかうまくいきそうです。 ありがとうございました。

その他の回答 (2)

  • KIMV
  • ベストアンサー率15% (82/544)
回答No.2

テキスト変換 で、区切り記号付きインポート      ・      ・ ファイル名はドライブから指定すれば出来ます。 上記を選択すればできると思います。 ダイアログボックスを使いたい場合は、モジュール等も使用するようになるので 面倒ですが・・・

taku0311
質問者

お礼

ありがとうございました <ファイル名はドライブから・・ うまく読み込みにいっているようです それ以外がまだうまくいきませんが・・ がんばります

  • miya_777
  • ベストアンサー率31% (44/140)
回答No.1

Docmd.TransferSpreadsheet acImport,,"設定したいテーブル名","フルパスのExcleファイル名",True,"シート名!範囲" と、こんな感じです。 上記で !範囲 を省略すれば、全範囲です。 TransferSpreadsheetメソッドの詳細は、Access VB Editorで ヘルプを参照して見て下さい。

taku0311
質問者

お礼

ありがとうございました。 アクセスは難しいですね 根気よくがんばってみます。

taku0311
質問者

補足

miya777さん 早速ありがとうございます。 試したみたのですが、下記のようなマクロでよろしいでしょうか 実行すると「外部テーブルのフォーマットが正しくありません。」 のエラーが表示されてしまいます。 データ型はそろえたのですがテーブルでは主キーでオートナンバー型の フィールドを先頭に入れています。 これはファイルにはないので削除したほうがいいのですか? それとも下記がまったく違うのでしょうか? お手数をおかけしますが教えてください。 Private Sub コマンド1_Click() On Error GoTo Err_コマンド1_Click Dim stDocName As String stDocName = "マクロ1" DoCmd.TransferSpreadsheet acImport, , "head", "head.csv", True, "head!" Exit_コマンド1_Click: Exit Sub Err_コマンド1_Click: MsgBox Err.Description Resume Exit_コマンド1_Click End Sub