Access - Como hacer si condicional en consulta de access (función Silnm),

 
Vista:
sin imagen de perfil

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Jhonny (10 intervenciones) el 09/03/2015 00:00:28
Buenas tardes, soy muy nuevo en el tema y quiero seguir aprendiendo. Quiero en una consulta que los valores de una columna de valores negativos sean 0 y en caso contrario que continúe el mismo valor. Se que la función Silnm funciona como un condicional pero cuando le doy el siguiente criterio en la consulta arroja error:

SiInm([Existencias]<0,"0",[Existencias])

Muchas gracias por su valiosa y oportuna colaboración
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Jesús Manuel (375 intervenciones) el 09/03/2015 08:40:52
Supongo que el campo existencias es valor numérico y si indicas "0" lo estas pasando como texto

En cuanto al separador de parámetros, en mi caso al tener el Access en español tengo que usar ; (punto y coma y no coma)


SiInm([Existencias]<0;0;[Existencias])
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Jhonny (10 intervenciones) el 10/03/2015 03:05:49
Si-condicional-Access

SiInm([Existencias]<0;0;[Existencias]) , Esto fue lo que coloque

No se aun porque no funciona, que me faltara mas para hacer que funcione o que me sugieren para poder hacer lo que pretendo.

Quiero que esa columna cuando tenga dato negativos lo tome como 0 y que lo pueda tomar después para hacer otro calculo en otra columna. Que podría hacer??. Muchas gracias por su valiosa y oportuna colaboración.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Jesús Manuel (375 intervenciones) el 10/03/2015 08:12:44
La imagen es muy pequeña y aún descargandola y haciendo zoon no consigo leer nada, pero tienes una línea de código en los criterios de uno de los campos. Has puesto la sentencia SiInm en la parte de criterio??


En mi caso he creado una tabla con un campo numérico al que he llamado Existencias. He creado una consulta a partir de esta tabla y en la línea campo he pegado el código:

Resultado: SiInm([Existencias]<0;0;[Existencias])
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de VICENTE

Como hacer si condicional en consulta de access (función Silnm),

Publicado por VICENTE (32 intervenciones) el 10/03/2015 13:51:06
Intenta colocando esa línea del Siinm en la cabecera, no en la parte del criterio
te aparecera algo así: "Expr: SiInm([Existencias]<0;0;[Existencias])"

Y asegurate de colocar antes de [Existencias], la tabla o consulta a la que pertenece ese campo, algo así:
[Tabla...].[Existencias]

Suerte, a ver si te funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Jhonny (10 intervenciones) el 10/03/2015 23:09:46
Hola Vicente y Jesús, muchas gracias por su colaboración, les comento que realice lo que me indicaron sin embargo continua saliendo el error que mi sintaxis no es valida colocándole con punto y coma; con coma sale "la expresión que ha especificado tiene un numero no valido".

Error

error-2

Que mas hará falta para solucionarlo, he tratado de hacer varias configuraciones pero aun nada. Que mas debería intentar hacer??. Muchas gracias por su oportuna y valiosa colaboración.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Jesús Manuel (375 intervenciones) el 11/03/2015 09:02:50
Puedes subir una versión reducida de tu BD, solo con la tabla y la consulta necesarias a algún gestor de archivos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Jhonny (10 intervenciones) el 11/03/2015 15:56:32
Jesús perdonará mi ignorancia pero a que te refieres con gestor de archivos? Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Jesús Manuel (375 intervenciones) el 12/03/2015 08:25:23
Dropbox, Mediafire, WeTransfer

Algún site que te permita subir el archivo para poder descargarlo y hecharle un vistazo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Manuel
Val: 395
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Manuel (171 intervenciones) el 11/03/2015 10:48:05
En la imagen que has colocado última, sigues usando siinm con comas, cuando deben ser ;

Siinm([Existencias]<0;0;[Existencias])

