Access - Consultilla urgente de Access

 
Vista:

Consultilla urgente de Access

Publicado por Mat (23 intervenciones) el 26/04/2007 17:47:46
Hola a todos.

Espero que me puedan ayudar con ésto.

Tengo un formulario con un combo desplegable. Ese combo toma valores de una tabla. Me gustaría poder escribir, y si ese valor no está en la tabla, que lo agregue automáticamente.

¿Como lo hago?.

Muchas gracias.

Mat.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consultilla urgente de Access

Publicado por 2PL (72 intervenciones) el 26/04/2007 18:07:35
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar