Imprimir página | Cerrar ventana

Campo de texto según valor de combo en cascada

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86863
Fecha de impresión: 26/Marzo/2026 a las 20:57


Tema: Campo de texto según valor de combo en cascada
Publicado por: maserrano
Asunto: Campo de texto según valor de combo en cascada
Fecha de publicación: 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.

https://uploadnow.io/f/g8xDbtB" rel="nofollow - https://uploadnow.io/f/g8xDbtB

Muchas gracias



Respuestas:
Publicado por: Juanmasp
Fecha de publicación: 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.


Publicado por: maserrano
Fecha de publicación: 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... 


Publicado por: maserrano
Fecha de publicación: 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



Publicado por: maserrano
Fecha de publicación: 17/Febrero/2024 a las 20:24
Por mi parte se puede dar por cerrado este hilo
Salu2Smile



Imprimir página | Cerrar ventana