I have not done it but I am sure it is possible. You could call a separate sub routine or function within the form's module or simply include some code in the NotInList procedure.
I will guess that the NotInList is testing for a condition and when the condition is true the event fires. So it should be a matter of getting the value from the cbo that the user was typing. Maybe a .Text property or something.
A quick search and I came up with this example from here.
http://msdn.microsoft.com/en-us/libr...ffice.15).aspx
MVP Contributor Bill Jelen, MrExcel.com
Code:
Private Sub cboDept_NotInList(NewData As String, Response As Integer)
Dim oRS As DAO.Recordset, i As Integer, sMsg As String
Dim oRSClone As DAO.Recordset
Response = acDataErrContinue
If MsgBox("Add dept?", vbYesNo) = vbYes Then
Set oRS = CurrentDb.OpenRecordset("tblDepartments", dbOpenDynaset)
oRS.AddNew
oRS.Fields(1) = NewData
For i = 2 To oRS.Fields.Count - 1
sMsg = "What do you want for " & oRS(i).Name
oRS(i).Value = InputBox(sMsg, , oRS(i).DefaultValue)
Next i
oRS.Update
cboDept = Null
cboDept.Requery
DoCmd.OpenTable "tblDepartments", acViewNormal, acReadOnly
DoCmd.GoToRecord acDataTable, "tblDepartments", acLast
End If
End Sub
Just below that example is another one that uses SQL rather than DAO. The event passes the string the user tried to use via NewData. It looks like you will need to collect the info from the user via an input box if your Lookup table has more than An Autonumber and one other column that would accept NewData. So three or more columns would require the looping code in the example above.