Access - Consulta en un formulario por Programación

 
Vista:

Consulta en un formulario por Programación

Publicado por Nuevonombre (1 intervención) el 19/02/2007 10:49:50
Hola buenos días, tengo que hacer varias consultas en un formulario para que me saque varios totales, en realidad son todos muy parecido cambiando varios datos para flitrar.

Tengo una tabla que se llama Pagos la cual tiene varios campos los que realmente me interesan son, Fecha, Proveedor, importe y Empresa.

- Fecha: Basicamente me interesa el año
- Proveedor: Puede ser de 0001 a 9999
- Importe: Cantidad pagada en factura
- Empresa: Son dos empresas 1 o 2 se lleba en control desde el mismo programa

El formulario se llama Pagos_Compras y en el tengo varios campos

- txtaño1: En este campo tengo que poder poner el año que yo quiera para que me de la cantidad total comprada a un proveedor.
- lblemp_1_a1: Este campo es el que tengo reservado para que me muestre la cantidad total comprada a los proveedores.

Con estos datos tengo que realizar varios filtrados, el primero y con ese para poder realizar el resto de filtrados es:

- Quiero que cuando ponga el año me diga que he comprado de la empresa 1 del proveedor 1000 al 4999

Espero que alguien me diga como lo puedo programar, son 60 totales los que tengo que poner en pantalla y con consultas hace que la base de datos vaya mucho mas lenta.

Si me dicen como lo puedo hacer subo un ejemplo para que lo vean mas claro.

Saludos y muchas gracias por la ayuda prestada.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Obtener total comprado a Proveedores de Empresa 1 para un año específico

Publicado por Alejandro (4142 intervenciones) el 03/08/2023 17:18:27
Para realizar las consultas y obtener los totales que necesitas en el formulario Pagos_Compras, puedes utilizar consultas SQL que filtren y agrupen los datos según tus criterios. A continuación, te presento el enfoque general para obtener el total comprado a un proveedor específico de la empresa 1 para un año dado. Luego, puedes replicar este enfoque para los demás casos que necesitas.

Supongamos que el campo "Fecha" en la tabla Pagos es de tipo "Fecha/Hora". Para obtener el total comprado a un proveedor específico de la empresa 1 para un año dado (por ejemplo, proveedores del 1000 al 4999), puedes seguir estos pasos:

1. Abre el formulario Pagos_Compras en modo diseño.

2. Asegúrate de que los campos txtaño1 y lblemp_1_a1 estén presentes en el formulario.

3. Haz doble clic en el campo txtaño1 para abrir su evento "Después de actualizar".

4. En el evento "Después de actualizar" de txtaño1, agrega el siguiente código VBA:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub txtaño1_AfterUpdate()
    Dim strSQL As String
    Dim totalComprado As Currency
 
    ' Asegúrate de que el campo txtaño1 no esté vacío
    If Not IsNull(Me.txtaño1.Value) Then
        ' Construye la consulta SQL para obtener el total comprado a los proveedores del 1000 al 4999
        strSQL = "SELECT SUM(Importe) AS TotalComprado " & _
                 "FROM Pagos " & _
                 "WHERE Year(Fecha) = " & Me.txtaño1.Value & " " & _
                 "AND Proveedor BETWEEN 1000 AND 4999 " & _
                 "AND Empresa = 1;"
 
        ' Ejecuta la consulta y obtén el resultado
        totalComprado = DLookup("TotalComprado", "Pagos", "Year(Fecha) = " & Me.txtaño1.Value & " AND Proveedor BETWEEN 1000 AND 4999 AND Empresa = 1")
 
        ' Muestra el total en el campo lblemp_1_a1
        Me.lblemp_1_a1.Caption = "Total comprado a proveedores 1000-4999, empresa 1: " & totalComprado
    End If
End Sub

5. Guarda el formulario y ciérralo.

Con este código, cuando ingreses un año en el campo txtaño1 y salgas de ese campo, el evento "Después de actualizar" se activará. El código ejecutará la consulta SQL para obtener el total comprado a los proveedores del 1000 al 4999 de la empresa 1 para el año especificado. Luego, mostrará el resultado en el campo lblemp_1_a1.

Para los otros casos de totales que necesitas, simplemente repite el proceso para cada uno de los campos lblemp_X_aX y txtañoX, ajustando los criterios de filtrado según corresponda.

Espero que esto te ayude a obtener los totales que necesitas en el formulario Pagos_Compras. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar