My script that I have so far for finding a specific record and then populating a userform works fine (no errors)
However, when running the command to update the specific record, I run into some trouble... ("run-time error '1004'; application-defined or object-defined error")
Here is the code for locating a specific record:
A combobox is populated with a list from a named range that allows the user to select a specific document name:
(where my named range is "DocNames" and its location is on a worksheet named "List2". cboFN is the name of the combobox on the userform.)
then locates whatever document name was selected in the combox cboFN within column C over on the main worksheet:
(where "employee training matrix" is the main worksheet)
then populates the userform with the data from the specific record that was located:
so far up to here, everything works fine. the record selected was located, and the userfrom was populated with all the information retrieved from that record (on the worksheet "employee training matrix")
Its only after the user selects the cmdAdd button that it crashes:
Here is the error that I get and the highlighted code:
Thank you for any help and assistance offered.
However, when running the command to update the specific record, I run into some trouble... ("run-time error '1004'; application-defined or object-defined error")
Here is the code for locating a specific record:
A combobox is populated with a list from a named range that allows the user to select a specific document name:
(where my named range is "DocNames" and its location is on a worksheet named "List2". cboFN is the name of the combobox on the userform.)
Code:
Private Sub UserForm_Initialize()
Dim cNam As Range
Dim ws1 As Worksheet
Set ws1 = Worksheets("List2")
For Each cNam In ws1.Range("DocNames")
With Me.cboFN
.AddItem cNam.Value
End With
Next cNam
End Sub
then locates whatever document name was selected in the combox cboFN within column C over on the main worksheet:
(where "employee training matrix" is the main worksheet)
Code:
Private Sub cboFN_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim FoundCell As Range
Dim Search As String
Search = Me.cboFN.Value
Set FoundCell = Worksheets("Employee Training Matrix").Range("C:C").Find(Search, LookAt:=xlWhole, LookIn:=xlValues)
If Not FoundCell Is Nothing Then
GetRecord FoundCell.Row
Else
MsgBox Search & Chr(10) & "Document: ", 48, " Not Found "
Me.cboFN.Value = ""
Cancel = True
End If
Me.cmdAdd.Enabled = Not Cancel
End Sub
then populates the userform with the data from the specific record that was located:
Code:
Sub GetRecord(ByVal RecordRow As Long)
Dim ckTYPE As String
Dim ckDEPT As String
Dim ckPAR As String
Dim ckFAC As String
Dim wx As Worksheet
Set wx = Worksheets("Employee Training Matrix")
With Me
.txtRevDate.Value = wx.Cells(RecordRow, 5)
.txt24Mo.Value = wx.Cells(RecordRow, 4)
.txtProRe.Value = wx.Cells(RecordRow, 6)
On Error Resume Next
ckTYPE = wx.Cells(RecordRow, 2).Text
ckDEPT = wx.Cells(RecordRow, 1).Text
ckPAR = wx.Cells(RecordRow, 8).Text
ckFAC = wx.Cells(RecordRow, 7).Text
'-"DOCUMENT TYPE" Codes are 3 digits long, all CAPS: "SOP", "WIN", "CUS", "SPC", "REG", "MAN"
'-"FACILITY LOCATIONS" Codes are 3 digits long, all CAPS: "445", "ELC", "239", "529", "TEK", "GFA"
'-"PARENT DEPARTMENT" Codes are 2 digits long, all CAPS: "QM", "FD", "EH", "AG", "TC", "OG"
'
'*********************************************************************************************************
If ckTYPE = "SOP" Then .chk__SOP = True
If ckTYPE = "SOP" Then .lbl__SOP.BackColor = &HFFFF& Else
If ckTYPE = "WIN" Then .chk__WIN = True
If ckTYPE = "WIN" Then .lbl__WIN.BackColor = &HFFFF& Else
If ckTYPE = "CUS" Then .chk__CUS = True
If ckTYPE = "CUS" Then .lbl__CUS.BackColor = &HFFFF& Else
If ckTYPE = "SPC" Then .chk__SPC = True
If ckTYPE = "SPC" Then .lbl__SPC.BackColor = &HFFFF& Else
If ckTYPE = "REG" Then .chk__REG = True
If ckTYPE = "REG" Then .lbl__REG.BackColor = &HFFFF& Else
If ckTYPE = "MAN" Then .chk__MAN = True
If ckTYPE = "MAN" Then .lbl__MAN.BackColor = &HFFFF& Else
'*********************************************************************************************************
If ckPAR = "QMS" Then .chk__QM = True
If ckPAR = "FDA" Then .chk__FD = True
If ckPAR = "EHS" Then .chk__EH = True
If ckPAR = "AGRO" Then .chk__AG = True
If ckPAR = "TECH" Then .chk__TC = True
If ckPAR = "ORG" Then .chk__OG = True
'*********************************************************************************************************
If ckFAC = "445" Then .chk__445 = True
If ckFAC = "445" Then .lbl__445.BackColor = &HFFFF& Else
If ckFAC = "ELC" Then .chk__ELC = True
If ckFAC = "ELC" Then .lbl__ELC.BackColor = &HFFFF& Else
If ckFAC = "529" Then .chk__529 = True
If ckFAC = "529" Then .lbl__529.BackColor = &HFFFF& Else
If ckFAC = "TEK" Then .chk__TEK = True
If ckFAC = "TEK" Then .lbl__TEK.BackColor = &HFFFF& Else
If ckFAC = "GFA" Then .chk__GFA = True
If ckFAC = "GFA" Then .lbl__GFA.BackColor = &HFFFF& Else
'*********************************************************************************************************
so far up to here, everything works fine. the record selected was located, and the userfrom was populated with all the information retrieved from that record (on the worksheet "employee training matrix")
Its only after the user selects the cmdAdd button that it crashes:
Code:
Private Sub cmdAdd_Click()
Dim wx As Worksheet
Dim RecordRow As Long
Set wx = Worksheets("Employee Training Matrix")
Worksheets("Employee Training Matrix").Activate
RecordRow = Val(Me.cmdNext.Tag)
With wx
' FACILITY CHECKBOXES
If chk__445.Value Then Cells(RecordRow, 7) = "445"
If chk__ELC.Value Then Cells(RecordRow, 7) = "ELC"
If chk__239.Value Then Cells(RecordRow, 7) = "239"
If chk__529.Value Then Cells(RecordRow, 7) = "529"
If chk__TEK.Value Then Cells(RecordRow, 7) = "TEK"
If chk__GFA.Value Then Cells(RecordRow, 7) = "GFA"
' PARENT DEPARTMENT CHECKBOXES
If chk__QM.Value Then Cells(RecordRow, 7) = "QM"
If chk__FD.Value Then Cells(RecordRow, 7) = "FD"
If chk__EH.Value Then Cells(RecordRow, 7) = "EH"
If chk__AG.Value Then Cells(RecordRow, 7) = "AG"
If chk__TC.Value Then Cells(RecordRow, 7) = "TC"
If chk__OG.Value Then Cells(RecordRow, 7) = "OG"
' DOCUMENT TYPE CHECKBOXES
If chk__SOP.Value Then Cells(RecordRow, 2) = "SOP"
If chk__WIN.Value Then Cells(RecordRow, 2) = "WIN"
If chk__CUS.Value Then Cells(RecordRow, 2) = "CUS"
If chk__SPC.Value Then Cells(RecordRow, 2) = "SPC"
If chk__REG.Value Then Cells(RecordRow, 2) = "REG"
If chk__MAN.Value Then Cells(RecordRow, 2) = "MAN"
'
End With
ActiveWorkbook.Worksheets("Employee Training Matrix").Activate
Unload Me
End Sub
Here is the error that I get and the highlighted code:
Thank you for any help and assistance offered.