Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

búsqueda entre 2 precios y 2 fechas

Estas en el tema de búsqueda entre 2 precios y 2 fechas en el foro de Visual Basic clásico en Foros del Web. Hola! Tengo un formulario con botones de búsqueda. La búsqueda se reflejará en un datagrid. La búsqueda entre 2 fechas, la tengo así = Código: ...
  #1 (permalink)  
Antiguo 02/08/2011, 10:00
 
Fecha de Ingreso: julio-2011
Mensajes: 34
Antigüedad: 13 años, 3 meses
Puntos: 0
búsqueda entre 2 precios y 2 fechas

Hola! Tengo un formulario con botones de búsqueda. La búsqueda se reflejará en un datagrid. La búsqueda entre 2 fechas, la tengo así =

Código:
Private Sub Command5_Click()

    Dim fechaini As Date
    Dim fechatope As Date
    'Si los textbox están llenos
    If Len(Trim(Text4.Text)) >= 1 And Len(Trim(Text5.Text)) >= 1 Then
        
        'función que comprueba si el parámetro enviado corresponde o no con un valor convertible en Date.
        If IsDate(Text4) And IsDate(Text5) Then
            fechaini = "16/06/2006"
            fechatope = Date
            If Text4 < fechaini Or Text5 < fechaini Then
                MsgBox "No se puede ingresar una fecha anterior al 16/06/2006", vbInformation, "Atención"
                
            ElseIf Text4 > fechatope Or Text5 > fechatope Then
                MsgBox "No se puede ingresar una fecha posterior a la de hoy", vbInformation, "Atención"
                
            Else
                'realiza búsqueda
                Adodc1.Recordset.Filter = "Fecha_Ingreso >= #" & Format(Text4, "dd/mm/yyyy") & "# and Fecha_Ingreso <= #" & Format(Text5, "dd/mm/yyyy") & "#"
            End If
        Else
            MsgBox "Dato ingresado no es fecha", vbInformation, "Atención"
            
        End If
    Else
        MsgBox "No ingresó datos"
    End If   

End Sub
Funciona. Pero lo que quisiera es que en el datagrid, aparezcan las fechas ordenadas de menor a mayor. Porque aparecen ordenadas por ID. ¿Cómo puedo hacerlo?

Con respecto a la Búsqueda entre 2 precios tengo esto=

Código:
Private Sub Command4_Click()
If Len(Trim(Text3.Text)) >= 1 and Len(Trim(Text6.Text))>=1 Then
    Adodc1.Recordset.Filter = "Precio_Artículo  >=  #" & Format(Text3) & "# and Precio_Artículo <= #" & Format(Text6) & "#"
Else
    Adodc1.Refresh
End If
End Sub
También busca. Copie la búsqueda un poco de la búsqueda de fechas, pero no se si estará bien(por ejemplo lo de FORMAT). Igual me buscó los precios que le puse. Lo que quisiera, al igual que en la búsqueda de fechas, es que aparezcan los precios de menor a mayor, porque aparecen ordenados por ID. Y lo que no busca, son precios con decimales. Me gustaría validar que ingrese hasta 2 decimales(ejemplo 3,20) y que pueda realizar la búsqueda con decimales también.

Muchas gracias!

Última edición por sielfi; 02/08/2011 a las 10:07
  #2 (permalink)  
Antiguo 02/08/2011, 11:25
Avatar de Kruzado  
Fecha de Ingreso: marzo-2007
Mensajes: 307
Antigüedad: 17 años, 8 meses
Puntos: 17
Respuesta: búsqueda entre 2 precios y 2 fechas

en cuanto al orden, tienes que asignarselo en el select, por ejemplo : select * from tutabla where fecha=01-01-2011 ORDER BY precio

en cuanto al filtro con los precios con decimales,


Adodc1.Recordset.Filter = "Precio_Artículo >= " & replace((Format(Text3,"#########,00"),",",".") & " and Precio_Artículo <= " & replace(Format(Text6,"#########,00"),",",".")

la funcion replace te cambia las comas decimaes por puntos para que no produzca un error de campos o sintaxis, OJO tu tenias el campo precio con #, estos se utilizan solo para las fechas, para numeros va sin nada y para cadenas va con cremilla '
  #3 (permalink)  
Antiguo 02/08/2011, 13:01
 
Fecha de Ingreso: julio-2011
Mensajes: 34
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: búsqueda entre 2 precios y 2 fechas

Gracias por responderme. La búsqueda de precios no me funcionó. Buscaba decimales pero algunos no los encontraba. Por ejemplo había 2 precios= 8,4 y 8,52. El 8,52 lo encontraba, pero al de 8,4 no.

Y con respecto al select, no manejo sql , solo el lenguaje de vb 6.0.
  #4 (permalink)  
Antiguo 02/08/2011, 13:35
Avatar de Kruzado  
Fecha de Ingreso: marzo-2007
Mensajes: 307
Antigüedad: 17 años, 8 meses
Puntos: 17
Respuesta: búsqueda entre 2 precios y 2 fechas

cuales son los criterios de seleccion y que regostro dejo afuera que supuestamente coincidian???? ahora por ejemplo si el precio de 8,4 es efectivamente 8,4 o es 8,35 (aprox 8,4)????

lo otro, cuando te hablo de tu sentencia sql, es el codigo que usas para la conexion de tu base de datos al control adodc, si kieres pega ese codigo aca y podemos ver que se puede hacer ;)
  #5 (permalink)  
Antiguo 02/08/2011, 15:01
 
Fecha de Ingreso: julio-2011
Mensajes: 34
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: búsqueda entre 2 precios y 2 fechas

En un textbox puse 2 y en el otro 9. En el datagrid aparecieron todos los precios que había entre ese intervalo( que eran 5, 7, 8.40, 8.52). Luego probé buscar entre 2 y 8.52. Me aparecían los mismos que antes. Osea bien. Luego probé buscar entre 5 y 8.40 , pero aparecían el 5 y el 7.

El 8,4 es efectivamente 8,40.

Y lo de sql, no te paso el código porque la conexión la hice a través de las propiedades, no escribí código para realizar la conexión. Igualmente, en todos los formularios que diseñé, en ninguno uso sql, porque no tengo experiencia.
  #6 (permalink)  
Antiguo 02/08/2011, 15:23
Avatar de Kruzado  
Fecha de Ingreso: marzo-2007
Mensajes: 307
Antigüedad: 17 años, 8 meses
Puntos: 17
Respuesta: búsqueda entre 2 precios y 2 fechas

mmm probaste entre 5 y 8,41???? porke insisto en el tema de la aproximacion.....
  #7 (permalink)  
Antiguo 02/08/2011, 16:20
 
Fecha de Ingreso: julio-2011
Mensajes: 34
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: búsqueda entre 2 precios y 2 fechas

Hola Kruzado. Si probé. Pero igual no te hagas problema. Con el código que me diste, le saqué algunas cositas y realiza la búsqueda bien. Le validé que no puede ingresar comas, sino puntos, si es que el usuario desea ingresar precios con decimales. Y busca bien.

Así que te agradezco un montón por haberte tomado la molestia de responder todos mis mensajes y rápido incluso. Fuiste el único que me contestó. Y lo que me explicaste me sirvió. Muchísimas gracias!

Etiquetas: datagrid, fechas, precios, vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:33.