Imprimir página | Cerrar ventana

error 1004 en macro de access

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86976
Fecha de impresión: 26/Marzo/2026 a las 17:28


Tema: error 1004 en macro de access
Publicado por: carlosd
Asunto: error 1004 en macro de access
Fecha de publicación: 23/Agosto/2024 a las 18:15
Saludos, tengo tengo una aplicación en access que d ela que cree un .mde para office de 32 y otro para 64 por las aquitecturas de los office que a veces son distintos, cuando ejecuto la de 64 no da error al ejecutar macros, cuando corro la de 32 me da este error

el error en el código está en esta línea

    .Workbooks.Open rutaPlantilla

les copio el código

Private Sub ExpProgEmitTI_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 [tmp_ProgramaEmitidoTI].* FROM [tmp_ProgramaEmitidoTI]"
    
    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\PlantillaTI.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:="Carlos1906*2023", AllowFiltering:=True 'Proteger
    .ActiveWorkbook.SaveAs nuevoExcel & "Incidentalv1.0 " & vNombrePrograma & ".xls"
    .ActiveWorkbook.Close SaveChanges:=False
    .DisplayAlerts = True
    .Quit
    
    End With
    
    Set XL = Nothing
    rst.Close
    dbs.Close
    Set rst = Nothing
    Set dbs = Nothing
    
    DoCmd.Close acForm, "F_ExpTI"
    
    DoCmd.OpenForm "F_ProgramasEmitidosTI"
    
    MsgBox "La exportación se ha guadado en ...\SGRADIO_CAPTAv1.0\tmp_SGRADIO_CAPTAv1.0 EXPORTA", vbInformation + vbSystemModal, "Información"
End Sub

no he logrado encontrar la solución y necesito ayuda

gracias





Respuestas:
Publicado por: happy
Fecha de publicación: 25/Agosto/2024 a las 21:27
Ese error suele darse por algo que no funciona bien en la aplicación externa (en este caso Excel). Veo que la primera instrucción que le pasas a Excel es DisplayAlerts = False. Esa instrucción impide que Excel muestre sus avisos propios, con lo que Access muestra un error de tipo genérico. Yo de tí haría visible la aplicación Excel (XL.Visible = True) y después ejecutar el código paso a paso. Cuando llegue a la línea que provoca el error seguramente Excel te mostrará una explicación más tratable que el error 1004. Si ves que eso te ayuda con el error, lo corriges y luego vuelves a poner todo como estaba

Espero que te sirva


-------------
Saludos,

Juan M. Afan de Ribera


Publicado por: lbauluz
Fecha de publicación: 09/Septiembre/2024 a las 15:53
Buenas.

¿Has comprobado que "rutaplantilla" tenga un camino correcto?

Un saludo.

Luis


-------------
El Búho es un pajarraco


Publicado por: carlosd
Fecha de publicación: 04/Octubre/2024 a las 17:48
Saludos, buen día los dos y bendiciones, por razones ajenas ami voluntad tuve que detener el proyecto pero ahora lo continúo, como explico en el inicio del hilo, lo más extraño es que si corro la aplicaicón en office 64 bits todo funciona bien, solo cuando lo hago en office 32 es que me da ese problema y no he encontrado la solución. Gracias a los dos


Publicado por: Mihura
Fecha de publicación: 04/Octubre/2024 a las 18:09
¿ Has probado lo que te dijo Happy ?

-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: carlosd
Fecha de publicación: 04/Octubre/2024 a las 18:22
Saludos cambié DisplayAlerts = False por DisplayAlerts = True pero no se resuelve


Publicado por: Mihura
Fecha de publicación: 04/Octubre/2024 a las 18:28
Obviamente no se va a resolver, pero te dará más pistas de por dónde va a ir el error.
¿Estás ejecutándolo paso a paso?




-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: carlosd
Fecha de publicación: 04/Octubre/2024 a las 18:39
Si, le doy ejecutar hasta el cursos y entonces con True no da error, pero si lo hago dedes formulario de el mismo error


Publicado por: carlosd
Fecha de publicación: 04/Octubre/2024 a las 18:42
Y me sigue extrañado que corriedolo en el mismo office a 64 no da ese error


Publicado por: Mihura
Fecha de publicación: 04/Octubre/2024 a las 19:57
Publicado originalmente por carlosd carlosd escribió:

Si, le doy ejecutar hasta el cursos y entonces con True no da error, pero si lo hago dedes formulario de el mismo error

¿Lo ejecutas desde dos sitios distintos?


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: carlosd
Fecha de publicación: 04/Octubre/2024 a las 20:06
Publicado originalmente por Mihura Mihura escribió:

Publicado originalmente por carlosd carlosd escribió:

Si, le doy ejecutar hasta el cursos y entonces con True no da error, pero si lo hago dedes formulario de el mismo error


¿Lo ejecutas desde dos sitios distintos?


No, preparé 2 .mde, uno para 64 y otro para 32 por las arquitecturas de las pc, ambas compilaciones usan la misma bd



Imprimir página | Cerrar ventana