Tcomando: DoCmd.TransferSpreadsheet acImport, no me funciona con una variable

el comando: en Access: DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, TableName, _ "D:\INFORMATICA\EXCEL\EXCEL mis MODELOS\MODELO Viab. Finan. 4 TXOMIN\PLANEMPRESA Viab.Fin. 050 MODELEVA-Leas 2023 08Agosto.xlsm", _ True, HojaNombre & "!" me funciona muy bien pero NO funciona sustituyendo "D:\INFORMATICA\EXCEL\..." por una variable. A qué se debe?

1 respuesta

Respuesta

Desconociendo como se genera esa sustitución, es problemático dar una respuesta que pueda ser acertada.

Cuando tengo una duda de donde puede estar 'el problema' suelo escribir la línea (antes de ejecutarla y tras la carga de las variables) en la ventana de inmediato y así poder analizar la sintaxis (verificar si la construcción de la ruta es la esperada y por lo tanto la correcta).

Utilizar un punto de interrupción en la línea y mostrarla en la ventana de inmediato suele ser efectivo, una vez corregida la sintaxis, se elimina el punto de interrupción.

Ya he hecho lo que me comentas. Si pido, con Debug.Print "Valor de LibrosRuta antes de llamar a ImportarDatosExcel: " & LibrosRuta la situación en la ventana inmediato antes de ejecutar el comando DoCmd el resultado es correcto pero a continuación ejecuto el comando y concatena la dirección de las variables TableName (que está en una carpeta de access) y LibrosRuta (que está en una Carpet de Excel). Los valores de ambas las tomo de un Formulario y los recojo así: LibrosRuta = Me.LibrosRuta.Value
HojaNombre = Me.HojaNombre.Value
TableName = "ImportaHoja" & HojaNombre. Muchas gracias por tu atención Enrique

No me cuadra que 'un formulario' utilice la sintaxis (Me.) Que solo se puede aplicar al formulario activo, quizás se debería aplicar su ruta absoluta en lugar de la relativa, para garantizar acceso al dato correcto.

Solo se conoce lo publicado y (aunque se puede imprimir en la ventana de inmediato con Debug. Print) suelo interrumpir la ejecucion y directamente (en la ventana de immediato) escribir:
? (Aquí la parte que se modifica tras cargar las variables)

Y verificar si la ruta de acceso al elemento en el HD es correcta o no (puede faltar una barra o añadir algo indeseado y generar un error).

El punto de interrupción, en la línea con la expresión a evaluar, si la variable toma el dato correcto no debería ser un problema.

En todo caso optar por 'recrear en la variable' todo el parámetro y pasárselo a la línea de ejecución (bastaría visualizar la variable para verificar si el parámetro cumple las condiciones) y seria mas sencillo adecuarlo (ya existe la variable, el costo en recursos es el mismo).

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas