Access2000にエクセルデータを取り込み
お世話になります。
Access2000のVBAを使用して
エクセルにデータを取り込みたいと
思っています。
現在は、下記の(1)のソースで、エクセルのデータを
Access2000に取り込んでいます。
しかしながら、「取り込み開始」の箇所を
>あと、アクセスのインサートはSQL一発のほうが早いと思う。
>http://www.1keydata.com/jp/sql/sql-insert-into.php
というアドバイスを頂きました。
しかしながら、私の知識がまったくなく、どのように
コーディングしていいのかわからない状態です。
そこで、お手数でもうしわけございませんが、
下記の(1)のソースをSQLで使用した場合のコードを
教えて頂けないでしょうか?
私が馬鹿のため、ソースコードで頂きたいので、
ソースコードがわからないかたは、回答頂かなくて
結構ですのでよろしくおねがいいたします。
------------ソース(1)----------------
Set oApp = CreateObject("Excel.Application")
oApp.Workbooks.Open FileName:=CurrentProject.Path & "\メイン.xlsm"
---------------取り込み開始-------------
rs2.Open "選手", CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic
iRow = 2
sheet = "program"
rs.Open "選手情報_選手ID", CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic
iRow = 2 ' ★
sheet = "program"
While (oApp.Sheets(sheet).cells(iRow, 1) <> "")
rs.Filter = "日=" & oApp.Sheets(sheet).cells(iRow, 2)
rs.Filter = rs.Filter & " and 場=" & oApp.Sheets(sheet).cells(iRow, 1)
rs.Filter = rs.Filter & " and 番号=" & oApp.Sheets(sheet).cells(iRow, 3)
If (rs.EOF) Then
rs.AddNew
rs("日") = oApp.Sheets(sheet).cells(iRow, 2)
rs("場") = oApp.Sheets(sheet).cells(iRow, 1)
rs("番号") = oApp.Sheets(sheet).cells(iRow, 3)
End If
rs("1番") = oApp.Sheets(sheet).cells(iRow, 5)
rs("2番") = oApp.Sheets(sheet).cells(iRow, 5 + 26)
rs("3番") = oApp.Sheets(sheet).cells(iRow, 5 + 26 + 26)
rs("4番") = oApp.Sheets(sheet).cells(iRow, 5 + 26 + 26 + 26)
rs("5番") = oApp.Sheets(sheet).cells(iRow, 5 + 26 + 26 + 26 + 26)
rs("6番") = oApp.Sheets(sheet).cells(iRow, 5 + 26 + 26 + 26 + 26 + 26)
rs.Update
iRow = iRow + 1
Wend
rs.Close
---------------取り込み終了-------------
---------------取り込み開始-------------
rs.Open "選手情報_選手名", CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic
iRow = 2 ' ★
sheet = "program"
While (oApp.Sheets(sheet).cells(iRow, 1) <> "")
rs.Filter = "日=" & oApp.Sheets(sheet).cells(iRow, 2)
rs.Filter = rs.Filter & " and 場=" & oApp.Sheets(sheet).cells(iRow, 1)
rs.Filter = rs.Filter & " and 番号=" & oApp.Sheets(sheet).cells(iRow, 3)
If (rs.EOF) Then
rs.AddNew
rs("日") = oApp.Sheets(sheet).cells(iRow, 2)
rs("場") = oApp.Sheets(sheet).cells(iRow, 1)
rs("番号") = oApp.Sheets(sheet).cells(iRow, 3)
End If
rs("1番") = oApp.Sheets(sheet).cells(iRow, 1 + 5)
rs("2番") = oApp.Sheets(sheet).cells(iRow, 1 + 5 + 26)
rs("3番") = oApp.Sheets(sheet).cells(iRow, 1 + 5 + 26 + 26)
rs("4番") = oApp.Sheets(sheet).cells(iRow, 1 + 5 + 26 + 26 + 26)
rs("5番") = oApp.Sheets(sheet).cells(iRow, 1 + 5 + 26 + 26 + 26 + 26)
rs("6番") = oApp.Sheets(sheet).cells(iRow, 1 + 5 + 26 + 26 + 26 + 26 + 26)
rs.Update
iRow = iRow + 1
Wend
rs.Close
---------------取り込み終了-------------
お礼
11zepさん、こんにちは。 ありがとうございます。 oApp.を追加したらうまく動作しました。 Excelの癖でいきなり Cells・・・・としてしまいました。