Access - Criterio especifico en una consulta.

 
Vista:
sin imagen de perfil
Val: 53
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Criterio especifico en una consulta.

Publicado por Adrian (32 intervenciones) el 23/09/2017 07:53:41
Muy buenas. he aqui de nuevo.
He creado una consulta, en la que debe devolverme los valores de una tabla siguiendo el parametro en un formulario.
El caso es que por ejemplo en el cuadro de lista tengo seleccionado el 1 y la consulta me devuelve todos los valores que tienen 1, no el 1.
Es decir la consulta devuelve:
1
10
11
12
13
14
15
16
17
18
19
21
31
y asi sucesivamente. y lo que quiero es que devuelva solamente el 1.
en criterios tengo este codigo, que es precisamente de donde coje el valor:
Como "*" & [Formularios]![Cobros]![detalle_deuda] & "*"
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

Criterio especifico en una consulta.

Publicado por Anonimo (3316 intervenciones) el 23/09/2017 09:04:56
Se esta utilizando un campo de tipo TEXTO (que tendrá dígitos pero es de texto) tanto le dará que su contenido sea un numero, una letra o un signo de interrogación.

Si se desea preguntar por valores numéricos hay salidas disponibles:

.- No se puede cambiar NADA de lo ya creado ==> Se utiliza la función VAL para que 'traduzca/convierta' ese texto en su equivalente numérico (solo habría un 'uno' o un 'once)

.- Se puede modificar ese campo ==> (actualmente texto: lo delata su alineación a la izquierda) cambiarlo a uno de tipo numérico (que gráficamente lo alinearía a la derecha y por mas dígitos que lo formasen, representaría a un UNICO valor en un conjunto).

Por cierto, para localizar un valor numérico no vale un 'tratamiento de texto' con los clásicos asteriscos, un numero (con todos sus dígitos) es un valor único por lo que debería utilizarse o la igualdad (A= B) o bien los intervalos (A >= B, A < B .... etc.)

La función VAL aplicada a ese dato, distinguiría el valor 'uno (1)' del valor 'once (11)' aunque este ultimo lo formen dos dígitos iguales y ambos sean 'unos (1)'.
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: 53
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Criterio especifico en una consulta.

Publicado por Adrian (32 intervenciones) el 23/09/2017 13:32:28
Exactamente eso esta sucediendo.
Estuve revisando la tabla y esta como numero.
en la consulta esta en formato numero, pero al generarla sigue a la izquierda(o sea que lo busca como texto).
y el cuadro de lista es el tema, porque tengo varias columnas, id_facturacion, nombre, domicilio y demas. Entonces como hago para colocar que el primer valor solamente sea de tipo numero.
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

Criterio especifico en una consulta.

Publicado por Anonimo (3316 intervenciones) el 23/09/2017 15:11:56
Lo elemental seria que no se utilizasen expresiones de tratamiento de texto, pues Access (intentando ser solidario con el que comienza) convertirá un valor numérico en su expresión equivalente de texto (y aquí comienza el lio), técnicamente las variables que se acostumbran a aplicar en los formularios son de tipo VARIANT (es decir 'indefinidas') para asi permitirle adaptarse a un numero, texto o fecha.

Si Access reconoce el tipo (por depender de un campo que es de un tipo determinado), aplicara ese tipo en su tratamiento pero hay excepciones generadas cuando el 'tipo de campo' es indefinible como sucede en los combos y cuadros de lista que tienen varias columnas y cada una puede ser un tipo de dato diferente (lo que le fuerza a representarlo utilizando el tipo común: alfanumérico, alias texto).

Solución (y viene desde la respuesta anterior):
.- Aplicarle la función VAL (si le es posible, reconocerá ese texto como numero)
.- Comparaciones adecuadas (no si contiene una cifra o si en las decenas tiene una determinada cifra) si es igual o no lo es, si es mayor o menor, si esta en un rango .... etc.
.- en definitiva permitirle que muestre sus méritos al tratarlo como lo que se supone que es: un NUMERO

Para profundizar en la función VAL, aconsejaría escribir esa frase y con ella señalada pulsar 'F1', aparecerá la ayuda de Access y (leyendo también la letra pequeña y a veces expandiendo la oculta) se conocerán sus peculiaridades (incluso muchas veces vienen ejemplos claros y comentados de sus aplicaciones practicas)
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: 53
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Criterio especifico en una consulta.

Publicado por Adrian (32 intervenciones) el 23/09/2017 16:39:32
Lo entiendo amigo, y gracias por responder. Lo que me gustaria saber especificamente en donde coloco la funcion val, en la consulta? en el campo? en el cuadro de lista? pongo en la columna de la consulta: =val("*" & [Formularios]![Cobros]![detalle_deuda] & "*")

En el formulario Cobros al pretar el boton con el signo $ se crea un informe de acuerdo a lo que esta seleccionado en el cuadro de lista detalle_deuda que es el cuadrito en borde rojo.
Si te fijas en la consulta el campo id_facturacion figura con formato numero general. incluso en el de al lado cree una columna con la expresion [id_facturacion]+1 para probar si lo identificaba como numero y si me procede a hacer el calculo. lo mismo en la tabla que contiene los datos, son campos de tipo numero. Pero siempre me los alinea a la izquierda.
1
2
Mi idea es la siguiente: se genera el informe (ya esta hecho), se pregunta si se quiere imprimir(ya esta hecho) y si la persona pone si, se ejecuta la opcion en vba de imprimir (ya esta hecho). Lo que estoy buscando lograr es que ademas de imprimir, me genere una consulta en donde me modifique el dato alquileres mensuales.pagado que esta en NO por un SI y que agregue en el campo de la tabla Fecha de pago la fecha de hoy, por eso se me ocurrio que podria funcionar con una consulta de accion.
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

Criterio especifico en una consulta.

Publicado por Anonimo (3316 intervenciones) el 23/09/2017 19:34:07
Lo expuesto originalmente (copio y pego):
.....
He creado una consulta, en la que debe devolverme los valores de una tabla siguiendo el parametro en un formulario.
El caso es que por ejemplo en el cuadro de lista tengo seleccionado el 1 y la consulta me devuelve todos los valores que tienen 1, no el 1.

......

Si deseo obtener el valor de un campo en formato numérico, basta con pedirle a Access 'que traduzca el texto expresado en dígitos a numero' y eso se hace con la función VAL

Si el dato esta en una columna de un cuadro de lista (o combo o donde la imaginación del programador lo ubique) es tan elementalmente sencillo como:

Numero en formato Numerico = VAL ("expresión de texto en dígitos") y aquí se puede aplicar el consejo de acudir a la ayuda que pormenoriza detalles interesantes.

Aplicado al caso concreto:
Val( Formularios.NombreDelFormulario.NombredelCuadroDeLista.Column (numero de columna en que esta el dato) )

Utilizar los asteriscos (que implican ambigüedad y su aplicación básica es para textos) con un valor numérico que es un CONCRETO carece de sentido y lógica.

En esa imagen que muestra una consulta en edición, en las propiedades del campo se esta indicando que se muestre como numero, pero eso es FORMATO (formato = disfraz) y eso no le confiere ningún atributo numérico si su origen real es un texto.

Es mas. si 'su origen real' es numérico, lo de forzar un formato (pura estética) carece de sentido practico, mejor es darle formato en su destino final y no en el medio de los posibles cálculos.

Al respecto de las futuras pretensiones ... creo que cada una debe de tratarse por separado (como se gestionaría esa consulta de actualización por ejemplo) porque mezclar temas suele producir confusión (fácilmente se entremezclan preguntas/respuestas)

Para caminar con seguridad hay dos métodos:
.- Conocer como la palma de la mano el camino (así se podría correr en lugar de caminar)
.- Caminar paso a paso asentando un pie antes de avanzar el otro (para evitar las caídas, que siempre duelen)
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: 53
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Criterio especifico en una consulta.

Publicado por Adrian (32 intervenciones) el 24/09/2017 22:57:10
ya esta, ya logre hacerlo. Agradezco todo tu esfuerzo y explicacion, sinceramente.
Pero la respuesta era tan simple como esto sustituir la expresion:
Como "*" & [Formularios]![Cobros]![detalle_deuda] & "*"
por esta: =[Formularios]![Cobros]![detalle_deuda]
Lo cual tiene mucha relacion con lo primero que me decias. Lo trataba como un texto y no como un numero.
y otro detalle es que el cuadro de lista en otras, habilitado la funcion seleccion multiple simple. Lo cual me era muy util para imprimir el informe pero para ejecutar esta consulta no. Asi que no se si esto es solucionable, es otro tema. Mil gracias nuevamente.
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