Asked by:
Runtime Error 3420 on a Database

Question
-
Hi Everyone,
I work as a Access Developer, I'm trying to figure out the runtime error 3420, it comes everytime I open the database.
Public Function ProcessEventEndCheckAll(ProcessedInv As Boolean, ProcessEventEndDt As Boolean, EventID As Integer, EventEndDt As Date, DeliveryDt As Date)
The following code is on 'Auto Ex' process.
Dim db As DAO.Database
Dim currDate As Date
Dim Id As Integer
Dim RS As DAO.Recordset
Dim rs2 As DAO.Recordset
DoCmd.SetWarnings False
Set db = CurrentDb
Id = [EventID]
currDate = Date
Set rs2 = Form_frmMainEvents.Recordset
rs2.MoveFirst
Do While Not rs2.EOF
Id = rs2!EventID
ProcessedInv = rs2!ProcessedInv
ProcessEventEndDt = rs2!ProcessEventEndDt
EventEndDt = rs2!EventEndDt
' MsgBox "INner Loop" & EventEndDt & currDate & Id, vbInformation
'if the event is over but the inventory is not put back, the loop in run
If (DateDiff("d", EventEndDt, currDate) > 0) And ProcessedInv = True And ProcessEventEndDt = False Then
' MsgBox "INnermost Loop" & EventEndDt & currDate & Id, vbInformation
cntr = 0
Set RS = Form_frmMainEvents.SubformEventDetails.Form.Recordset
RS.MoveFirst
Do While Not RS.EOF
' MsgBox "INnermost Loop" & EventEndDt & currDate & Id, vbInformation
Q1 = Form_frmMainEvents![SubformEventDetails].Form![quantity]
colName1 = Form_frmMainEvents![SubformEventDetails].Form![Item_Name]
Lcntr = DateDiff("d", rs2!DeliveryDt, rs2!EventEndDt) + 1
For cntr = 0 To Lcntr - 1
invDate = DateAdd("d", cntr, rs2!DeliveryDt)
CurrentDb.Execute " Update Tbl_InvDetails set [" & colName1 & "] = [" & colName1 & "] + " & Q1 & " where Tbl_InvDetails.InvDate = #" & invDate & "# ", dbFailOnError
Next
RS.MoveNext
Loop
'Update flag after inventory updates
' The above if condition checks if an event is over. Once the event is over, we need to give it green color.
' This also requires the flags to be udpated. For this database, we use the below combination to indicate an event is over
' ProcessedInv = False and ProcessEventEndDt = False
CurrentDb.Execute " Update Events set ProcessEventEndDt = False where Events.EventID = " & Id & " ", dbFailOnError
CurrentDb.Execute " Update Events set ProcessedInv = False where Events.EventID = " & Id & " ", dbFailOnError
End If
rs2.MoveNext
Loop
DoCmd.SetWarnings True
DoCmd.OpenForm "frmHiddenForm", , , , , acHidden
End FunctionMonday, April 16, 2018 6:09 PM
All replies
-
Have you stepped through each line to determine which one is causing the error? It would be helpful to know.
Monday, April 16, 2018 6:24 PM -
Hi,
What is the error message for 3420?
Monday, April 16, 2018 6:44 PM -
Hello Rhituraj,
As Lawrence Ellefson said, I would suggest you debug the code line by line to check which line caused the error.
Besides, For the convenience of reproducing your issue, I would also suggest you share a simply database file. Please remember to remove any sensitive information from the database.
For sharing file, you could share the file via Cloud Storage, such as One Drive, and then put link address here. Thanks for understanding.
Best Regards,
Terry
MSDN Community Support
Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.Tuesday, April 17, 2018 7:15 AM -
Hi,
What is the error message for 3420?
?error(3420)
Application-defined or object-defined errorPaul ~~~~ Microsoft MVP (Visual Basic)
Tuesday, April 17, 2018 12:00 PM -
It's probably going to be:
Set rs2 = Form_frmMainEvents.Recordset
I don't know if a form can be defined as a recordset. I doubt it.
Tuesday, April 17, 2018 1:20 PM -
Hi,
What is the error message for 3420?
?error(3420)
Application-defined or object-defined error
Paul ~~~~ Microsoft MVP (Visual Basic)
Hi Paul,
Thanks. Which line gets highlighted when you go to Debug mode?
Tuesday, April 17, 2018 2:48 PM