con las comas es cuando sale ese mensaje. Aunque es cierto que tu versión se Access podría ser con comas, alguna versión no para Español/España usas comas.

Después, han mirado que tipo de campo es Existencias.

Y cuidado con los null, tienes que mirar antes si el campo es nulo y no hacer nada o inicializarlo a 0... porque si metes un null en la expresión siinm, salvo que hagas una comparación doble... recuerda que null lo interpretará con "" normalmente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Jhonny (10 intervenciones) el 11/03/2015 15:58:28
Manuel gracias por su aporte, cuando coloco ; (punto y coma) sale el primer mensaje y cuando le coloco solo ,(coma) me envía el segundo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de VICENTE

Como hacer si condicional en consulta de access (función Silnm),

Publicado por VICENTE (32 intervenciones) el 11/03/2015 17:22:50
Jhonny, Intenta colocando el nombre de la tabla o consulta antes del Campo Existencias.

Siinm([TABLA...]![Existencias]<0;0;[TABLA...]![Existencias])

La Tabla que tiene ese campo EXISTENCIAS esta en la propia consulta que está haciendo??

Lo que SI es seguro es que la separación se hace con punto y coma.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Jhonny (10 intervenciones) el 13/03/2015 16:32:47
Hola Vicente, nada que funciona,

Error-3

te cuento que el problema esta con la , o con el ; ya que cuando aparece el mensaje de error le doy aceptar automáticamente se coloca en negrilla la , o el ; .

error-4.png

No se que hacer, es lo único que me falta para terminar con mi trabajo en este momento.

Sin embargo te agradezco inmensamente por la asesoría que me estas brindando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de VICENTE

Como hacer si condicional en consulta de access (función Silnm),

Publicado por VICENTE (32 intervenciones) el 14/03/2015 15:35:48
Johny, lo único que se me ocurre es que revises la configuración Regional de Windows, el tema de separadores. Puedes tener definido otro separador como por ejemplo el " | ", y por eso no te reconoce el ;

No estoy seguro pero lo puedes comprobar a ver.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Jhonny (10 intervenciones) el 16/03/2015 03:24:22
Hola Vicente, muchas gracias por el apoyo recibido, te cuento que revise la configuración regional pero aun así no funciono, así que continué surfeando por la red y encontré la siguiente solución que funciono:

SiInm((expresión), (parteVerdadera), (parteFalsa))

Lo que se hace es que en cada parte de la expresión se debe encerrar entre paréntesis y listo.

Muchas gracias por tomarse la molestia de atender mis llamados, les deseo mucho éxitos y en otra ocasión nos vemos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de VICENTE

Como hacer si condicional en consulta de access (función Silnm),

Publicado por VICENTE (32 intervenciones) el 16/03/2015 13:26:29
Me alegro Jonhy.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como hacer si condicional en consulta de access (función Silnm),

Publicado por gonzalo (29 intervenciones) el 04/08/2015 22:08:56
jhonny, dame una mano, tengo tu problema, pero explicame como lo hiciste tu. con los datos de esa misma consulta que t tenias. dame un pantallazo si pudieras gracias¡¡
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como hacer si condicional en consulta de access (función Silnm),

Publicado por salvador (1 intervención) el 17/06/2016 19:26:44
Me podiran explicar, por favor como realizar esta sintaxis en una tabla de access, en un tipo de datos calculado y en formulario =si(mora="";subtotal-descuento;subtotal+mora)

Soy nuevo en estas cosas, igual muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Enrique Heliodoro (1664 intervenciones) el 17/06/2016 21:11:32
¿En una tabla? ..

Lo normal seria el calculo en un formulario, en una consulta o incluso en un informe, pero en una tabla no se deberian guardar calculos que se puedan efectuar con los datos de esa misma tabla.

De cualquier forma esa sintaxis no es ortodoxa ni la comparacion sentido ...

Los campos del formulario se han de indicar entre corchetes o Access buscara otra cosa (con esa sintaxis suele esperar variables).

