Private Sub CustomerID_NotInList(NewData As String, _ Response As Integer) Dim Db As DAO.Database Dim Rs As DAO.Recordset Dim Msg As String Dim NewID As String On Error GoTo Err_CustomerID_NotInList ' Exit this subroutine if the combo box was cleared. If NewData = "" Then Exit Sub ' Confirm that the user wants to add the new customer. Msg = "'" & NewData & "' is not in the list." & vbCr & vbCr Msg = Msg & "Do you want to add it?" If MsgBox(Msg, vbQuestion + vbYesNo) = vbNo Then ' If the user chose not to add a customer, set the Response ' argument to suppress an error message and undo changes. Response = acDataErrContinue ' Display a customized message. MsgBox "Please try again." Else ' If the user chose to add a new customer, open a recordset ' using the Customers table. Set Db = CurrentDb Set Rs = Db.OpenRecordset("Customers", dbOpenDynaset) ' Ask the user to input a new Customer ID. Msg = "Please enter a unique 5-character" & vbCr & "Customer ID." NewID = InputBox(Msg) Rs.FindFirst BuildCriteria("CustomerID", dbText, NewID) ' If the NewID already exists, ask for another new unique ' CustomerID Do Until Rs.NoMatch NewID = InputBox("Customer ID " & NewID & " already exists." & _ vbCr & vbCr & Msg, NewID & " Already Exists") Rs.FindFirst BuildCriteria("CustomerID", dbText, NewID) Loop ' Create a new record. Rs.AddNew ' Assign the NewID to the CustomerID field. Rs![CustomerID] = NewID ' Assign the NewData argument to the CompanyName field. Rs![CompanyName] = NewData ' Save the record. Rs.Update ' Set Response argument to indicate that new data is being added. Response = acDataErrAdded End If Exit_CustomerID_NotInList: Exit Sub Err_CustomerID_NotInList: ' An unexpected error occurred, display the normal error message. MsgBox Err.Description ' Set the Response argument to suppress an error message and undo ' changes. Response = acDataErrContinue End Sub