The trick is to set the LimitToList property of the combo to true - that way you can trap the fact that you're trying to enter something not in the list.
The event that your code goes in is the OnNotInList event. Here's a very rough-and-ready bare-bones kind of example. I'm assuming that the the table in the example is what fills the combo's drop-down list:
Private Sub ComboBoxName_NotInList(NewData As String, Response As Integer)
Dim rec As Recordset
If MsgBox("Value is not in list. Add it?", vbOKCancel) = vbOK Then
Set rec = CurrentDb.OpenRecordset("<table name goes here>")
rec.AddNew
rec!<datafieldname> = NewData
rec.Update
Set rec = Nothing
Response = acDataErrAdded
Else
Response = acDataErrContinue
ComboBoxName.Undo
End If
End Sub
Hope this gets you on the right track.
Simon