Formulario elegir opciones pero una predeterminada

Estoy armando un formulario y necesito la posibilidad de elegir en un campo entre varias opciones pero que haya una predeterminada según el cliente seleccionado.
Tengo algo así:
Tabla formas de pago: Forma A
Forma B
Forma C
Tabla clientes: Nombre de cliente: Pedro
Forma de pago: Forma B
Tabla pedidos: Id de pedido: 1
Nombre de cliente: Pedro
Forma de pago: Forma B (o tal vez Forma A o Forma C)
Lo quiero es en el formulario de pedido, donde elijo el cliente y la forma de pago. Que aparezcan todas las formas de pago disponibles para elegir pero que ya aparezca escrita como Valor predetermindo la forma de pago que el cliente tiene en su tabla. (Que viene a ser la que usa la mayoría de las veces).
Espero que entiendas la explicación, creo que es sencillo, pero difícil para mi jaja!

1 respuesta

Respuesta
1
Te explico cómo hacer lo que quieres hacer, partiendo del supuesto que los nombres que me indicas en la consulta son los mismos que tienes en tu BD. Además, en el formulario donde introduces los pedidos, lo más cómodo para hacer lo que pides es que el campo [Forma de pago] sea un combo que te seleccione las formas de pago de la tabla formas de pago.
El proceso sería una cosa así:
1.- Pones el formulario de pedidos en vista diseño. Te vas al campo [Nombre de cliente], lo seleccionas y sacas sus propiedades. Te vas a la pestaña Eventos->Después de actualizar. Haces click en el espacio en blanco que hay a su derecha y te aparecerá un pequeño botón de puntos suspensivos. Haces click sobre él y en la ventana que te sale le dices que quieres generar código.
2.- Se te abrirá el editor de VB (VBE), con dos líneas por defecto (Private Sub... y End Sub). No debes tocar esas líneas. En medio de ellas escribes el siguiente código (te lo he puesto comentado para que veas lo que hace):
---
Private Sub...
Dim vCli, vFP as Variant
vCli=Me.[Nombre de cliente].Value
If IsNull(vCli) then exit sub 'Si no hay nombre de cliente sale del proceso.
'Buscamos la forma de pago en la tabla de clientes
vFP=DLookup("[Forma de pago], "Clientes", "[Nombre de cliente] ='" & vCli & "'")
'Si no se encuentra forma de pago especificada sale del proceso con un mensaje
If IsNull(vFP) then
msgbox "Este cliente no tiene forma de pago asignada", vbInformation, "AVISO"
Exit Sub
End If
'Si hay forma de pago lo asigna al campo correspondiente
Me.[Forma de pago].Value = vFP
End Sub
---
Tienes que repasar todos los nombres del código para que sean iguales a los de tu BD. "Clientes" del DLookup es el nombre de la tabla donde tienes informados los clientes con su forma de pago.
Finalmente decirte que he escrito el código de cabeza, por lo que si te salta algún error coméntamelo e intentaremos ponerle remedio.
Ya me dirás qué tal.
Gracias por contestar nekkito!
Te comento,
Los nombres exactos son estos:
Tabla de clientes: Clientes
Nombre de cliente: Cliente
Tabla forma de pago: Credit
------------------
Después probé reemplazando los nombres pero me da error de sintaxis en este renglón:
vFP=DLookup("[Credit], "Clientes", "[Cliente] ='" & vCli & "'")
Espero tu ayuda nuevamente! Gracias!
Fantástico!
Funciono perfecto! Probé corrigiendo unas comillas que faltanban y era ese el error de sintaxis! Después anduvo 10 puntos!
Muchísimas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas