1
첫 번째 Access 응용 프로그램에서 작업 중이며 Oracle 데이터베이스에 Access 데이터베이스의 레코드를 삽입하려고 할 때 문제가 있습니다. .ODBC 연결을 통해 Oracle 데이터베이스에 레코드를 삽입 할 때 런타임 오류 '3146'
첫 번째 레코드는 오류없이 삽입되지만 두 번째 레코드는 "런타임 오류 '3146'오류 메시지가 발생합니다.
아이디어가 있으십니까?
Private Sub Command42_Click()
Dim dbMyDatabase As DAO.Database
Dim rsMyRecords As DAO.Recordset
Dim qdMyParameters As DAO.QueryDef
Dim qODBC As DAO.QueryDef
Dim sql As String
Dim sqODBC As String
Dim sConnectDAO As String
Dim sVariable As String
Dim qdfTimeTrack As DAO.QueryDef
Dim qdfLocal As DAO.QueryDef
Dim sWorkDate As String
Dim sHours As String
Dim sCreateDate As String
Dim sCreateUserId As String
Dim sWmDbId As String
Dim sCsubDbId As String
Dim sComments As String
Set dbMyDatabase = CurrentDb
Set qdfTimeTrack = CurrentDb.QueryDefs("QADB-INSERT")
sConnectDAO = "ODBC;DSN=QADB;DBQ=QADB ;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;"
qdfTimeTrack.Connect = sConnectDAO
qdfTimeTrack.sql = "set role all;"
qdfTimeTrack.Execute
Set qdfLocal = dbMyDatabase.QueryDefs("UpdateLocal")
Set qdMyParameters = dbMyDatabase.QueryDefs("TimeRecordsForExport")
Set rsMyRecords = qdMyParameters.OpenRecordset()
Do While Not rsMyRecords.EOF
sql = "INSERT INTO DAILY_JOB_ACTIVITIES (DB_ID, PER_PER_DB_ID, CNUM_DB_ID, WORK_DATE, HOURS, CREATE_DATE, CREATE_USER_ID, WM_DB_ID, CSUB_DB_ID, COMMENTS) " + _
" values " + _
" (" + _
" NIMS.DJA_SQ.NEXTVAL " + _
" , 600178038 " + _
" , '" & rsMyRecords(2).Value & "'" + _
" , nvl(to_date('" & rsMyRecords(3).Value & "', 'MM/DD/RRRR HH12:MI:SS PM'), SYSDATE)" + _
" , '" & rsMyRecords(4).Value & "'" + _
" , nvl(to_date('" & rsMyRecords(5).Value & "', 'MM/DD/RRRR HH12:MI:SS PM'), SYSDATE)" + _
" , '" & rsMyRecords(6).Value & "'" + _
" , '" & rsMyRecords(7).Value & "'" + _
" , '" & rsMyRecords(8).Value & "'" + _
" , '" & rsMyRecords(9).Value & "'" + _
"); "
MsgBox sql
qdfTimeTrack.sql = sql
' Update QADB
qdfTimeTrack.Execute
' qdfLocal.sql = "update TimeTrack set EXPORTED_FLAG = '1' where DB_ID = " & rsMyRecords(0).Value
' qdfLocal.Execute
rsMyRecords.MoveNext
Loop
MsgBox "Records exported. Remember to update refresh the internal database!"
End Sub
P.
아직 오류 처리 기능이 없다는 것을 알고 있습니다. VBA에서 어떻게 작동하는지 이해하면 추가 할 것입니다. 이에 대한 의견이 있으시면 게시 해주십시오.
감사합니다. 그것은 FOREIGN KEY 제약 조건으로 판명되었습니다. :-) –