Adam McReynolds
Registered User.
- Local time
- Yesterday, 21:36
- Joined
- Aug 6, 2012
- Messages
- 129
I have this code that is giving me a compile error for procedure too large. Any suggestions on how I can keep the functionality but reduce the code? I already changed many If statements to case statements under the suggestion that they are more efficient. Here is just one set of code of 10 in the procedure. The entire code is too large to post:
Code:
'###############################
'FIELD 1
'###############################
'Main condition to insert and update
Select Case Me.txt_prikey1
Case Is = Not IsNull(Me.txt_prikey1)
'*********************************
'Field 1 If Transfer and Hold(If ID in field then Insert to two Tables and Update one)
'*********************************
Select Case Me.txt_to_techid1
Case Is = Not IsNull(Me.txt_prikey1)
'Case for how to save status and transfer tech to release hold back later
Select Case Me.txt_current_status1
Case Is = "In Rework"
'SQL INSERT - Transfer Log Table(TBL_TRANSFER_LOG)
DoCmd.SetWarnings False
strSQLInsertTransfer = "INSERT INTO TBL_TRANSFER_LOG ([prikey], [FromTechID], [FromTechName], " & _
" [ToTechID], [ToTechName], [OriginalTimeIn], [TransferTime], " & _
"[TransferRepairStatus], [TransferType], [ModuleType] , [ModulePartNumber] , [ModuleManufacturer], [ModuleBarcode], [ModuleSerialNumber] , [ModuleRMA])VALUES ('" & Nz(Me.txt_prikey1) & "','" & _
Nz(Me.txt_techid_hold) & "', '" & Nz(Me.txt_from_tech_name1) & "', '" & Nz(Me.txt_to_techid1) & "', '" & _
Nz(Me.txt_to_tech_name1) & "', '" & Nz(Me.txt_original_time_in1) & "', '" & _
Nz(Now) & "', '" & Nz(Me.txt_current_status1) & "','Hold Transfer', '" & Nz(Me.txt_mod_type1) & "', '" & Nz(Me.txt_part_num1) & "', '" & Nz(Me.txt_mfg1) & "', '" & Nz(Me.txt_bc1) & "', '" & _
Nz(Me.txt_sn1) & "' , '" & Nz(Me.txt_rma1) & "');"
Debug.Print strSQLInsertTransfer
DoCmd.RunSQL strSQLInsertTransfer
DoCmd.SetWarnings True
'SQL INSERT - Hold Log Table(TBL_RF_HOLD_LOG)
DoCmd.SetWarnings False
strSQLInsertHold = "INSERT INTO TBL_RF_HOLD_LOG ([prikey], [Barcode], [SerialNumber], " & _
" [EndUser], [HoldTechId], [HoldTechName], [RepairStatusTimeOfHold], " & _
"[TimeOfHold], [HoldNotes], [Transfer] , [NewTechId] , [NewTechName])VALUES ('" & Nz(Me.txt_prikey1) & "','" & _
Nz(Me.txt_bc1) & "', '" & Nz(Me.txt_sn1) & "', '" & Nz(Me.txt_end_user1) & "', '" & _
Nz(Me.txt_techid_hold) & "', '" & Nz(Me.txt_from_tech_name1) & "', '" & _
Nz(Me.txt_current_status1) & "', '" & Nz(Now) & "','" & Nz(Me.txt_hold_notes1) & "', 'Yes', '" & Nz(Me.txt_to_techid1) & "','" & _
Nz(Me.txt_to_tech_name1) & "');"
Debug.Print strSQLInsertHold
DoCmd.RunSQL strSQLInsertHold
DoCmd.SetWarnings True
'SQL UPDATE - Module Repairs table(affect RepairStatus and TechID for transfer. Stage in cycle depends on which tech to change)
'This part of code is reason for case embedded into
DoCmd.SetWarnings False
SQLtextUpdateStatusHold = "update tbl_module_repairs set RepairStatus = 'On Hold' where prikey = " & Me.txt_prikey1.Value & ""
SQLtextReworkTechNew = "update tbl_module_repairs set ReworkTech = '" & Me.txt_to_techid1 & "' where prikey = " & Me.txt_prikey1.Value & ""
SQLtextReworkTimeInNew = "update tbl_module_repairs set ReworkTimeIn = Now where prikey = " & Me.txt_prikey1.Value & ""
Debug.Print SQLtextUpdateStatusHold
DoCmd.RunSQL SQLtextUpdateStatusHold
DoCmd.RunSQL SQLtextReworkTechNew
DoCmd.RunSQL SQLtextReworkTimeInNew
DoCmd.SetWarnings True
Case Is = "In Repair"
'SQL INSERT - Transfer Log Table(TBL_TRANSFER_LOG)
DoCmd.SetWarnings False
strSQLInsertTransfer = "INSERT INTO TBL_TRANSFER_LOG ([prikey], [FromTechID], [FromTechName], " & _
" [ToTechID], [ToTechName], [OriginalTimeIn], [TransferTime], " & _
"[TransferRepairStatus], [TransferType], [ModuleType] , [ModulePartNumber] , [ModuleManufacturer], [ModuleBarcode], [ModuleSerialNumber] , [ModuleRMA])VALUES ('" & Nz(Me.txt_prikey1) & "','" & _
Nz(Me.txt_techid_hold) & "', '" & Nz(Me.txt_from_tech_name1) & "', '" & Nz(Me.txt_to_techid1) & "', '" & _
Nz(Me.txt_to_tech_name1) & "', '" & Nz(Me.txt_original_time_in1) & "', '" & _
Nz(Now) & "', '" & Nz(Me.txt_current_status1) & "','Hold Transfer', '" & Nz(Me.txt_mod_type1) & "', '" & Nz(Me.txt_part_num1) & "', '" & Nz(Me.txt_mfg1) & "', '" & Nz(Me.txt_bc1) & "', '" & _
Nz(Me.txt_sn1) & "' , '" & Nz(Me.txt_rma1) & "');"
Debug.Print strSQLInsertTransfer
DoCmd.RunSQL strSQLInsertTransfer
DoCmd.SetWarnings True
'SQL INSERT - Hold Log Table(TBL_RF_HOLD_LOG)
DoCmd.SetWarnings False
strSQLInsertHold = "INSERT INTO TBL_RF_HOLD_LOG ([prikey], [Barcode], [SerialNumber], " & _
" [EndUser], [HoldTechId], [HoldTechName], [RepairStatusTimeOfHold], " & _
"[TimeOfHold], [HoldNotes], [Transfer] , [NewTechId] , [NewTechName])VALUES ('" & Nz(Me.txt_prikey1) & "','" & _
Nz(Me.txt_bc1) & "', '" & Nz(Me.txt_sn1) & "', '" & Nz(Me.txt_end_user1) & "', '" & _
Nz(Me.txt_techid_hold) & "', '" & Nz(Me.txt_from_tech_name1) & "', '" & _
Nz(Me.txt_current_status1) & "', '" & Nz(Now) & "','" & Nz(Me.txt_hold_notes1) & "', 'Yes', '" & Nz(Me.txt_to_techid1) & "','" & _
Nz(Me.txt_to_tech_name1) & "');"
Debug.Print strSQLInsertHold
DoCmd.RunSQL strSQLInsertHold
DoCmd.SetWarnings True
'SQL UPDATE - Module Repairs table(affect RepairStatus and TechID for transfer. Stage in cycle depends on which tech to change)
'This part of code is reason for case embedded into
DoCmd.SetWarnings False
SQLtextUpdateStatusHold = "update tbl_module_repairs set RepairStatus = 'On Hold' where prikey = " & Me.txt_prikey1.Value & ""
SQLtextRepairTechNew = "update tbl_module_repairs set RepairTech = '" & Me.txt_to_techid1 & "' where prikey = " & Me.txt_prikey1.Value & ""
SQLtextRepairTimeInNew = "update tbl_module_repairs set RepairTimeIn = Now where prikey = " & Me.txt_prikey1.Value & ""
Debug.Print SQLtextUpdateStatusHold
DoCmd.RunSQL SQLtextUpdateStatusHold
DoCmd.RunSQL SQLtextRepairTechNew
DoCmd.RunSQL SQLtextRepairTimeInNew
DoCmd.SetWarnings True
Case Is = "In QC"
'SQL INSERT - Transfer Log Table(TBL_TRANSFER_LOG)
DoCmd.SetWarnings False
strSQLInsertTransfer = "INSERT INTO TBL_TRANSFER_LOG ([prikey], [FromTechID], [FromTechName], " & _
" [ToTechID], [ToTechName], [OriginalTimeIn], [TransferTime], " & _
"[TransferRepairStatus], [TransferType], [ModuleType] , [ModulePartNumber] , [ModuleManufacturer], [ModuleBarcode], [ModuleSerialNumber] , [ModuleRMA])VALUES ('" & Nz(Me.txt_prikey1) & "','" & _
Nz(Me.txt_techid_hold) & "', '" & Nz(Me.txt_from_tech_name1) & "', '" & Nz(Me.txt_to_techid1) & "', '" & _
Nz(Me.txt_to_tech_name1) & "', '" & Nz(Me.txt_original_time_in1) & "', '" & _
Nz(Now) & "', '" & Nz(Me.txt_current_status1) & "','Hold Transfer', '" & Nz(Me.txt_mod_type1) & "', '" & Nz(Me.txt_part_num1) & "', '" & Nz(Me.txt_mfg1) & "', '" & Nz(Me.txt_bc1) & "', '" & _
Nz(Me.txt_sn1) & "' , '" & Nz(Me.txt_rma1) & "');"
Debug.Print strSQLInsertTransfer
DoCmd.RunSQL strSQLInsertTransfer
DoCmd.SetWarnings True
'SQL INSERT - Hold Log Table(TBL_RF_HOLD_LOG)
DoCmd.SetWarnings False
strSQLInsertHold = "INSERT INTO TBL_RF_HOLD_LOG ([prikey], [Barcode], [SerialNumber], " & _
" [EndUser], [HoldTechId], [HoldTechName], [RepairStatusTimeOfHold], " & _
"[TimeOfHold], [HoldNotes], [Transfer] , [NewTechId] , [NewTechName])VALUES ('" & Nz(Me.txt_prikey1) & "','" & _
Nz(Me.txt_bc1) & "', '" & Nz(Me.txt_sn1) & "', '" & Nz(Me.txt_end_user1) & "', '" & _
Nz(Me.txt_techid_hold) & "', '" & Nz(Me.txt_from_tech_name1) & "', '" & _
Nz(Me.txt_current_status1) & "', '" & Nz(Now) & "','" & Nz(Me.txt_hold_notes1) & "', 'Yes', '" & Nz(Me.txt_to_techid1) & "','" & _
Nz(Me.txt_to_tech_name1) & "');"
Debug.Print strSQLInsertHold
DoCmd.RunSQL strSQLInsertHold
DoCmd.SetWarnings True
'SQL UPDATE - Module Repairs table(affect RepairStatus and TechID for transfer. Stage in cycle depends on which tech to change)
'This part of code is reason for case embedded into
DoCmd.SetWarnings False
SQLtextUpdateStatusHold = "update tbl_module_repairs set RepairStatus = 'On Hold' where prikey = " & Me.txt_prikey1.Value & ""
SQLtextQC_TechNew = "update tbl_module_repairs set QC_Tech = '" & Me.txt_to_techid1 & "' where prikey = " & Me.txt_prikey1.Value & ""
SQLtextQC_TimeInNew = "update tbl_module_repairs set QC_TimeIn = Now where prikey = " & Me.txt_prikey1.Value & ""
Debug.Print SQLtextUpdateStatusHold
DoCmd.RunSQL SQLtextUpdateStatusHold
DoCmd.RunSQL SQLtextQC_TechNew
DoCmd.RunSQL SQLtextQC_TimeInNew
DoCmd.SetWarnings True
Case Else
MsgBox "MAJOR ERROR!!! IF YOU ARE READING THIS YOU HAVE CAUSED A MAJOR ERROR. REPORT ASAP!", , "MAJOR ERROR!!!!!"
End Select
Case Else
'*********************************
'Field 1 Hold Only(No Transfer)(No ID in field Then Insert to one Table and Update one. No need for case as all should be same.)
'Completed units restricted at barcode after update event
'*********************************
'SQL INSERT - Hold Log Table(TBL_RF_HOLD_LOG)
DoCmd.SetWarnings False
strSQLInsertHold = "INSERT INTO TBL_RF_HOLD_LOG ([prikey], [Barcode], [SerialNumber], " & _
" [EndUser], [HoldTechId], [HoldTechName], [RepairStatusTimeOfHold], " & _
"[TimeOfHold], [HoldNotes])VALUES ('" & Nz(Me.txt_prikey1) & "','" & _
Nz(Me.txt_bc1) & "', '" & Nz(Me.txt_sn1) & "', '" & Nz(Me.txt_end_user1) & "', '" & _
Nz(Me.txt_techid_hold) & "', '" & Nz(Me.txt_from_tech_name1) & "', '" & _
Nz(Me.txt_current_status1) & "', '" & Nz(Now) & "','" & Nz(Me.txt_hold_notes1) & "');"
Debug.Print strSQLInsertHold
DoCmd.RunSQL strSQLInsertHold
DoCmd.SetWarnings True
'SQL UPDATE - Module Repairs table(affect RepairStatus and TechID for transfer. Stage in cycle depends on which tech to change)
'This part of code is reason for case embedded into
DoCmd.SetWarnings False
SQLtextUpdateStatusHold = "update tbl_module_repairs set RepairStatus = 'On Hold' where prikey = " & Me.txt_prikey1.Value & ""
Debug.Print SQLtextUpdateStatusHold
DoCmd.RunSQL SQLtextUpdateStatusHold
DoCmd.SetWarnings True
End Select
If Not IsNull(Me.txt_ber1) Then
DoCmd.SetWarnings False
SQLtextBER = "update tbl_module_repairs set incoming_disposition = '" & Me.txt_ber1 & "' where prikey = " & Me.txt_prikey1.Value & ""
SQLtextBERCompleted = "update tbl_module_repairs set RepairStatus = 'Completed' where prikey = " & Me.txt_prikey1.Value & ""
Debug.Print SQLtextBER
DoCmd.RunSQL SQLtextBER
DoCmd.RunSQL SQLtextBERCompleted
DoCmd.SetWarnings True
End If
If Not IsNull(Me.txt_warr_status1) Then
DoCmd.SetWarnings False
SQLtextWarrStatus = "update tbl_module_repairs set WarrantyStatusFlag = '" & Me.txt_warr_status1 & "' where prikey = " & Me.txt_prikey1.Value & ""
Debug.Print SQLtextWarrStatus
DoCmd.RunSQL SQLtextWarrStatus
DoCmd.SetWarnings True
End If
If Not IsNull(Me.txt_estimate_flag1) Then
DoCmd.SetWarnings False
SQLtextEstFlag = "update tbl_module_repairs set EstimateFlag = '" & Me.txt_estimate_flag1 & "' where prikey = " & Me.txt_prikey1.Value & ""
Debug.Print SQLtextEstFlag
DoCmd.RunSQL SQLtextEstFlag
DoCmd.SetWarnings True
End If
End Select