Access - Access 2013 se cuelga con error 2501 al cancelar exportación a pdf de un informe

   
Vista:

Access 2013 se cuelga con error 2501 al cancelar exportación a pdf de un informe

Publicado por Sergio s3rg10.fr@gmail.com (9 intervenciones) el 30/12/2014 02:14:52
Hola,
Estoy creando una aplicación en access en la que tengo que generar e imprimir facturas a pdf, el problema lo tengo en que al generarlas si me cancelan el proceso salta el dichoso error 2501, lo capture o no con "On Error GoTo.." la aplicación se me cuelga y tengo que reiniciar access. El resto del código me funciona correctamente, o eso creo

Este es el código:

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
Dim ruta As String
Dim strNombre As String
Dim i As Integer
Dim rst As DAO.Recordset
Dim Ssql As String
 
On Error GoTo err
 
 
Application.Echo False
 
ruta = Application.CurrentProject.Path & "\Facturas\"
 
Ssql = "SELECT TbCabeceraFactura.IdPropuesta, TbCabeceraFactura.RazonSocial, TbLineasdeFactura.id, TbLineasdeFactura.NFActura, TbLineasdeFactura.FechaFactura, TbLineasdeFactura.Enviada " & _
        "FROM " & _
        "TbCabeceraFactura INNER JOIN TbLineasdeFactura " & _
        "ON TbCabeceraFactura.IdPropuesta = TbLineasdeFactura.IdPropuesta " & _
        "WHERE " & _
        "(((TbLineasdeFactura.FechaFactura) Between #1/1/2015# And #31/1/2015#) AND ((TbLineasdeFactura.Enviada)=False))" & _
        "ORDER BY TbCabeceraFactura.IdPropuesta"
 
 
 
Set rst = CurrentDb.OpenRecordset(Ssql)
 
If rst.EOF = False And rst.BOF = False Then
rst.MoveLast
rst.MoveFirst
 
 
For i = 1 To rst.RecordCount
 
rst.Edit
 
    rst!NFActura = NumFactura() 'función que calcula el numero de factura
    rst!Enviada = True
 
 
rst.Update
 
 
    strNombre = rst!NFActura & "_" & rst!RazonSocial & ".pdf"
 
    DoCmd.OpenReport "InfFactura1", acViewReport, , "Nfactura=" & rst!NFActura, acHidden
    DoCmd.OutputTo acOutputReport, "InfFactura1", "*.pdf", ruta & strNombre, False, "" 'crea el pdf en la carpeta facturas
    DoCmd.Close acReport, "infFactura1"
 
 
 
rst.MoveNext
 
Next i
 
 
Else
 
MsgBox "No hay facturas pendientes de emitir en el periodo seleccionado", vbInformation, "4HomeMenaje - Facturación"
 
 
End If
 
rst.Close
 
Set rst = Nothing
 
 
 
 
Application.Echo True
 
 
err:
     If err.Number = 2501 Then
        MsgBox "Se ha cancelado la emisión de facturas " & vbCrLf & "La última factura emitida es: " & strNombre, vbCritical, "4HomeMenaje - Facturación"
 
        rst.Close
        Set rst = Nothing
 
 
        Exit Sub
 
    Else
        MsgBox "numero de error: " & err.Number & vbCrLf & "Descripción: " & err.Description, vbCritical, "4HomeMenaje - Facturación"
 
        rst.Close
        Set rst = Nothing
 
        Exit Sub
    End If

A ver si alguien puede arrogarme algo de luz porque me tiene frito.
Un saludo y gracias de ante mano.

Sergio Esteban
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

Access 2013 se cuelga con error 2501 al cancelar exportación a pdf de un informe

Publicado por Sergio (9 intervenciones) el 30/12/2014 04:40:27
Ya he encontrado el fallo!!!!, no se puede estar tantas horas delante del pc...jejeje
se bloquea porque al producirse el error se salta el "Application.Echo True", que creo que tampoco es que fuera muy necesario hacer esto aquí, mas bien era una probatina , pero bueno..

Solucion:

Quirar el "Application.Echo false" y el "Application.Echo True" del código o añadir el Application.Echo True en la captura de los errores.


Por mi parte se puede dar por cerrado.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar