SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: TasQuin en Martes 28 de Diciembre de 2004, 11:04

Título: Duda En Filtros Datareport
Publicado por: TasQuin en Martes 28 de Diciembre de 2004, 11:04
:huh: mi duda es como hago para que cuando quiera hacer un reporte de una determinda fecha, por ejemple  "15/diciembre/2004" al "25/12/2004" las introduzca y estas me generren un reporte entre estas dos fechas.

Sé que con los filtros se puede hacer una consulta de tipo numérico, pero con un solo filtro. lo que no se es como meter esta consulta en un solo filtro ya que utilizo dos opciones en un solo filtro, pero no me acepta las opciones AND OR >= ó <=

hice esta consulta y me sale de maravilla. pero lo que quiero es que el usuario cuando introduzca estas dos fechas le genere solo los movimientos que se hicieron entre estos rangos-

Dim Inempleado As Long
Inempleado = (Val(InputBox("Esciba la Clave del Empleado", "Clave del Empledo")))
If Inempleado = 0 Then
    MsgBox ("No Se Escribío Una Clave Valida")
    Exit Sub
Else
    emple.Todo_Grouping
    emple.rsTodo_Grouping.Requery
    If emple.rsTodo_Grouping.EOF = True Then
        MsgBox ("El Empleado No Existe")
        emple.rsTodo_Grouping.Close
        Exit Sub
    End If
    REPTRABAJOS.Refresh
    REPTRABAJOS.Show
End If

 :comp:
Si Alguien me podria ayudar, de antemano Mil Gracias
Título: Re: Duda En Filtros Datareport
Publicado por: Brroz en Martes 28 de Diciembre de 2004, 17:22
Hola.

El código que muestras sirve realmente de poco... Analiza y estudia la clase instanciada por la variable 'emple' (que me da que no la has creado tu) y entérate de cómo funciona. Para filtrar datos usa una sentencia SQL con la correspondiente cláusula WHERE, que por supuesto admite los operadores AND, OR, <, >, etc, etc.

Suerte.
Título: Re: Duda En Filtros Datareport
Publicado por: TasQuin en Miércoles 29 de Diciembre de 2004, 08:08
;)  emple es la conexion que estoy haciendo con labase de datos lo que pasa es que son varios reportes los que estoy manejando, unas veces solo los uso por las tablas que se hacen referencia pero me dijeron que los agrupara a traves del dataenvironment y las consultas que se hacen a traves de SQL no si la puede regresar como generalmente la regresa en una consulta normal.

de todos modos lo estoy tratando de hacer a traves de lo que es el generador de SQL del environment, si pudieras decirme de un manual e sentecias para realizar las consultas
gracias
Título: Re: Duda En Filtros Datareport
Publicado por: Brroz en Miércoles 29 de Diciembre de 2004, 12:15
Hola.

Emple es una clase creada por alguien, pero desde luego no es una clase Connection de ADO. Y lo deduzco más que nada por este método al que llamas:
Código: Text
  1.  
  2. emple.Todo_Grouping
  3.  
  4.  

Aparte de esto no consigo comprender lo que intentas explicarme... pero te diré que una forma sencilla de ir aprendiendo SQL es usar access y su generador de consultas. Primero crea una consulta mediante la vista 'Diseño' y luego usa su vista 'SQL' para examinar la correspondiente sentencia.

Chao.
Título: Re: Duda En Filtros Datareport
Publicado por: TasQuin en Jueves 30 de Diciembre de 2004, 06:25
:o ya entendí, gracias la consulta la logre de este modo desde el comando de la conexion del dataenvironment

select * from produccion where situacion=? and fecha>=? and fecha<=?
 desde las "intrucciones de SQL"

"emple" es el nombre que le puse al DATAENVIRONMENT
"RevTer" se llama mi conexion "revizar terminados"
"RevTer_Grouping" donde los agrupe para que me mostrara en el reporte

y dentro del del botón coloque lo siguiente  :comp:

Private Sub Terminados_Click()
Dim M, N As String
 
M = InputBox("DESDE LA FECHA:", "Introduzca la Fecha", "Día/Mes/Año")
If (Len(M) > 8) Or (Len(M) <= 6) Or Len(M) = 7 Or M = "" Then
MsgBox "       No es Una fecha valida" & Chr(13) & "El Formato es (Dia/Mes/Año)", 0 + 64
Exit Sub
End If

N = InputBox("HASTA LA FECHA DE:", "Introduzca la Fecha", DateTime.Date)
If (Len(N) > 8) Or (Len(N) <= 6) Or Len(N) = 7 Or N = "" Then
MsgBox "       No es Una fecha valida" & Chr(13) & "El Formato es (Dia/Mes/Año)", 0 + 64
Exit Sub
End If

 
emple.RevTer_Grouping "ENTREGADO", M, N
REPENTREGADO.Refresh
REPENTREGADO.Show
End Sub


Gracias por dedicale un tiempo, ahora solo me gustaria que le hicieras unas observaciones y si pudieras me digeras en que puedo mejorar el aspecto de la programacion. Muchas gracias :rolleyes:
Título: Re: Duda En Filtros Datareport
Publicado por: Brroz en Lunes 3 de Enero de 2005, 12:17
Hola.

Bufff... aspecto de la programación... no sé muy bien a qué te refieres, pero me da que puede ser algo como para escribir un libro.

Lo que si te puedo decir sobre este código en concreto es que realices la validación y formateo (para curarte en salud) de fecha de esta forma:
Código: Text
  1.  
  2. Dim s1 As String
  3. s1 = InputBox(&#34;Introduce fecha&#34;, s1)
  4. If IsDate(s1) Then
  5.    s1 = Format(s1, &#34;dd/mm/yyyy&#34;)
  6. Else
  7.    MsgBox &#34;La fecha no me vale&#34;
  8. End If
  9.  
  10.  

Suerte.
Título: Re: Duda En Filtros Datareport
Publicado por: Sagutxo en Lunes 3 de Enero de 2005, 14:35
Salu2. Un comentario, en este caso supongo que ya no te compensa cambiar nada, pero lo recomendable para guardar fechas bajo mi punto de vista es un string guardado como AAAAMMDD, esto te ayudará mucho para posteriores consultas y rapidez.

Es solo una opinion :).
 :comp: