Access - Problemas con Filtro en Recordset

 
Vista:

Problemas con Filtro en Recordset

Publicado por Cemer (44 intervenciones) el 11/11/2006 14:04:02
Hola y gracias ante todo.

Tengo problemas en que un recodset me respete un filtro que le he puesto, una vez declarado el recordset y abierto, pongo el filtro immediatamente o debo ponerlo dentro de el conjunto de acciones de mi cógido . No se si no lo aplica por esta razón, el resto de codigo me funciona perfecto.

Filtro= "defino filtro tipo fecha"
rst.filter=filtro

Os detallo, caja de texto entro fecha final de mes, guardo este valor en variable y más tarde montro el filtro. Puede der que no escriba correctamente la expresión para filtro tipo fecha? cual seria la sintaxis adequada?

Agradezco si me podeis ayudar, es lo unico que me falla de esta parte de mi programa.
Gracias!
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:Problemas con Filtro en Recordset

Publicado por Chea (1015 intervenciones) el 11/11/2006 15:30:15
Es difícil adivinar. No dices si es un recordset de DAO o de ADO, que se comportan diferentemente con los filtro. Con ADO bastaría lo que has hecho, pero con DAO deberías crear otro recordset a partir del filtrado

Tampoco explicas cómo usas las fechas, que suelen ser origen de problemas, ni para qué vas a usar el recordset, porque podría haber alternativas.

Saludos
José Bengoechea Ibaceta
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:Problemas con Filtro en Recordset. Doy detalles

Publicado por Cemer (44 intervenciones) el 12/11/2006 09:40:36
Disculpa , te doy más datos:

Es Dao, abro una consulta dónde tengo trabajos pendientes de facturar, filtro (o pretendo filtrar) todos los que son de la misma fecha de final de mes, (previamente entrado en una caja de texto). Voy comprobando que para el mismo código de cliente le ponga el mismo num de gfactura (es decir, agrupa todos los trabajos de ese cliente y le pone el numfactu, pasa al siguiente cliente y idem y asi hasta el final.

Te pongo el código: (menos lo del filtro el resto me funciona como yo quiero) deberia despreciar los registros que no son de la fecha que le he indicado.

Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim NomRecordset As String
Dim UltFra As Long
Dim DataFiMes As Date
Dim SituClient As Integer

NomRecordset = "Factura para el Cliente"
UltFra = DMax("NumFactu", "Intro Trabajos")
DataFiMes=FiMes (caja de texto indepen. )
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(NomRecordset)


Filtre = "([Factura para el Cliente].DataFactura " & "=" & " # " & DataFiMes & " # " & " )"
rst.Filter = Filtre
Set rst1 = rst.Clone (he añadido lo que me dijiste, no se si correctamente!)

While Not rst1.EOF
SituClient = rst1!CodiClient

Do While rst1!CodiClient = SituClient
If rst1!NumFactu = 0 Then
rst1.Edit
rst1!Facturar = True
rst1!NumFactu = UltFra + 1
rst1.Update
End If
rst1.MoveNext
Loop
UltFra = UltFra + 1
Wend
rst1.Close
Set rst1 = Nothing
Set dbs = Nothing

End Sub

Ya no se si es error en la expresion o que, si es asi no me lo indica , no me da error!.

Si puedes, agradezco ayuda!
Hasta pronto!
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:Problemas con Filtro en Recordset. Doy detalles

Publicado por Chea (1015 intervenciones) el 12/11/2006 15:44:10
No vale usar Clone, pues lo que creas es un clon, es decir un Recordset idéntico.
En DAO debes crear un nuevo recordset a partir del filtrado:

...
rst.Filter = Filtre
rst1 = rst.OpenRecordset
...

Por otro lado, me parece que te falta dimensionar rst1.

Tengo que salir de viaje en un momento y no sé si dispondré de internet, así que no tengo tiempo para extenderme más en esta respuesta, pero, al menos, quiero dejar apuntado que creo que sería más sencillo y eficaz usar una consulta de actualización en vez de hacerlo con recordsets.

Saludos
JoséBengoechea Ibaceta
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:Problemas con Filtro en Recordset. Doy detalles

Publicado por Cemer (44 intervenciones) el 13/11/2006 08:31:51
Te cuento, no me funcionaba el tema de establecer filtro y volver abrir otra vez el recordset, me decia error conversión de tipos, no se, he buscado otra opción y lo pude soucionar por código añadiendo otro If más.

Gràcias de todas formas, acabare de intentar solucionar lo del filtro para saber bien como funciona.

Hasta otra!
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