Y el campo 'mora' (de forma ortodoxa [mora]) si es numerico no se le puede comparar con un texto y si pudiera darse la circunstancia de que pudiera ser 'Null' se deberia utilizar con el la funcion 'Nz'.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha disminuido su posición en 10 puestos en Access (en relación al último mes)
Gráfica de Access

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Omar (1 intervención) el 24/08/2018 03:08:59
Tuve el mismo problema y lo acabo e solucionar.
Dejo este post para los que busquen el mismo inconveniente.
Hay Access 2007 que por su configuracion utiliza comas en vez de punto y coma.
por ejemplo:

Exp1:SiInm([moneda]=2,30,1)

El problema es que toma la coma como parte de un numero con coma y da el error de que hay un numero no valido.

La solucion:

Exp1:SiInm([moneda]=(2),(30),(1))

Me funciono perfectamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como hacer si condicional en consulta de access (función Silnm),

Publicado por Anonimo (3312 intervenciones) el 24/08/2018 09:56:41
Access utiliza SIEMPRE la configuración regional de la maquina en que 'corre' el programa cuando no esta trabajando en la ventana de VBA

La utilización de la coma o el punto y coma (como separadores de listas) o la coma y el punto (como separador decimal) le es ajena totalmente.

Si se utilizan expresiones (adecuadas para la ventana de VBA) en ubicaciones que no sean VBA, es cuando Access puede perder el control y 'hacer cualquier cosa', pero no es su culpa.

(es como si un conductor novel, confunde el pedal de freno con el del acelerador y …. pasa lo que pasa, la culpa no es de la maquina es del que 'siempre busca culpar a otros' en lugar de aprender a conducir).

En un entorno bien aplicado y correctamente diseñado, Access esperara que si el separador de listas LOCAL es la coma, el separador decimal para ese entorno sea el punto y si 'el separador de listas' es el punto y coma, el separador decimal esperado: es la coma

Por lo que aplicar en una misma sentencia el mismo indicador (separador) para las listas y para los decimales, implica necesariamente que esa aplicación tiene un error en su diseño que 'saltara' en cualquier parte en el momento mas inesperado (y con seguridad que será el menos oportuno).

Hay metodología (en Access y desde su primera versión) para intercambiar información entre niveles (el nivel VBA en que todo tiene una única forma de proceder) y el nivel del usuario (en el que interviene la capa de abstracción y se adapta al entorno/lenguaje local).

Aclarando esto ultimo:
VBA = sala de maquinas, sus referencias son siempre las mismas (las del lenguaje americano, sus creadores) esto es:
.- separador de listas = la coma simple
.- Separador decimal = el punto

Entorno del usuario= nivel superior (formularios, informes, consultas …) en los que Access 'intenta' adaptarse al entorno del usuario
- para ello existe una capa de abstracción o 'un oculto traductor' que de forma transparente adecua las expresiones en función del formato de idioma local, algo que depende exclusivamente del idioma seleccionado al instalar/utilizar WINDOWS (no Access):

.- separador de listas = la que indique su versión de Windows en la configuración regional (en España suele ser el punto y coma)
.- Separador decimal = la que indique su versión de Windows en la configuración regional (en España suele ser la coma, el punto lo desprecia por utilizarlo como 'el separador de miles' y es simple estética)

Es probable que en otros entornos se utilicen mezclas de ambos u otros diferentes, pero eso (bien diseñada la aplicación) a Access le es indiferente ya que espera formatos muy concretos en VBA (siempre los mismos aun en chino) y fuera de el (entorno del usuario) los que sean adecuados al idioma local.

Nota adicional:
Muchos de esos errores suelen provenir por utilizar valores numéricos como si fueran textos, sin tener en cuenta que Access detecta 'el tipo de campo' y aplica el tratamiento oportuno, utilizar una expresión de texto (ejemplo: 6,45 €) como si fuera un numero, acostumbra ser el primer paso hacia el abismo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar