Befine
I do this with the dropdown box's NotInList property and limit the user to the list. In the NIL property, I have the following code:
Dim DB As DAO.Database, RS As DAO.Recordset, strMsg As String, NewTester As Variant
strMsg = "'" & NewData & "' is not a known TESTER Name"
strMsg = strMsg & "@Do you want to associate the new TESTER Name to the current incident?"
strMsg = strMsg & "@Click Yes to link or No to re-type it."
NewTester = NewData
If MsgBox(strMsg, vbQuestion + vbYesNo, "Add new Tester?"

= vbNo Then
Response = acDataErrContinue
Else
Set DB = CurrentDb
Set RS = DB.OpenRecordset("tblPassword", dbOpenDynaset)
On Error Resume Next
RS.AddNew
RS!User = NewTester
RS.Update
[Forms]![frmIncidentInput].Visible = False
DoCmd.OpenForm "frmAddTester_Maintenance"
If Err Then
MsgBox "An error occurred. Please try again."
Response = acDataErrContinue
Else
Response = acDataErrAdded
End If
End If
This opens a 2nd form that, in your case, would be based on your STATE table, with the value of the "new" state as the default. The user would enter the other required information for the STATE. On the CLOSE button for this 2nd form there is this code:
DoCmd.Close acForm, "frmAddTester_Maintenance", acSaveYes
The user gets pushed back to the first form to continue entering the other information. No requerying is required.
You can modify this code for your field, form and table names. It may not be code that you can easily cut and paste, but hopefully the concept is clear.
Hope this helps.
Jim
"Get it right the first time, that's the main thing..."
![[wavey] [wavey] [wavey]](/data/assets/smilies/wavey.gif)