ExcelからAccessにデータを取り込む方法

  • ガイド ( How to )
  • 閲覧数:715
  • ありがとう数:0

はじめに

Photo by BEAR
Access初心者、VBA初中級者です。 VBAで、ExcelからAccessにデータを取り込んでいます。 ですが、Excelの表はAccessのDBの型と一致していません。取り込む場合、特定の列のデータをAccessの特定のフィールドに取り込むことはできますか?

STEP1

rs.Open "テーブル名", CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic ここの部分は、ただ単にテーブルをオープンしたでけになります。

STEP2その後

rs.MoveNext 等で、処理対象のレコードに移動したりします。
rs.AddNew は、新規レコードを追加しますよ、っていうものになります

STEP3

rs("品番") = oApp.Cells(iRow, 1) >  rs("商品名") = oApp.Cells(iRow,
2)でフィールドに値を代入(設定)し、 > rs.Update で、登録しています。

STEP4

処理の流れで、rs.AddNew しないでフィールドに値を代入し rs.Update すると これは、更新、になります。(ADOの場合)
DAOの場合は、rs.Edit を記述し、これから更新しますよ、って指定します。 更新されるものは、現在参照できているレコードになります。

レコードセットを操作して、更新/削除/新規登録する場合は、 テーブルをオープンする際に、INSERT 等は指定する必要がありません。

STEP5

SQLを発行して完結するもの(INSERT,DELETE,UPDATEなど)は、 一般的にアクションクエリとか呼ばれています。(クエリでの話ですが) これらを実行する時には、レコードセットをオープンする操作ではなく Execute するもので実行します。 例えば "DELETE * FROM テーブルA" を実行する時には、ADOでは CurrentProject.Connection.Execute "DELETE * FROM テーブルA" とかにします。

まとめ

ちょっとややこしいですが、ご理解頂けましたでしょうか?

関連するタグ

特集


感謝指数をマイページで確認!

ピックアップ

ページ先頭へ