Cambiar resultados en consulta access

Creo que debe ser fácil pero no se como hacerlo. Necesito hacer una consulta de access para hacer una importación de datos a una web, el caso es que en varias columnas los datos son "SI"o "NO" pero necesito que sean 0 ó 1 para la web, ¿cómo podría hacer que en la consulta se convierta el "SI" a 1 y el "NO" a 0?

1 Respuesta

Respuesta
1
Si el campo está definido como tipo 'Sí/No', internamente utiliza los valores 0 y -1. En tu consulta tendrías que poner: iif(<nombre del campo>;1;0)
En caso que sea un campo de texto, lo que tendrías que poner es: iif(ucase$(<nombre del campo>)="SI";1;0).
Ojo, si es de tipo texto puede llevar tilde la palabra 'Sí'.
La verdad es que no me funciona, vamos a suponer que el campo en cuestión se llama aprobado, he colocado lo siguiente:
iif(ucase$(<aprobado>)="SI";1;0)
Y me da error diciendo que hay demasiado paréntesis de cierre. Que entiendo que significa que si el campo aprobado es = SI entonces resultado 1, en caso contrario 0, supongo que hay algún error de sintaxis...
Tendrías que poner:
iif(ucase$(aprobado)="SI";1;0)
Te sobran los caracteres "<" y ">".
Pero ten en cuenta que es así si el campo es de tipo texto. Si el tipo de datos de "aprobado" es "Sí/No", lo que tendrías que poner sería: iif(aprobado;1;0)
sigo sin solucionarlo tras poner lo que me indicas
iff(ucase$(aprobado)="SI";1;0)
No coinciden los tipos de datos en la expresión de criterios
en caso de poner iff("aprobado";1;0)
Y me dice que la función iff no está definida en la expresión...
La tabla de origen que estoy usando es esta para que veas los tipos de datos:
Persona aprobado
david NO
fernando SI
jordi SI
Pepe NO
roberto NO
Tienes que poner:
iif(ucase$(aprobado)="SI";1;0)
(OJO: IIF no IFF)
Cierto, lo había picado mal en el foro, pero lo había puesto bien en el access, se me convierte a este expresión
SiInm("aprobado";1;0)
Al ejecutar la consulta me dice que "no coinciden los tipos de datos en la expresión de criterios"
Estás poniendo el nombre del campo entre comillas, y no puede llevarlas.
Si pones las comillas le estás indicando que se trata de un texto, no de un campo.
Como mucho puedes ponerlo entre corchete [], pero no entre comillas.
Si continúa sin funcionarte, mandame el código SQL de la consulta que lo reviso y te lo devuelvo correcto.
Creo que lo he probado de un montón de formas, pero sigo sin salir del paso
Este es el código completo
SELECT Hoja1.[persona ], Hoja1.aprobado
FROM Hoja1
WHERE (((Hoja1.aprobado)=IIf([aprobado]="SI",1,0)));
Un saludo
Prueba esta consulta:
SELECT Hoja1.[persona ], IIf(ucase$([aprobado])="SI",1,0) as aprobado01
FROM Hoja1
PERFECTO. Ahora funciona no entiendo porque no funcionaba antes, pero la consulta que me has pasado funciona a la perfección. Intentaré averiguar que ocurría. Muchas gracias y un saludo.
Por lo que ponía el SQL, lo que estabas poniendo es que te presentara el dato de "aprobado" y en los criterios lo que yo te había puesto.
Y no era así sino que lo que te estaba poniendo tenía que ir donde se pone el campo que tiene que presentar la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas