Imprimir página | Cerrar ventana

test logico " 1010 and 10001"

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=85152
Fecha de impresión: 19/Abril/2024 a las 05:06


Tema: test logico " 1010 and 10001"
Publicado por: pezuarco
Asunto: test logico " 1010 and 10001"
Fecha de publicación: 13/Abril/2020 a las 05:25
Buen dia para  todos !!!


  Bueno  no  se me ocurre otro nombre para la pregunta ,  pero  si me colaboran con el nombre pues lo cambio.

El  problema  es   el  siguiente: (solo necesito la idea )   tengo cuatro campos  lógicos  en  un  registro ,  su  formato  es   si/no  , algo  asi  como concatenar los 1s y 0s .
   1 0 0 1   registro  1 
   1 0 1 1   registro   2
   0 1 1 1    registro 3 
   0 1 1 0    registro 4
...... 
.....


a la hora  de validar alguna información  solamente quisiera  hacer algo así:

  select   case xx
   case 1011   and 1001
    ejecutar  acciones 
   case 0111  and 0110
     ejecutar acciones
   case  else 
    msgbox " error  de dtos"
   end  select


Solo  tengo esas  cuatro posibilidades.

gracias  por   su colaboración.



-------------
Muchas veces lo hacemos dificil....deberiamos verlo sencillo....todo es facil... necesitas logica ..paciencia...sapiencia....



Respuestas:
Publicado por: Mihura
Fecha de publicación: 13/Abril/2020 a las 08:52
"algo  asi  como concatenar los 1s y 0s"  .. pues hazlo .. LOL

Select Case Int(Me.B1) & Int(Me.B2) & Int(Me.B3) & Int(Me.B4)
Case "1011", "1001"
...
Case "0111", "0110"
...
End Select


Nota: el Int es para convertir los True (-1) a (1).





-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: xavi
Fecha de publicación: 13/Abril/2020 a las 10:19
Esto.... mejor Abs(Me.B1)

Nota: el Int es para tomar la parte entera de un número; el Abs es para tomar el valor absoluto "despreciando" el signo.

(de buen rollo!)



-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: Mihura
Fecha de publicación: 13/Abril/2020 a las 11:26
OuchOuchOuchOuchOuchOuch

¡Necesito salir a tomar el fresco! ....  Evil Smile

En que estaría yo pensando ... obviamente Abs como dice Xavi.

Gràcies minyó.






-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: pezuarco
Fecha de publicación: 12/Febrero/2021 a las 16:46
que  pena  se  puede  cerrar

-------------
Muchas veces lo hacemos dificil....deberiamos verlo sencillo....todo es facil... necesitas logica ..paciencia...sapiencia....


Publicado por: Mihura
Fecha de publicación: 12/Febrero/2021 a las 17:06
¿Qué pena?  ... ¿qué le ha pasado? ... ¿mal de amores?

Se puede saber que has hecho, que has intentado, ... porque no te funciona, porque la respuesta dada indica el camino a seguir ...



-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: Juanmasp
Fecha de publicación: 15/Febrero/2021 a las 15:19
Hola, lo que te han dicho es perfecto, pero si no lo entiendes o lo quieres hacer de otro modo:

Analizando las opciones que has puesto, la primera opción se resume en el patrón 10x1 y la segunda en 011x

Considerando los campos como b1, b2, b3 y b4 puedes hacer

if b1=true and b2=false and b4=true then
'ejecutar primer caso
else if b1=false and b2=true and b3=true then
'ejecutar segundo caso
else
msgbox "error de datos"
end if

Esto solo sirve para los supuestos que has mencionado, la solución que te han propuesto es mucho más flexible.

Espero que te sirva.



Imprimir página | Cerrar ventana