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

Filtrar con datos en un Combobox

Estas en el tema de Filtrar con datos en un Combobox en el foro de Visual Basic clásico en Foros del Web. Hola de nuevo y aqui otraves con molestias ojala me puedan ayudar, en mi programa en VB6 mando llamar los reportes hechos en data report ...
  #1 (permalink)  
Antiguo 05/01/2009, 12:41
 
Fecha de Ingreso: octubre-2008
Mensajes: 36
Antigüedad: 15 años, 6 meses
Puntos: 0
Filtrar con datos en un Combobox

Hola de nuevo y aqui otraves con molestias ojala me puedan ayudar, en mi programa en VB6 mando llamar los reportes hechos en data report y los filtro mediante un dato seleccionado en un combobox y las fechas en 2 datapiker, ok aqui todo muy bien.

En el combobox selecciona el Id de los usuarios para que me mande las ventas de ese usuario en un rango de fechas, mi problema es como le hago para que si no selecciono ningun Id me mande el reporte con las ventas de todos los usuarios.

Asi llamo el reporte:

Código:
Private Sub cmdaceptar_Click()

Dim dataventa As ADODB.Command
Dim Entorno As dataventa

usuario = cbxusuarios.Text
fechaini = dtpdel.Value
fechafin = dtpal.Value

Set Entorno = New dataventa

Entorno.dataventa.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=\\195.168.1.1\Estacionamiento\PV\venta1.mdb"
    
Set dataventa = Entorno.Commands("acmcortez_Grouping")
dataventa.CommandType = adCmdText
dataventa.CommandText = "SHAPE {SELECT CorteZ.Fecha_Corte, CorteZ.Cantidad_Folios, CorteZ.Folio_Cortez, CorteZ.Total_CorteZ, Usuarios.Nombre, Usuarios.Apellido_Paterno, CorteZ.Id_Usuario, Usuarios.Id_Usuario AS Expr1 FROM CorteZ, Usuarios WHERE CorteZ.Id_Usuario = Usuarios.Id_Usuario and CorteZ.Fecha_Corte between #" & Format(fechaini, "mm/dd/yyyy") & "# and #" & Format(fechafin, "mm/dd/yyyy") & "# and Usuarios.Id_Usuario = '" & usuario & "'} AS acmcortez COMPUTE acmcortez, SUM(acmcortez.'Total_CorteZ') AS SumaTotal BY 'Id_Usuario'"
    Load rptvtaxusuario
    rptvtaxusuario.Show 1, frmventausuario
    
Unload Me

End Sub

Private Sub cmdsalir_Click()
Unload Me
End Sub

Private Sub Form_Load()

Set rs = New ADODB.Recordset

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=\\195.168.1.1\Estacionamiento\PV\venta1.mdb"

rs.Source = "Venta"
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic

rs.Open "select Id_Usuario from Usuarios", cn

Do While Not rs.EOF
    cbxusuarios.AddItem rs.Fields("Id_Usuario")
    rs.MoveNext
Loop
rs.Close
cn.Close

dtpdel.Value = Now
dtpal.Value = Now

End Sub
Espero me puedan ayudar de antemano gracias
  #2 (permalink)  
Antiguo 05/01/2009, 13:01
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 5 meses
Puntos: 19
Respuesta: Filtrar con datos en un Combobox

Fijate si se entiende

Código:
Private Sub cmdaceptar_Click()

Dim dataventa As ADODB.Command
Dim Entorno As dataventa

usuario = cbxusuarios.List(cbxusuarios.ListIndex)   'Esto te lo modifique
fechaini = dtpdel.Value
fechafin = dtpal.Value

Set Entorno = New dataventa

Entorno.dataventa.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=\\195.168.1.1\Estacionamiento\PV\venta1.mdb"
    
Set dataventa = Entorno.Commands("acmcortez_Grouping")
dataventa.CommandType = adCmdText
'Aca te lo modifique tambien
If usuario <> "" Then   'Si selecciono algo, entonces usuario tiene un valor (quiere decir que hay que filtrar por usuario)
    dataventa.CommandText = "SHAPE {SELECT CorteZ.Fecha_Corte, CorteZ.Cantidad_Folios, CorteZ.Folio_Cortez, CorteZ.Total_CorteZ, Usuarios.Nombre, Usuarios.Apellido_Paterno, CorteZ.Id_Usuario, Usuarios.Id_Usuario AS Expr1 FROM CorteZ, Usuarios WHERE CorteZ.Id_Usuario = Usuarios.Id_Usuario and CorteZ.Fecha_Corte between #" & Format(fechaini, "mm/dd/yyyy") & "# and #" & Format(fechafin, "mm/dd/yyyy") & "# and Usuarios.Id_Usuario = '" & usuario & "'} AS acmcortez COMPUTE acmcortez, SUM(acmcortez.'Total_CorteZ') AS SumaTotal BY 'Id_Usuario'"
Else
    'en este caso, como no selecciono nada, que no filtre por usuario
    dataventa.CommandText = "SHAPE {SELECT CorteZ.Fecha_Corte, CorteZ.Cantidad_Folios, CorteZ.Folio_Cortez, CorteZ.Total_CorteZ, Usuarios.Nombre, Usuarios.Apellido_Paterno, CorteZ.Id_Usuario, Usuarios.Id_Usuario AS Expr1 FROM CorteZ, Usuarios WHERE CorteZ.Id_Usuario = Usuarios.Id_Usuario and CorteZ.Fecha_Corte between #" & Format(fechaini, "mm/dd/yyyy") & "# and #" & Format(fechafin, "mm/dd/yyyy") & "#, SUM(acmcortez.'Total_CorteZ') AS SumaTotal BY 'Id_Usuario'"
End If
    Load rptvtaxusuario
    rptvtaxusuario.Show 1, frmventausuario
    
Unload Me

End Sub
  #3 (permalink)  
Antiguo 05/01/2009, 13:40
 
Fecha de Ingreso: octubre-2008
Mensajes: 36
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Filtrar con datos en un Combobox

Muchas gracias Culd me funciono de maravilla, nada mas una pregunta, la modificacion que le hiciste en el conbobox

usuario = cbxusuarios.List(cbxusuarios.ListIndex) 'Esto te lo modifique

que significa?, para saber que es y no solo hacerlo asi por que me lo digiste

Gracias de nuevo
  #4 (permalink)  
Antiguo 05/01/2009, 14:51
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 5 meses
Puntos: 19
Respuesta: Filtrar con datos en un Combobox

Cita:
Iniciado por kikevar Ver Mensaje
Muchas gracias Culd me funciono de maravilla, nada mas una pregunta, la modificacion que le hiciste en el conbobox

usuario = cbxusuarios.List(cbxusuarios.ListIndex) 'Esto te lo modifique

que significa?, para saber que es y no solo hacerlo asi por que me lo digiste

Gracias de nuevo
Vos estabas usando asi:

usuario = cbxusuarios.Text

Lo que hace es asignar el valor de texto que tiene el combo... Eso es un problema a la hora si el usuario escribe algo manualmente que no es lo que incluida el combo... o si por default vos por ejemplo pones "Seleccione una opcion" va a salir eso... En cambio de la forma que yo te puse si la persona escribio algo no sale nada... Es para evitar errores.
  #5 (permalink)  
Antiguo 05/01/2009, 15:13
 
Fecha de Ingreso: octubre-2008
Mensajes: 36
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Filtrar con datos en un Combobox

Muchas gracias por tu ayuda y por aclararme la duda

Que tengas una tarde excelente
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 02:33.