Ayuda para filtrado de datos desde una bd access
Hola:
Comento mi problema, estoy realizando un punto de ventas al cual se accesa por diferentes usuarios, ya casi lo tengo terminado, solo que me enfrento con una complicación para hacer el cierre de caja(es decir cuanto vendió cada usuario por fecha), tengo en un form 2 DTPicker para seleccionar la búsqueda entre dos fechas(fecha_a y fecha_b), un combo box que he llenado que contiene nombres de los vendedores, otro combo box con el tipo de producto, un data para cargar los datos de la tabla ventas, otro data para cargar los nombres de usuarios y un command para hacer la búsqueda,
finalmente necesito sumar los valores obtenidos(precioVenta) para que refleje la venta por fecha, por vendedor y por producto con su respectivo total.
Ya puedo realizar el filtrado mediante fechas, pero lo que no logro hacer es el filtrado incluyendo nombre de usuario y tipo de producto, aquí el código(se que no es la mejor manera de programar pero fue lo que más se me adecuo ya que soy novato en esto, suplico su comprensión):
'__________________________________________________________________
'ban es una bandera
Dim ban As Integer
'AYU ES UNA VARIABLE A LA QUE SE ASIGNA UN VALOR EN FUNCION
'DE EL CARACTER QUE SEA CAPTURADO, SIRVE PARA CODIFICAR
'LA LLAVE DE ACCESO
Dim AYU As String
Function cargar()
'se carga la tabla usuarios
Me.dtaUsuarios.RecordSource = "select * from usuarios"
Me.dtaUsuarios.Refresh
Do Until Me.dtaUsuarios.Recordset.EOF
Me.cmbNuevo.AddItem (Me.dtaUsuarios.Recordset.Fields(1))
Me.dtaUsuarios.Recordset.MoveNext
Loop
End Function
Private Sub cmbNuevo_Click()
'se llena el combo con los usuarios
Me.dtaUsuarios.RecordSource = "select * from usuarios where nombreUsuario = '" & Me.cmbNuevo.Text & "'"
Me.dtaUsuarios.Refresh
If Not Me.dtaUsuarios.Recordset.EOF Then
usuarioCorte = Me.dtaUsuarios.Recordset.Fields(1)
End If
End Sub
Private Sub com_Click()
'se cargan los datos de la base
Me.dtaUsuarios.RecordSource = "select * from usuarios where nombreUsuario = '" & com.Text & "'"
Me.dtaUsuarios.Refresh
If Not Me.dtaUsuarios.Recordset.EOF Then
usuarioCorte = Me.dtaUsuarios.Recordset.Fields(1)
End If
End Sub
Private Sub cmbTipo_Click()
importancia = Me.cmbTipo.Text
End Sub
Private Sub cmdAgregar_Click()
Me.dtaReporte.RecordSource = "select * from ventas where fechaVenta between #" & Format(fecha_a, "mm/dd/yyyy") & "# and #" & Format(fecha_b, "mm/dd/yyyy") & "#"
Me.dtaReporte.Refresh
Me.MSFlexGrid1.Refresh
End Sub
Private Sub dtFecha01_Change()
fecha_a = Me.dtFecha01.Value
End Sub
Private Sub dtFecha02_Change()
fecha_b = Me.dtFecha02.Value
End Sub
Private Sub Form_Load()
Dim aux As Integer
Dim fila As Integer
Call cargar
End Sub
Private Sub mnuabandonacierre_Click()
Call sistemaCierre
End Sub
Private Sub mnusalircierredsd_Click()
Unload Me
End Sub
Private Sub Timer1_Timer()
If ban = 0 Then
Call cargar
ban = 1
End If
End Sub
Comento mi problema, estoy realizando un punto de ventas al cual se accesa por diferentes usuarios, ya casi lo tengo terminado, solo que me enfrento con una complicación para hacer el cierre de caja(es decir cuanto vendió cada usuario por fecha), tengo en un form 2 DTPicker para seleccionar la búsqueda entre dos fechas(fecha_a y fecha_b), un combo box que he llenado que contiene nombres de los vendedores, otro combo box con el tipo de producto, un data para cargar los datos de la tabla ventas, otro data para cargar los nombres de usuarios y un command para hacer la búsqueda,
finalmente necesito sumar los valores obtenidos(precioVenta) para que refleje la venta por fecha, por vendedor y por producto con su respectivo total.
Ya puedo realizar el filtrado mediante fechas, pero lo que no logro hacer es el filtrado incluyendo nombre de usuario y tipo de producto, aquí el código(se que no es la mejor manera de programar pero fue lo que más se me adecuo ya que soy novato en esto, suplico su comprensión):
'__________________________________________________________________
'ban es una bandera
Dim ban As Integer
'AYU ES UNA VARIABLE A LA QUE SE ASIGNA UN VALOR EN FUNCION
'DE EL CARACTER QUE SEA CAPTURADO, SIRVE PARA CODIFICAR
'LA LLAVE DE ACCESO
Dim AYU As String
Function cargar()
'se carga la tabla usuarios
Me.dtaUsuarios.RecordSource = "select * from usuarios"
Me.dtaUsuarios.Refresh
Do Until Me.dtaUsuarios.Recordset.EOF
Me.cmbNuevo.AddItem (Me.dtaUsuarios.Recordset.Fields(1))
Me.dtaUsuarios.Recordset.MoveNext
Loop
End Function
Private Sub cmbNuevo_Click()
'se llena el combo con los usuarios
Me.dtaUsuarios.RecordSource = "select * from usuarios where nombreUsuario = '" & Me.cmbNuevo.Text & "'"
Me.dtaUsuarios.Refresh
If Not Me.dtaUsuarios.Recordset.EOF Then
usuarioCorte = Me.dtaUsuarios.Recordset.Fields(1)
End If
End Sub
Private Sub com_Click()
'se cargan los datos de la base
Me.dtaUsuarios.RecordSource = "select * from usuarios where nombreUsuario = '" & com.Text & "'"
Me.dtaUsuarios.Refresh
If Not Me.dtaUsuarios.Recordset.EOF Then
usuarioCorte = Me.dtaUsuarios.Recordset.Fields(1)
End If
End Sub
Private Sub cmbTipo_Click()
importancia = Me.cmbTipo.Text
End Sub
Private Sub cmdAgregar_Click()
Me.dtaReporte.RecordSource = "select * from ventas where fechaVenta between #" & Format(fecha_a, "mm/dd/yyyy") & "# and #" & Format(fecha_b, "mm/dd/yyyy") & "#"
Me.dtaReporte.Refresh
Me.MSFlexGrid1.Refresh
End Sub
Private Sub dtFecha01_Change()
fecha_a = Me.dtFecha01.Value
End Sub
Private Sub dtFecha02_Change()
fecha_b = Me.dtFecha02.Value
End Sub
Private Sub Form_Load()
Dim aux As Integer
Dim fila As Integer
Call cargar
End Sub
Private Sub mnuabandonacierre_Click()
Call sistemaCierre
End Sub
Private Sub mnusalircierredsd_Click()
Unload Me
End Sub
Private Sub Timer1_Timer()
If ban = 0 Then
Call cargar
ban = 1
End If
End Sub
1 Respuesta
Respuesta de rock76
1