Imprimir página | Cerrar ventana

Consulta con casilla de verificación

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=84895
Fecha de impresión: 20/Abril/2024 a las 02:19


Tema: Consulta con casilla de verificación
Publicado por: silver7619
Asunto: Consulta con casilla de verificación
Fecha de publicación: 15/Diciembre/2019 a las 20:31
Buenas tardes, voy a intentar explicarme.
Quiero hacer una consulta en la que tengo un criterio de verdadero o Falso.
En el formulario de access que tengo realizado tengo un marco en la que se marca:
Realizadas
No Realizadas
Todas

Luego he puesto un cuadro de texto en la que le asigno un valor dependiendo de lo elegido
Verdadero o 1
Falso o 0
Null

El criterio de la consulta de ese campo lo tomo de lo elegido en el campo de texto. Funciona con verdadero o falso, pero no el null.

Lo que deseo es que si marco la casilla todas, en la consulta me salga todo sin restricción.

me podéis ayudar?



Gracias


-------------
D.Valera



Respuestas:
Publicado por: guarracuco
Fecha de publicación: 16/Diciembre/2019 a las 02:01
Puedes hacer algo como:

If tuTxt = 1 then
Sqlstr = "select * from nombre_tabla where tucolumna=1;"
Else if tutxt=0 then
Sqlstr= "select ....bla bla bla where tucolumna=0;"
Else
Sqlstr="select * from tutabla;"
End if


Publicado por: silver7619
Fecha de publicación: 17/Diciembre/2019 a las 20:01
Hola y gracias por responder.
He intentado poner el codigo y me sale un problema en el "tbd" del código que te pongo a continuación.

El error es "error de compilación, el uso de la propiedad no es valido"

Podrias por favor ayudarme? Gracias

Private Sub Comando26_Click()

Dim db As Database
Dim tbd As QueryDefs

Set db = CurrentDb 'base de datos actual
Set tbd = db.QueryDefs("QryOfertasTodo")


If ver1 = True Then
tbd = "select * from tblfax where aceptada=1;"
Else
If ver1 = False Then
tbd = "select * from tblfax where aceptada=0;"
Else
tbf = "select * from tblfax;"
End If
End Sub


-------------
D.Valera


Publicado por: guarracuco
Fecha de publicación: 17/Diciembre/2019 a las 21:21
Hola!
tbd es un objeto query, y estas intentando asignarle un valor.
Si lo que deseas es ejecutar la consulta, no es necesario instanciar ese objeto. (no tengo claro lo que deseas hacer)

Intenta lo siguiente:
1) comenta Dim tbd as querydefs
2) comenta Set tbd = db.querydefs("qryofertastodo")
3) corrige abajo del Else: cambia tbf por tbd

luego, despues del end if:
db.execute tbd

Pero creo que lo que deseas es llenar un objeto: cuadro de lista, formulario, por lo que ejecutar esa instruccion sql no sera suficiente, pero al menos compruebas que ese era el error.





Publicado por: silver7619
Fecha de publicación: 21/Diciembre/2019 a las 22:00
Hola, y gracias por contestar.
No quiero rellenar ningun cuadro de lista, ni nada de esto, solo quiero ejecutar una consulta con parametros, dependiendo de la opción marcada; "Aceptadas", "No aceptadas" y "Todas".
La casilla de verificación sólo acepta Verdadero o Falso.
La consulta hecha y me funciona con Verdadero o Falso, pero no sé como hacer que me saque "todos", y salte el parámetro.
He probado lo que me has puesto y sigue sin funcionar.

Gracias


-------------
D.Valera


Publicado por: Mihura
Fecha de publicación: 21/Diciembre/2019 a las 22:07
Dim AuxWhere As String

Select Case Me.ver1
case True, False
AuxWhere = " WHERE Aceptada = " & Me.ver1
case Else
AuxWhere = ""
End Select
SQL = "SELECT * FROM tblfax" & AuxWhere


-------------
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: VIMIPAS
Fecha de publicación: 21/Diciembre/2019 a las 23:31
Buenas noches.

He emulado tu situación y he creado una tabla a la que llamo como tu Silver7619. Le he puesto 2 campos, uno del tipo texto y el otro del tipo Si/No.

SILVER7619
CAMPO1 SERAverdaderoFALSO
VIMIPAS
SILVER1976 No
MEXMAN70 No
EMILIOVE No
XAVI

Al pegar los registros que he creado aquí en la pantalla de la respuesta que estoy escribiendo, y que en Access aparecen únicamente marcados o desmarcados (1 o 0), aquí aparecen con Sí y No. Pero bueno eso nos da igual.

Ahora he hecho una consulta sobre esta tabla, la he llamado Consulta2DESILVER7619. Te pego a continuación la SQL de dicha consulta:

SELECT SILVER7619.CAMPO1, SILVER7619.SERAverdaderoFALSO
FROM SILVER7619
WHERE (((SILVER7619.SERAverdaderoFALSO) Like "*" & [VerFalTod] & "*"));

Y ahora te pego los registros obtenidos según las respuestas posibles que tu esperas (1,0, todos):

Consulta2DESILVER7619
CAMPO1 SERAverdaderoFALSO
VIMIPAS
XAVI


Consulta2DESILVER7619
CAMPO1 SERAverdaderoFALSO
SILVER1976 No
MEXMAN70 No
EMILIOVE No

Consulta2DESILVER7619
CAMPO1 SERAverdaderoFALSO
VIMIPAS
SILVER1976 No
MEXMAN70 No
EMILIOVE No
XAVI

Ahora quiero tu hagas la misma prueba, coges tu tabla y la usas para hacer esta consulta (con tus campos claro), pones dos campos (uno de ellos el de Sí/No) y en criterios, ojo: del campo Sí/No, pones esto: Como "*" & [VerFalTod] & "*".

Cuando tienes que escribir el valor de VerFalTod, primero pones un 1, segundo pones un 0 y tercero, no pones nada, simplemente pulsa la tecla Intro, es decir que no toma valor ninguno y el Como (o Like para Access), acepta esta última como "todos los registros".

Luego lo adaptas a lo que tienes en el formulario. Está claro que primero he querido que lo entiendas y luego....

Ya nos cuentas.

Saludos.


-------------
Gracias


Publicado por: silver7619
Fecha de publicación: 22/Diciembre/2019 a las 10:47
Muchas gracias.

Eso era lo que quería.

Si hubiera puntuación te daria 5 estrellas.... :-D

Por mi se puede cerrar el hilo.


-------------
D.Valera


Publicado por: silver7619
Fecha de publicación: 22/Diciembre/2019 a las 10:48
Muchas gracias por responder.

El tema se ha solucionado, con tu respuesta y con la de Vimipas.

Os deseo que paseis unas felices Fiestas.

Por mi se puede cerrar el hilo

Gracias


-------------
D.Valera



Imprimir página | Cerrar ventana