저는이 포럼을 처음 사용하고 있으며, 누군가가 나를 도와 줄 수 있기를 바라고 있습니다. 나는 참고 용으로 사용하고있는 코드를 첨부 할 것이고, 그런 식으로 항상 나를 위해 일했다.Excel VBA를 사용하여 레코드를 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 (범위 ("HZ2"))> 0' – JNevill
DAO를 사용하고 있습니까? 그렇다면 나는'Dim db as DAO.Database'를'rs'와 동일하게 지정할 것입니다. 또한,'dbOpenTable' 대신'dbOpenDynaset'을 시도하십시오 –
흠 ... 깨지지 않는 것 같습니다 ... 그냥 rs = Nothing으로 설정합니다. (나는 F8을 사용하여 그것을 밟았다.) 고칠 방법에 대한 제안? 이전에 언급했듯이이 코드를 여러 다른 워크 시트에 사용 했으므로 문제가 발생하지 않았습니다. 고맙습니다. –