** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Campo de texto según valor de combo en cascada
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCampo de texto según valor de combo en cascada

 Responder Responder
Autor
Mensaje
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 690
Enlace directo a este mensaje Tema: Campo de texto según valor de combo en cascada
    Enviado: 16/Febrero/2024 a las 11:36
Muy buenas y saludos.
Una cuestión que no logro resolver. Tengo unos combos en cascada que me filtran valores:
El primer combo me muestra una lista; al elegir me filtra a un valor.
Al elegir ese valor en el siguiente combo me vuelve a filtrar. Y así hasta un tercero.
Mi duda que no logro resolver es que necesito un campo de texto que me muestre el valor que hay en el último combo de (tener) y si no tiene, el valor del combo anterior.
Por ejemplo:

Combo 1: B18356345
Combo 2: 18/B18356345
Combo 3: 18/B18356345/001
Campo txt1: Debe mostrar 18/B18356345/001

Combo 1: B13702956
Combo 2: 04/B13702956
Combo 3: 
Campo txt1: Debe mostrar 04/B13702956

Combo 1: B56146319
Combo 2: 
Combo 3: 
Campo txt1: Debe mostrar (nada)

No sé si me he explicado bien. Adjunto una base de ejemplo.


Muchas gracias
Arriba
Juanmasp Ver desplegable
Habitual
Habitual


Unido: 21/Abril/2006
Estado: Sin conexión
Puntos: 122
Enlace directo a este mensaje Enviado: 16/Febrero/2024 a las 14:16
Hola, deberías hacer algo así.

[Campo txt1] = iif ( [Combo 3]<>"", [Combo 3], iif ( [Combo 2]<>"", [Combo 2], [Combo 1]))

Esto suponiendo que devuelva string, si devuelve null se puede hacer con Nz

[Campo txt1] = Nz ( [Combo 3], Nz ( [Combo 2], Nz ( [Combo 1], "")))

Saludos.
Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 690
Enlace directo a este mensaje Enviado: 16/Febrero/2024 a las 14:58
Hola, buenas Juanmasp.
No entiendo muy bien lo que me comentas, pero lo he probado en el ejemplo y no me da ningún resultado... 
Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 690
Enlace directo a este mensaje Enviado: 16/Febrero/2024 a las 18:55

Buenas de nuevo.

Lo he solucionado, poco elegante, pero funcional.

Quedaría algo así:


Private Sub CC_IdOperador_AfterUpdate()
Me.CC_IdROC.RowSource = "SELECT IdROC FROM TRegO WHERE NifS = '" & Me.CC_NifS & "' AND IdOperador = '" & Me.CC_IdOperador & "'"
Me.txt_Nombre = Me.CC_IdOperador
Me.CC_IdROC = Null
End Sub

Private Sub CC_IdROC_AfterUpdate()
Me.txt_Nombre = Me.CC_IdROC
End Sub

Private Sub CC_NifS_AfterUpdate()
Me.CC_IdOperador.RowSource = "SELECT IdOperador FROM TRegO WHERE NifS = '" & Me.CC_NifS & "' GROUP BY IdOperador"
Me.CC_IdOperador = Null
Me.CC_IdROC = Null
End Sub


... , da la funcionalidad buscada.

Salu2

Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 690
Enlace directo a este mensaje Enviado: 17/Febrero/2024 a las 20:24
Por mi parte se puede dar por cerrado este hilo
Salu2Smile
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable