Otra pregunta ya tipica de cuadros combinados:
Había por allí un ejemplo sencillito pero no lo encuentro. ¡A consultar!

Cuando en un cuadro combinado (ccClientes) el dato ingresado (CódigoCliente)
no está registrado en la tabla (tbClientes), ¿Cual es el código para que,
cuando se active el evento NotInList, me dé opción de abrir el formulario
correspondiente (frmClientes) para el ingreso de dicho dato?


El siguiente código funciona de la siguiente manera:
se tienen dos combos: uno codigo de material el otro nombre del material. Al
ingresar un código inexistente en la tabla materiales, aparece un mensaje el
cual le indica al usuario que debe ingresar el nombre del material que
obviamente no existe tampoco y allí si lo dirige al formulario de creacion
de materiales colocando el nombre del material en su campo correspondiente y
sólamente el usuario tiene que ingresar el código correspondiente. Al cerrar
la ventana de creación de materiales el programa continúa en la ventana
inicial con los demás datos.
Cabe señalar que en la ventana de creación de materiales se debe colocar en
el evento al cargar el siguiente código.
Espero corresponder con esto en algo de lo que yo he usufructuado de esta
news, no sin antes agradecerles sus comentarios al código aquí expuesto.

VíctorJ
Bogotá, Colombia

Private Sub Form_Load()
    If Me.OpenArgs <> "" Then
        Me!DescripcionConcepto = Me.OpenArgs
        Me!idgruporecurso.SetFocus
        SendKeys "{F4}"
    End If

End Sub

Private Sub CodMaterial_NotInList(NewData As String, Response As Integer)
    Dim ctl As Control
    Set ctl = Me![CodMaterial]

    ' Pide al usuario que compruebe que desea agregar un nuevo valor.
    If MsgBox("No existe el Código digitado, ¿Agregarlo?. Si desea agregar oprima Aceptar el programa seguirá al campo nombre del recurso, ingrese elnombre del recurso.", vbOKCancel) = vbOK Then
        ' Establece el argumento Response para indicar que se han agregado los datos.
        Response = acDataErrAdded
On Error GoTo Err_CodMaterial_NotInList
    SendKeys "{esc}"
    ctl.Undo
    Me!NomMaterial.SetFocus
    Response = acDataErrAdded
Exit_CodMaterial_NotInList:
    Exit Sub

Err_CodMaterial_NotInList:
    MsgBox Err.Description
    Resume Exit_CodMaterial_NotInList
    Else
    ' Si el usuario elige Cancel, suprimir el mensaje de error y deshacerlos cambios.
        Response = acDataErrContinue
        ctl.Undo
    End If
End Sub

Private Sub NomMaterial_NotInList(NewData As String, Response As Integer)
    Dim ctl As Control
    Set ctl = Me![NomMaterial]

    ' Pide al usuario que compruebe que desea agregar un nuevo valor.
    If MsgBox("El valor no está en la lista ¿Agregarlo?. Si desea agregar oprima Aceptar o Enter, de lo contrario oprima cancelar. Le debe aparecer la ventana de creación. A este nuevo recurso debe seleccionarle un grupo de recurso y luego asignarle el consecutivo según el número que aparece al lado derecho.", vbOKCancel) = vbOK Then
        ' Establece el argumento Response para indicar que se han agregado los datos.
        Response = acDataErrAdded
        ' Agrega la cadena del argumento NewData al origen de las filas.
On Error GoTo Err_NomMaterial_NotInList
    DoCmd.OpenForm "Recursos", acNormal, , , acAdd, acDialog, NewData
    Response = acDataErrAdded
Exit_NomMaterial_NotInList:
    Exit Sub

Err_NomMaterial_NotInList:
    MsgBox Err.Description
    Resume Exit_NomMaterial_NotInList

    Else
    ' Si el usuario elige Cancel, suprimir el mensaje de error y deshacer los cambios.
        Response = acDataErrContinue
        ctl.Undo
    End If

End Sub

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)