Access - ayuda con una macro

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

ayuda con una macro

Publicado por Ruben (6 intervenciones) el 13/11/2019 00:52:54
Hola buenos días, tardes, noches,

Alguien me puede ayudar con una macro que no consigo que me funcione
Paso base de datos de pruebas es pequeña y básica ejecuten imprimir del 1 al 3 y da error

por favor lo agradeceria
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

ayuda con una macro

Publicado por Anonimo (3320 intervenciones) el 13/11/2019 13:45:32
Las macros son un método un tanto limitado, en muchas ocasiones dan diez o mas vueltas para lograr lo que con un par de líneas se logra con VBA (por ello no suelen ser mas que una breve etapa en la vida de que los que dan sus primeros pasos).

Lo ideal seria que en el formulario que se utiliza para seleccionar que registros se desea imprimir, se solicitaran el primero y el ultimo (que pueden ser el mismo: primero = ultimo).

La macro comenzaría enviado a la impresora el primer informe, añadiría una unidad al ID y lo compararía con el dato (en el formulario) que guardase el ultimo de ser igual o inferior generaría el informe correspondiente y repetiría la acción mientras el Id actual (el que se va incrementando y se envía a imprimir) no fuese superior al ultimo.

He utilizado la opción de convertir macros a VBA y sale esto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
'------------------------------------------------------------
' consulta_para_buscar
'
'------------------------------------------------------------
Function consulta_para_buscar()
On Error GoTo consulta_para_buscar_Err
 
    With CodeContextObject
        TempVars.Add "bbpedido", .busidpedido
        If (IsNull(TempVars!bbpedido)) Then
            Beep
            MsgBox "necesita escribir un id de pedido", vbExclamation, "mensaje"
        Else
            DoCmd.OpenQuery "PEDIDO", acViewNormal, acEdit
            DoCmd.SearchForRecord acQuery, "PEDIDO", acFirst, "[IdPedido] ='" & TempVars!busidpedido & "'"
            TempVars.Remove "bbpedido"
            If (.PEDIDO!IdCliente = 2) Then
                DoCmd.OpenReport "informe2", acViewNormal, "", "", acNormal
                DoCmd.OpenReport "informe1", acViewNormal, "", "", acNormal
            Else
            End If
        End If
        DoCmd.Close acQuery, "PEDIDO"
        DoCmd.Close acForm, "consulta impresion"
    End With
 
 
consulta_para_buscar_Exit:
    Exit Function
 
consulta_para_buscar_Err:
    MsgBox Error$
    Resume consulta_para_buscar_Exit
 
End Function

Lo que viene diciendo es que si el ID del registro es el numero dos, que imprima los dos informes ¿Dónde aparece una referencia a un numero 3?
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

ayuda con una macro

Publicado por ruben (6 intervenciones) el 13/11/2019 18:34:05
perdona estaba mal la macro

seria así

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
'------------------------------------------------------------
' consulta_para_buscar
'
'------------------------------------------------------------
Function consulta_para_buscar()
On Error GoTo consulta_para_buscar_Err
 
    With CodeContextObject
        TempVars.Add "bbpedido", .busidpedido
        If (IsNull(TempVars!bbpedido)) Then
            Beep
            MsgBox "necesita escribir un id de pedido", vbExclamation, "mensaje"
        Else
            DoCmd.OpenQuery "PEDIDO", acViewNormal, acEdit
            DoCmd.SearchForRecord acQuery, "PEDIDO", acFirst, "[IdPedido] ='" & TempVars!busidpedido & "'"
            TempVars.Remove "bbpedido"
            If (.PEDIDO!IdCliente = 2) Then
                DoCmd.OpenReport "informe2", acViewNormal, "", "", acNormal
            Else
                DoCmd.OpenReport "informe1", acViewNormal, "", "", acNormal
            End If
        End If
        DoCmd.Close acQuery, "PEDIDO"
        DoCmd.Close acForm, "consulta impresion"
    End With
 
 
consulta_para_buscar_Exit:
    Exit Function
 
consulta_para_buscar_Err:
    MsgBox Error$
    Resume consulta_para_buscar_Exit
 
End Function
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
sin imagen de perfil
Val: 8
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

ayuda con una macro

Publicado por Ruben (6 intervenciones) el 14/11/2019 00:32:18
perdona mas o menos he conseguido hacer lo que quería pero me sigue dando un error te importaría mirarlo y decirme donde esta el fallo para poder arreglarlo
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