Filtros con recordset

Esto queriendo realizar un filtrado de un recordset entre unas fechas. Lo que no puedo hacer es, a ese filtro decirle que selecciones los registros entre dos criterios
Entonces lo que estoy haciendo es que me filtre los registros >= que la fecha inicial.
Luego descartos los que superan la fecha final.
La función pública de filtrado es la siguiente (aquí me faltaría agregar la opción de <= pero he probado varias formas y nada):
Public Function FiltraRec(rstrec As ADODB.Recordset, _
strReca As String, strRec As Date) As ADODB.Recordset
rstrec.Filter = strReca & " >= '" & strRec & "'"
Set FiltraRec = rstrec
End Function
Aquí en el formulario el usuario ingresó las fechas de selección de registros y están en estas variables:
fech_des = Format(desdet.Text, "dd/mm/yyyy")
fech_has = Format(hasta.Text, "dd/mm/yyyy")
Al nuevo recorset filtrado lo obtengo de esta manera y aquí es donde debería decirle que también use fech_has
Set rstrec = FiltraRec(DE1.rsrecauda, "FECHA", fech_des)
Espero tu respuesta, me imagino que debe ser sencillo una búsqueda entre dos opciones. Pero para mí hasta ahora ha sido un mundo.

1 respuesta

Respuesta
1
Un consejo:
Acostumbrate a usar sentencias sql, en vez de las propiedades de ado.
la sentencia sql sería: select * from campo where fecha between " & fecha_des & " and " & fecha_has & "
si no querés usar la sentencia, probá poneniendo rstrec.filter = "between " & fecha_des & " and " & fecha_has & ""
Aunque no creo que funcione...
Cualquier cosa avisame que busco en internet, ya que no uso las propiedades de ado
Solo uso open, close y execute; nada más
Entiendo lo que me decís del sql. Te aprovecho entonces para consultarte donde consigo información o descargar un curso sobre sentencias sql en visual
en http://programacion.com/tutorial/sql/ hay un buen curso de tsql
Disculpame la demora
Andres, estuve viendo la página del curso sql y me estoy poniendo a estudiar.
Te agradezco el link. Una última consulta sería como hacer interactuar el sql en mi proyecto de visual. ¿Por ejemplo en el código que te pase del filtrado como inserto la sentencia sql para que me devuelva un recordset con los registros que deseo?
Gracias
Tenés que utilizar el método Open; la sentencia sería así:
Recordset. Open "select * from ...", conexion, adopenstatic, adlockoptimistic
Los últimos 2 parámetros son el tipo de bloqueo, pero con esos andan bien

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas