RE:Consultilla urgente de Access
Mirate esto
Tratamiento del Evento NotInList
Cuando trabajamos con formularios de datos, en los que existe un ComboBox que nos permite seleccionar un valor de una tabla relacionada, puede ocurrir que el valor que deseamos seleccionar no se encuentre actualmente en dicha tabla, y que lo deseemos dar de alta automáticamente para ahorrar tiempo. Este podría se el caso de un cliente o un producto en un formulario de pedidos.
Para conseguir esto, utilizaremos el evento NotInList del ComboBox, que precisa que la propiedad LimitToList se encuentra al valor True. Este evento se dispara al intentar pasar a otro control o guardar el registro, ocurriendo después de todos los eventos Change.
En el siguiente ejemplo se ve como en caso de no existir el cliente se pregunta al usuario si desea añadirlo a base de datos, abriendo el formulario de clientes en modo Modal con los datos de Nombre y Apellido rellenos.
Private Sub ClienteID_NotInList(NewData As String, Response As Integer)
intReturn = MsgBox("Cliente " & strCli & " No está dado de alta." & _
"¿Desea añadirlo?",vbQuestion + vbYesNo, "Microsoft Press")
If intReturn = vbYes Then
DoCmd.OpenForm FormName:="frmClienteAdd", DataMode:=acAdd, _
WindowMode:=acDialog, OpenArgs:=strCli
If IsNull(DLookup("ClienteID", "tblClientes", "[LastName] = """ & strLast & """")) Then
Response = acDataErrContinue
Else
Response = acDataErrAdded
End If
Exit Sub
End If
Response = acDataErrDisplay
End Sub