Cuadro combinado que envía datos a otro formulario mediante código

Tengo un inconveniente con un código de microsoft access el cual esta en el evento (al no estar en la lista) de un cuadro combinado el código me sirve para añadir un nombre que no esta en la lista este es el código:

Private Sub cliente_NotInList(NewData As String, Response As Integer)
Dim Clientenuevo As Integer, titulo As String, mensaje As Integer
titulo = "El cliente que ha escrito no esta en la lista"
mensaje = vbYesNo + vbDefaultButton1
Clientenuevo = MsgBox("¿Desea agregarlo a la lista?", mensaje, titulo)
If Clientenuevo = vbYes Then
DoCmd.RunCommand acCmdUndo
DoCmd.OpenForm "Registro_Clientes", acNormal, "", "", acAdd, acDialog
Response = acDataErrAdded
End If
End Sub

Este código me sirve para agregar el cliente que no esta en la lista y al cerrar el formulario ya aparece el nombre y me envía al siguiente campo para llenar los demás datos.

INCONVENIENTE

Bueno siempre me toca escribir el nombre en el cuadro combinado y como no esta abre el formulario de clientes y debo volver ha escribirlo.

PREGUNTA

¿Mi pregunta es se puede modificar el código de modo que el al escribirlo en el cuadro combinado como no esta abra el formulario y ya aparezca el nombre en el formulario y solo sea llenar datos de teléfono y de dirección y al cerrarlo ya aparezca en el cuadro combinado?

Me dieron un código que puede hacerlo como pido pero tenia que cambian la propiedad de limitar lista de si a no y lo intente pero si lo cambiaba ya no aparecía el nombre del cliente sino el código de registro y la verdad no me deja cambiarlo entonces la idea sera hacer esto en este mismo código

1 Respuesta

Respuesta
3

Si bien me suena ese código, para lo que quieres te aconsejaría que lo cambiaras. Si tengo un formulario Ventas y escribo un nombre

El cuadro combinado, en su origen de la fila tengo puesto

Select nombrecliente from Clientes;

Numero de columnas 1

Limitar a la lista=No

Es decir, en la tabla Ventas guarda el nombre del cliente. Cuando pulso Enter

Cuando le digo Si

El código del formulario Ventas es

Private Sub NombreCliente_BeforeUpdate(Cancel As Integer)
If Nz(DCount("*", "clientes", "nombrecliente='" & Me.NombreCliente & "'")) = 0 Then
Dim respuesta As Byte
respuesta = MsgBox("¿Desea agregar este cliente a la tabla?", vbYesNo, "Lo que sea pero decídete")
If respuesta = vbYes Then
DoCmd.OpenForm "clientes", , , , acFormAdd, acDialog
Response = acDataErrAdded
ElseIf respuesta = vbNo Then
DoCmd.CancelEvent
End If
End If
End Sub

Y el del formulario Clientes

Private Sub Form_Current()
If CurrentProject.AllForms("ventas").IsLoaded Then
NombreCliente = Forms!Ventas!NombreCliente
End If
End Sub

Hola icue que pena la demora en contestar mira intento cambiar la propiedad limitar lista de si a no y no me deja dice el software no puede limitar a la lista en no

Más abajo del cuadro dice

La primera columna visible que esta determinada por la propiedad anchura de columna, no es igual a la columna dependiente. Primero ajuste la propiedad anchura de columna y, después, establezca la propiedad limitar a la lista.

Hago esto pero ya no me muestra el nombre sino el código del cliente a ingresar y pues ya no me serviría porque necesitaría el nombre y no el código del registro de la tabla clientes

Esta tabla tiene una relación de uno a varios de la tabla factura

cres que haya una solución.

¿Podrías mandarme una copia vacía del las tablas y formulario?. Es para mirarla.

El correo es [email protected]

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas