Visualizar número de teléfono en el formulario

Tengo un formulario llamado factura en el cual tengo un cuadro combinado que esta lleno de los clientes previamente registrados en la tabla clientes esta tabla tiene los compos cliente y número de teléfono ademas de fecha etc etc

Lo que quiero es que en un cuadro independiente llamado numero de contacto aparezca el número de teléfono del cliente que seleccione y si el cliente no tiene teléfono entonces me aparezca si quiero seleccionar agregar el teléfono esto con 3l propósito de llenar datos faltantes.

¿Alguien qué me pueda ayudar?

Respuesta
1

Aquí esta la imagen del código

1 respuesta más de otro experto

Respuesta
3

Puedes hacerlo de muchas formas, todo depende de como trabajes. Por ejemplo, supongamos que tengo una tabla Copia(la tuya de facturas)

Y un formulario( el tuyo de facturas), con un combinado donde elijo el nombre de cliente, llamado ElegirCliente

Cuando elijo un cliente que si tiene teléfono

Si elijo un cliente que no tiene teléfono

Si le dices Sí, se abre el formulario Clientes para que le anotes el teléfono

Anoto su teléfono y al cerrar el formulario, en el formulario Facturas

El código del evento Después de actualizar del combinado es

Private Sub ElegirCliente_AfterUpdate()
If Nz(DCount("telefono", "copia", "nombrecliente='" & Me.ElegirCliente & "'")) = 0 Then
Dim respuesta As Byte
respuesta = MsgBox("Este cliente no tiene teléfono asociado. ¿Quiere anotarlo?", vbYesNo, "Lo que sea, pero decídete ya")
If respuesta = vbYes Then
DoCmd.OpenForm "copia", , , "nombrecliente='" & Me.ElegirCliente & "'", , acDialog
Telefono = DLookup("telefono", "copia", "nombrecliente='" & Me.ElegirCliente & "'")
End If
Else
Telefono = DLookup("telefono", "copia", "nombrecliente='" & Me.ElegirCliente & "'")
End If
End Sub

Pero como te decía se puede hacer de muchas formas.

Ya lo abrí pero no sale como en el ejemplo que me enviaste te mando una imagen del código haber si me equivoque en algo 

Acá la imagen le doy pero no después de haberlo programado pero no sirve no busca el numero y tampoco lo agrega entonces no se que estaré haciendo mal me podrías regalar el ejemplo por correo haber si lo entiendo mejor

Pues la instrucción la tienes bien puesta. Lo único que se me ocurre es que el combinado tenga dos columnas y la columna dependiente sea alguna distinta de la que aparece el nombre del cliente, por ejemplo, que el combinado tenga las columnas, idcliente y cliente. Si ese fuera el caso, puedes hacer dos cosas

A.- Poner como columna dependiente la 2

B.- Cambiar el código y donde pones

....."cliente='" & me.cliente & "'"

ponerlo como "Idcliente=" & me.cliente & ""

También pudiera darse el caso de que el combinado no se llame así. Mira en sus propiedades-Otras-Nombre

icue tienes toda la razón en el combinado esta formado por los campos CLIENTE_ID y nombre

Seguí tus recomendaciones pero nada lo intente cambiando la columna dependiente pero cuando abres el formulario ya no muestra el nombre sino el id del cliente así que no sirve por que no sabría de que cliente es o a cual se refiere.

Y lo hice de la otra forma y dice : no coinciden los tipos de datos en la expresión de criterios

¿Entonces no se que hacer con ese caso no se te ocurre una forma en que se pueda solucionar no se desde la tabla clientes independizarlo o poniendo la clave principal también para el nombre?

Son solo ideas

Vamos a ver, el combinado va a tener dos columnas y la columna dependiente va a ser la de Cliente_Id, aunque lo que muestre sea el nombre

Tengo la tabla Clientes

También tengo la tabla Facturas

El campo Cliente es numérico

En el formulario Facturas, si elijo un cliente que si tiene teléfono

Al seleccionarlo

Si selecciono uno que no tiene

Me aparece

Cuando le digo Sí

Y al cerrarlo

El código adaptado a lo que dices es

Private Sub Cliente_AfterUpdate()
If Nz(DCount("telefono", "clientes", "cliente_id=" & Me.Cliente & "")) = 0 Then
Dim respuesta As Byte
respuesta = MsgBox("Este cliente no tiene teléfono asociado. ¿Quiere anotarlo?", vbYesNo, "Lo que sea, pero decídete ya")
If respuesta = vbYes Then
DoCmd.OpenForm "clientes", , , "cliente_id=" & Me.Cliente & "", , acDialog
Telefono = DLookup("telefono", "clientes", "cliente_Id=" & Me.Cliente & "")
End If
Else
Telefono = DLookup("telefono", "clientes", "cliente_Id=" & Me.Cliente & "")
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas