私はこのフォーラムを初めて利用しています。私は参照用に使用しているコードを添付します。これはいつも私のために働いています。Excel VBAでレコードをAccessテーブルに転送する
ExcelからAccessテーブルにデータを転送するのにExcel vbaを使用しています。何らかの理由で、コードが "rs"まで完全に実行されているように見えますが、値の追加をスキップしてrs.Closeに直接行きます。私には、私には奇妙なエラーメッセージもありません。コードのサンプルが含まれています。
誰かがいくつかの提案をいただければ、私は大いに感謝しています!
Dim db As Database, rs As Recordset, r As Long
'ESTABLISH DATABASE AND TABLE LOCATION - PRODUCTION
'Prod environment location
'Set db = OpenDatabase("C:\!PITF Docs\Forecasting and Planning\Collection\PITF_Collection.accdb")
' open the database
Set db = OpenDatabase("C:\!PITF Docs\Forecasting and Planning\Collection\PITF_Collection.accdb")
Set rs = db.OpenRecordset("Upload_InternalLabor", dbOpenTable)
' get all records in a table
r = 2 ' the start row in the worksheet
Do While Abs(Range("HZ" & r)) > 0
' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("Class") = Range("DO" & r).Value
.Fields("New_Hire") = Range("DP" & r).Value
.Fields("Name") = Range("DQ" & r).Value
.Fields("Role") = Range("DR" & r).Value
.Fields("Expense_Driver") = Range("DS" & r).Value
.Fields("Comments") = Range("DT" & r).Value
.Fields("Salary") = Range("DU" & r).Value
.Fields("Hire_Date") = Range("DV" & r).Value
.Fields("42741") = Range("DW" & r).Value
.Fields("42755") = Range("DX" & r).Value
.Fields("42769") = Range("DY" & r).Value
.Fields("42783") = Range("DZ" & r).Value
.Fields("Submitter") = Range("HW" & r).Value
.Fields("Timestamp") = Range("HX" & r).Value
.Fields("Total") = Range("HY" & r).Value
.Fields("Abs") = Range("HZ" & r).Value
' add more fields if necessary...
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
ループがループしていないと思われます。 'With rs'(ブレークポイントをクリックしてF9を押します)にブレークポイントを投げて、プロシージャを実行して、そのラインでブレークするかどうかを確認できますか?そうでなければ、あなたのループ状態が異常終了しています。Abs(Range( "HZ2"))> 0' – JNevill
DAOを使用していますか?次に、 'Dim db as DAO.Database'を' rs'と同じように指定します。また、 'dbOpenTable'の代わりに' dbOpenDynaset'を試してください –
うーん...それは壊れるようには見えません...ただset rs = Nothingに続きます。 (私はF8を使ってそれを踏んだ)。どのように修正するための任意の提案?前にも触れましたが、私はこのコードをいくつかの他のワークシートに使用しましたが、問題は一度もありませんでした。ありがとうございます –