I would use a txtSite_Change event to populate the userform if a part number is found in the database and then use the cmdUpdate_Click event to update the sheet:
Private Sub cmdUpdate_Click()
Dim iRow As Long
Dim tb As MSForms.Control
Dim ws As Worksheet
Set ws = Worksheets("Active")
'check for a part number
If Trim(Me.txtSite.Value) = "" Then
Me.txtSite.SetFocus
MsgBox "Please enter a site name"
Exit Sub
End If
'Search for part number
Set f = ws.Columns(1).Find(what:=Me.txtSite.Value, lookat:=xlWhole)
If f Is Nothing Then
msg = MsgBox("Sitename could not be found", vbExclamation + vbOKOnly, "Input error")
Exit Sub
Else
iRow = f.Row
End If
'copy the data to the database
ws.Cells(iRow, 1).Value = Me.txtSite.Value
ws.Cells(iRow, 2).Value = Me.txtAddress.Value
ws.Cells(iRow, 3).Value = Me.txtState.Value
ws.Cells(iRow, 4).Value = Me.TxtZip.Value
ws.Cells(iRow, 5).Value = Me.TxtID.Value
ws.Cells(iRow, 6).Value = Me.TxtAgency.Value
ws.Cells(iRow, 7).Value = Me.TxtFAD.Value
ws.Cells(iRow, 8).Value = Me.TxtDate.Value
ws.Cells(iRow, 9).Value = Me.TxtNPL.Value
ws.Cells(iRow, 10).Value = Me.TxtFF.Value
ws.Cells(iRow, 11).Value = Me.TxtInitiative.Value
ws.Cells(iRow, 12).Value = Me.TxtRPM.Value
ws.Cells(iRow, 13).Value = Me.TxtDocDate.Value
ws.Cells(iRow, 14).Value = Me.TxtPA.Value
ws.Cells(iRow, 15).Value = Me.TxtSI.Value
ws.Cells(iRow, 16).Value = Me.TxtFile.Value
ws.Cells(iRow, 17).Value = Me.TxtUpdate.Value
'clear the data
For Each tb In Me.Controls
If TypeName(tb) = "TextBox" Then
tb.Value = ""
End If
Next
Me.txtSite.SetFocus
End Sub
Private Sub txtSite_Change()
Dim ws As Worksheet
Set ws = Worksheets("Active")
Set f = ws.Columns("A").Find(what:=Me.txtSite, lookat:=xlWhole)
If Not f Is Nothing Then
iRow = f.Row
Me.txtAddress.Value = ws.Cells(iRow, 2).Value
Me.txtState.Value = ws.Cells(iRow, 3).Value
Me.TxtZip.Value = ws.Cells(iRow, 4).Value
Me.TxtID.Value = ws.Cells(iRow, 5).Value
Me.TxtAgency.Value = ws.Cells(iRow, 6).Value
Me.TxtFAD.Value = ws.Cells(iRow, 7).Value
Me.TxtDate.Value = ws.Cells(iRow, 8).Value
Me.TxtNPL.Value = ws.Cells(iRow, 9).Value
Me.TxtFF.Value = ws.Cells(iRow, 10).Value
Me.TxtInitiative.Value = ws.Cells(iRow, 11).Value
Me.TxtRPM.Value = ws.Cells(iRow, 12).Value
Me.TxtDocDate.Value = ws.Cells(iRow, 13).Value
Me.TxtPA.Value = ws.Cells(iRow, 14).Value
Me.TxtSI.Value = ws.Cells(iRow, 15).Value
Me.TxtFile.Value = ws.Cells(iRow, 16).Value
Me.TxtUpdate.Value = ws.Cells(iRow, 17).Value
End If
End Sub