Filtro con valores booleanos |
Responder
|
| Autor | |
JoseraGR
Nuevo
Unido: 06/Octubre/2020 Localización: Granada Estado: Sin conexión Puntos: 31 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Tema: Filtro con valores booleanosEnviado: 17/Marzo/2025 a las 17:16 |
|
Buenas
Una nueva cuestión que tengo al realizar un filtro mediante varios combos. Uno de ellos tiene valores booleanos (si, no). y al montar el filtro siempre me da error de valores no coinciden. Este es una parte del código que tengo: If vDigitalizada <> "" Then If vDigitalizada = "Si" Then vDigital = True Else vDigital = False End If CFiltro = CFiltro & "and [Digital]= vDigital " End If donde vDigitalizada es de tipo string, Digitasl y vDigital boolean. Supongo que el problema esta en la parte de "and [Digital]= vDigital ", he probado varias combinaciones pero no atino a dar con la sintaxis correcta. Un saludo
|
|
![]() |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14428 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Enviado: 17/Marzo/2025 a las 18:12 |
|
If vDigitalizada = "si" Then
CFiltro = CFiltro & " AND Digital <> 0" else CFiltro = CFiltro & " AND Digital = 0" End If En la pelea con distintos tipos de BD's ya me he acostumbrado a trabajar con el valor 0 = false y distinto de cero = True. |
|
![]() |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Opciones de entrada
Gracias(1)
Cita Respuesta
Enviado: 18/Marzo/2025 a las 08:08 |
|
Hola,
Aparte de coincidir con Jesús en la creación de filtros booleanos, tu error podría estar en la concatenación para crear la cadena de filtro: CFiltro = CFiltro & " and [Digital] = " & vDigital Error 1 (posible): que CFiltro no acabara en un espacio y esa concatenación uniría "and" a la última palabra de la cadena CFiltro. Error 2 (seguro): al tener el vDigital dentro de la cadena, no tiene ni idea de que le estás hablando Error 3 (probable): la creación de cadenas de ese tipo pueden generar errores raros porque se pueden crear como Verdadero o True, cosa que Access no es capaz de asociar que son los mismos valores. En definitiva, la opción que planta Jesús. Fíjate en todo lo que te ahorras. Tu tienes 9 líneas de código (+ la declaración de vDigital); Jesús solo 3. Si quieres rizar el rizo, en 1 sola línea: CFiltro = CFiltro & " AND Digital " & Iif(Nz(vDigitalizada, "") = "Si", "<>0", "=0") Un saludo
|
|
![]() |
|
JoseraGR
Nuevo
Unido: 06/Octubre/2020 Localización: Granada Estado: Sin conexión Puntos: 31 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Enviado: 22/Marzo/2025 a las 19:51 |
|
Buenas
Probado con el código de Jesus y funciona correctamenet. Y si repasando todas las pruebas que he hecho hacia cosas raras con este tipo de datos. Gracias y un saludo
|
|
![]() |
|
Responder
|
|
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |