** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Error 1004 en ruta de archivo
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoError 1004 en ruta de archivo

 Responder Responder
Autor
Mensaje
jmmiralles Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 29/Noviembre/2008
Localización: Albacete-España
Estado: Sin conexión
Puntos: 569
Enlace directo a este mensaje Tema: Error 1004 en ruta de archivo
    Enviado: 04/Agosto/2015 a las 23:30
Buenas noches,
estoy haciendo una pequeño programilla que una de sus tareas es traspasar datos de excel, unos 500 libros, estos están siempre en las mismas celdas, y para eso hace los siguiente:
  • Poder seleccionar un archivo extension xlsx.
  • Obtener la ruta
  • Abrir el archivo
  • Pasar los datos de las celdas a un formulacio de Access, etc.

para seleccionar el archivo y obtener la ruta utilizo un código del maestro Happy, hasta aqui bien,
 el problema me viene cuando al intentar abrir el archivo:

  1.  Si le paso la ruta completa me lo abre perfectamente y ejecuta el código a la perfección, claro no puedo esta cada vez que paso los datos de un libro de excel pasandole la ruta manualmente.
  2. Para evitar lo anterior, le paso una variable que captura la ruta del archivo y aquí es donde me provoca el error.

Os paso parte del código:


===================================================

' Este código se brinda por cortesía de
' Juan M. Afán de Ribera

   On Error GoTo cmdImportar_Click_Error

         Dim xlsxApp As Object
        Dim xlsxBook As Object


        Dim FileDlg As FileDialog
        Dim cnt As Integer
        Dim varItem As Variant
        Dim ArchivosSeleccionados As String

    Set FileDlg = New FileDialog
    FileDlg.DialogType = fnDialogType
    FileDlg.InitialView = fnInitialView
    FileDlg.AllowMultiSelect = False



    If FileDlg.Show = -1 Then
        For Each varItem In FileDlg.SelectedItems
            ArchivosSeleccionados = ArchivosSeleccionados & varItem & vbCrLf

        Next

       ' MsgBox "Archivos seleccionados: " & vbCrLf _
         '       & vbCrLf & ArchivosSeleccionados

End If

               
      
       
        Debug.Print ArchivosSeleccionados
       

'       C:\Users\Chema\Desktop\PedroGimenez\ANDRESGARCIA.xlsx
       
    Set xlsxApp = CreateObject("Excel.Application") 'Crea una instancia de la aplicación Excel
   
    Set xlsxBook = xlsxApp.Workbooks.Open(ArchivosSeleccionados)   ''aqui es donde me da el error 1004

    Set xlsxBook = xlsxApp.Workbooks.Open("C:\Users\Chema\Desktop\PedroGimenez\ANDRESGARCIA.xlsx") ''esta opción no daría problemas


        xlsxApp.Visible = True


'Traspasamos los datos

    Me.txtNumeroCliente.Value = xlsxBook.Worksheets("Hoja2").Range("D1")
     Me.txtNombre.Value = xlsxBook.Worksheets("Hoja2").Range("B3")
     Me.txtNombreComercial.Value = xlsxBook.Worksheets("Hoja2").Range("B4")
    Me.txtDomicilio.Value = xlsxBook.Worksheets("Hoja2").Range("B5")
    Me.txtContacto1.Value = xlsxBook.Worksheets("Hoja2").Range("B8")
    Me.txtCargo1.Value = xlsxBook.Worksheets("Hoja2").Range("B9")
    Me.txtTelefono1.Value = xlsxBook.Worksheets("Hoja2").Range("B10")
    Me.txtCyC.Value = xlsxBook.Worksheets("Hoja2").Range("B12")
    Me.txtCreditoNosotros.Value = xlsxBook.Worksheets("Hoja2").Range("C12")
    Me.txtFormaPago.Value = xlsxBook.Worksheets("Hoja2").Range("B13")


=========================

El error 1004 es su descripción dice que no encuentra la ruta o está mal escrita o el archivo ha sido borrado o movido "más o menos".


Espero me podeis echar una manita para ver que me estoy comiendo.


Gracias anticipadamente.


Saludos desde un lugar de la Mancha

Visita Mi Web

http://jmmirallesortega.wix.com/accessyvba<
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: ROC, NY
Estado: Sin conexión
Puntos: 3326
Enlace directo a este mensaje Enviado: 04/Agosto/2015 a las 23:58
¿has comprobado que solo haya ese texto?

Quiero decir, ni espacios ni retornos de carro ni nada por el estilo

Luis
Those are my principles, and if you don't like them... well, I have others. Groucho Marx
Arriba
jmmiralles Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 29/Noviembre/2008
Localización: Albacete-España
Estado: Sin conexión
Puntos: 569
Enlace directo a este mensaje Enviado: 05/Agosto/2015 a las 00:14

   
    Set xlsxBook = xlsxApp.Workbooks.Open(ArchivosSeleccionados)   ''aqui es donde me da el error 1004

    Set xlsxBook = xlsxApp.Workbooks.Open("C:\Users\Chema\Desktop\PedroGimenez\ANDRESGARCIA.xlsx") ''esta opción no daría problemas




Gracias Luis por responder, a tu pregunta decirte, que:
  •  he utilizado la funcion Trim:
 Set xlsxBook = xlsxApp.Workbooks.Open(Trim(ArchivosSeleccionados))

  • El libro de Excel se llamaba ANDRES GARCIA.xlsx y lo he juntado para que no hayan espacios, como bien has visto.
  •   Set xlsxBook = xlsxApp.Workbooks.Open(CurrentProject.Paht & "\ANDRESGARCIA.xlsx")

La tercera opción también la he probado y funciona, el problema es que tendría que tener todos los libros excel donde está la base de datos, y realmente están distribuidos en unas 100 carpetas diferentes.




Editado por jmmiralles - 05/Agosto/2015 a las 00:16
Saludos desde un lugar de la Mancha

Visita Mi Web

http://jmmirallesortega.wix.com/accessyvba<
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: ROC, NY
Estado: Sin conexión
Puntos: 3326
Enlace directo a este mensaje Enviado: 05/Agosto/2015 a las 00:34
Prueba una chapuza 
ArchivosSeleccionados = "C:\\Users\\Chema\\Desktop\\PedroGimenez\\ANDRESGARCIA.xlsx"

No creo pero...
Those are my principles, and if you don't like them... well, I have others. Groucho Marx
Arriba
jmmiralles Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 29/Noviembre/2008
Localización: Albacete-España
Estado: Sin conexión
Puntos: 569
Enlace directo a este mensaje Enviado: 05/Agosto/2015 a las 00:56
    ===================================================
If FileDlg.Show = -1 Then
        For Each varItem In FileDlg.SelectedItems
            ArchivosSeleccionados = ArchivosSeleccionados & varItem '& vbCrLf

        Next

       ' MsgBox "Archivos seleccionados: " & vbCrLf _
         '       & vbCrLf & ArchivosSeleccionados

End If
===================================================

Gracias Luis,
en el primer post me diste la clave del Salto de Línea (vbCrLf) y efectivamente en el código anterior hay un salto de línea que lo he comentado y el código funciona perfectamente.

Nuevamente gracias por tus respuestas y tu ayuda.Thumbs Up Clap

Podeis cerrar el hilo.


Editado por jmmiralles - 05/Agosto/2015 a las 00:57
Saludos desde un lugar de la Mancha

Visita Mi Web

http://jmmirallesortega.wix.com/accessyvba<
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable