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