Access - Filtro con where...

 
Vista:

Filtro con where...

Publicado por Hector Florez (25 intervenciones) el 21/12/2010 22:32:16
Gracias por la ayuda:

Mi caso es que quiero filtrar una tabla por código según un campo del formulario, me explico, quiero seleccionar los datos de la tabla bancos UNICAMENTE para el banco que el usuario este consultando en pantalla, es decir, aunque la tabal tenga muchos bancos, cuando el usuario este trabajando en el banco 1, quiero hacer un select contra ese campo para filtrar esa tabla,

uso algo asi:

Dim rs As DAO.Recordset, db As DAO.Database
Set db = CurrentDb()
Set rs = db.OpenRecordset("Select * from Mvtobancos where [Mvtobancos].Idbanco = Forms![Egresos]![Banco]")

Lo que no funciona es como especificar el criterio para el select que filtre los registros según el banco activo en el formulario.

Muchas gracias por la ayuda.

Saludos,
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

RE:Filtro con where...

Publicado por pepe (67 intervenciones) el 22/12/2010 00:20:08
Es que el criterio no debe ser Forms![Egresos]![Banco], sino el valor de dicho control, para ello debes sacarlo de las comillas.

"Select * from Mvtobancos where [Mvtobancos].Idbanco = " & Forms![Egresos]![Banco]

Para estas situaciones es util usar una variable para poder observar la diferencia.

Dim SQL as string

SQL = "Select * from Mvtobancos where [Mvtobancos].Idbanco = Forms![Egresos]![Banco]"
*** RESULTADO ***
' "Select * from Mvtobancos where [Mvtobancos].Idbanco = Forms![Egresos]![Banco]"

SQL = "Select * from Mvtobancos where [Mvtobancos].Idbanco = " & Forms![Egresos]![Banco]
*** RESULTADO ***
' "Select * from Mvtobancos where [Mvtobancos].Idbanco = Banco 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

RE:Filtro con where...

Publicado por Hector Florez (25 intervenciones) el 22/12/2010 21:52:25
Amigo, muchas gracias, pues asi, si cumple el criterio... Pero no logro que me filtre la tabla adecuadamente. Te Explico:

Tengo una tabla (Mvtoabancos),donde estan registrados los movimientos de varios bancos, en ese orden de ideas, lo que pretendo es hacer un filtro para ver el movimiento de un banco especifico y poder ver el saldo final y avisar al cliente si el banco tiene fondos o no.

El problema es que luego de este select coloco un rs.recordcount y me muestra 1, cuando tengo 4 registros ....

Gracias por el consejo que me puedas dar.

Saludos,
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

RE:Filtro con where...

Publicado por pepe (67 intervenciones) el 24/12/2010 02:01:57
El problema de recordcount es que no funciona como cabría esperar, hasta que no se recorre el recordset completo no devuelte el valor real, así que es obligado hacer algo como:

if not rs.eof then
rs.movelast
rs.movefirst
end if

Así recordcount retornará el número real de registros de la consulta.

Aunque técnicamente no es un fallo de programacion, nunca he entendido este tipo de comportamiento, todo programador espera recibir el valor correcto sin tener que preocuparse de escribir más código.
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