none
Ayuda con Filtro RRS feed

  • Pregunta

  • Hola

    Estoy utilizando el metodo a continuacion para filtrar:

    Private Sub Command2_Click()
    
    If Text3.Text <> "" And Text4.Text <> "" Then
      filtro= "NºSERIE >= '" & Val(Text3.Text) & "'AND Nº SERIE <= '" & Val(Text4.Text) & "'"
    ElseIf Text3.Text <> "" And Text4.Text = "" Then
        filtro= "NºSERIE = " '& VAL(Text3.Text)
    ElseIf Text3.Text = "" And Text4.Text = "" Then
        filtro = ""
    End If
    
    Data1.Recordset.Filter = filtro
    
    End Sub
    

    El caso es que utilizo el control MSFlexGrid para mostrar los datos, pero al aplicarle los filtros... no ocurre nada... olvide mencionar, cuando ejecuto mi aplicación, hago una consulta a la BD, para esto utilizo un recordset y luego a este se lo asigno al recordset del control MSFlexgrid(que está asociado a DATA1, control DATA) y felizmente me muestra los datos... el problema viene al intentar filtrar estos datos, pues no ocurre nada, no se filtra, no lanza error... tal parece que se burla jajaja... eh intentado armar directamente un string que contenga estáticamente un filtro y pasárselo, pero nada, he tratado, filtrando el recordset donde originalmente obtuve la consulta desde la BD y luego volver a asignar este al recorset de Data1 asociado al MSFlexGrid y no ocurre nada....

    Podría alguien decirme que estoy haciendo mal? Saludos y gracias por la ayuda que me puedan dar.

     

    viernes, 27 de enero de 2012 19:37

Respuestas

  • Pueden ser lo siguientes factores

    1. Este campo este incorrecto Nº SERIE

    2.La condicion no son las correctas

     

    Ahora bien miro que en el filtro le pones un rango de valores >= and <= pero el filtro lo tienes todo como caracter , asi que fijate el tipo del campo como lo tienes declarado , ahora bien si el campo es string en vez de utilizar rango utiliz LIKE en el filtro

     

    te dejo este link Para que revises filtrar-datagrid-con-codigo-de-ado

    Capacitaciones Corporativas
    Capacitaciones Corporativas
    sábado, 28 de enero de 2012 5:51
  • Yo particularmente no uso el control data. Tampoco asigno recordsource al flexgird, lo lleno ' a mano'.

    Toma en cuenta la observación que te hacen sobre ese campo que tiene espacio en el nombre. Debes enmascararlo con corchetes: [Nº SERIE] <=.....

    ahora, luego de aplicar el filtro al recordset, limpia la rejilla (flexgrid) y vuelve a asignarle el recordset filtrado; refréscala.

     

    • Marcado como respuesta Cruznick lunes, 30 de enero de 2012 13:00
    sábado, 28 de enero de 2012 17:40

Todas las respuestas

  • Pueden ser lo siguientes factores

    1. Este campo este incorrecto Nº SERIE

    2.La condicion no son las correctas

     

    Ahora bien miro que en el filtro le pones un rango de valores >= and <= pero el filtro lo tienes todo como caracter , asi que fijate el tipo del campo como lo tienes declarado , ahora bien si el campo es string en vez de utilizar rango utiliz LIKE en el filtro

     

    te dejo este link Para que revises filtrar-datagrid-con-codigo-de-ado

    Capacitaciones Corporativas
    Capacitaciones Corporativas
    sábado, 28 de enero de 2012 5:51
  • Yo particularmente no uso el control data. Tampoco asigno recordsource al flexgird, lo lleno ' a mano'.

    Toma en cuenta la observación que te hacen sobre ese campo que tiene espacio en el nombre. Debes enmascararlo con corchetes: [Nº SERIE] <=.....

    ahora, luego de aplicar el filtro al recordset, limpia la rejilla (flexgrid) y vuelve a asignarle el recordset filtrado; refréscala.

     

    • Marcado como respuesta Cruznick lunes, 30 de enero de 2012 13:00
    sábado, 28 de enero de 2012 17:40
  • Hola

    Gracias a ambos por la ayuda, al final me he decidido por realizar las consultas nuevamente a la BD... saludos

    lunes, 30 de enero de 2012 12:59