
error en código de exportación de consulta a excel
Publicado por carlos aprendiz (70 intervenciones) el 27/05/2024 00:25:58
Saludoos amigos, tengo este código que me exporta una consulta de access a un libro de excel que tiene una plantilla:
A veces me das error, a veces no

y los errores son en estas líneas:
Set miArchivo = GetObject(nuevoExcel & "ProdMusicalv1.0 " & vNombrePrograma & ".xls")
miArchivo.Close SaveChanges:=True
necesito me ayuden a resolver este problema, gracias
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
Option Compare Database
Option Explicit
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub ExpProgEmit_Click()
Dim rst As DAO.Recordset
Dim XL As Object
Dim miSql As String
Dim dbs As DAO.Database
Dim rutaPlantilla As String
Dim nuevoExcel As String
Dim vNombrePrograma As String
Dim Ruta: Ruta = CurrentProject.Path: Ruta = Left(Ruta, InStrRev(Ruta, "\")) & "tmp_SGRADIO_CAPTAv1.0 EXPORTA\"
vNombrePrograma = Nz(Me.NombrePrograma.Value, "")
' Crear una nueva instancia de Excel
Set XL = CreateObject("Excel.Application")
Set dbs = CurrentDb
miSql = "SELECT [ProgramaEmitido].* FROM [ProgramaEmitido]"
Set rst = dbs.OpenRecordset(miSql, dbOpenSnapshot)
' Asignar la ruta hasta la carpeta para el nuevo Excel
nuevoExcel = Ruta
' Coger la ruta de la plantilla
rutaPlantilla = Ruta & "\PLANTILLAS\PlantillaPM.xls"
' Abrir la plantilla de Excel
Call ShellExecute(Me.hwnd, "Open", rutaPlantilla, "", "", 1)
With XL
.DisplayAlerts = False
.Workbooks.Open rutaPlantilla
.Sheets("Hoja1").Select
.Range("A2").Select
.ActiveCell.CopyFromRecordset rst
.ActiveSheet.Protect Password:="190668", AllowFiltering:=True 'Proteger
.ActiveWorkbook.SaveAs nuevoExcel & "ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".xls"
.ActiveWorkbook.Close SaveChanges:=False
.DisplayAlerts = True
.Quit
End With
Dim miArchivo As Object
Set miArchivo = GetObject(nuevoExcel & "ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".xls")
miArchivo.Close SaveChanges:=False
Set miArchivo = Nothing
Dim plantilla As Object
Set plantilla = GetObject(rutaPlantilla)
plantilla.Close SaveChanges:=False
Set plantilla = Nothing
Set XL = Nothing
rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing
DoCmd.Close acForm, "F_ExpPM"
DoCmd.OpenForm "F_ProgramasEmitidos"
MsgBox "La exportación se ha guadado en ...\SGRADIO_CAPTAv1.0\tmp_SGRADIO_CAPTAv1.0 EXPORTA", vbInformation + vbSystemModal, "Información"
End Sub
A veces me das error, a veces no

y los errores son en estas líneas:
Set miArchivo = GetObject(nuevoExcel & "ProdMusicalv1.0 " & vNombrePrograma & ".xls")
miArchivo.Close SaveChanges:=True
necesito me ayuden a resolver este problema, gracias
Valora esta pregunta


0