Como abrir excel desde Access con variables

Quiero abrir un documento de excel para modificarlo pero tanto la ruta como el nombre del fichero los tengo en unas variables.

Para abrirlo con un nombre fijo no he tenido problema

Dim abrir As Long

abrir = Shell("excel.exe C:\IMPRIMIR2.xls", vbMaximizedFocus)

Pero cuando lo intento con variables no soy capaz. He visto que existe otra función que es

workbooks.Open FileName:=(

Tampoco soy capaz y no se cual es la diferencia entre una y otra.

¿Me podria alguien echar una mano?. Y si no es mucho pedir, alguien sabe como podría controlar que caso de no existir el fichero que busco pueda abrir uno determinado (controlando el error o algo asi).

Respuesta
2

Abrirlo usando variables no es difícil, solo has de tener cuidado con la sintaxis. Te pongo un par de ejemplos:

1º/ Tienes la ruta en una variable:

Dim abrir As Long

Dim miRuta as String

miRuta="C:\IMPRIMIR2.xls"

abrir = Shell("excel.exe " & miRuta, vbMaximizedFocus)

2º/ Tienes la ruta en un campo del formulario:

Dim abrir As Long

abrir = Shell("excel.exe "  & Me.RutaArchivo, vbMaximizedFocus)

3º/ Tienes parte de la ruta que depende de una variable:

Dim abrir As Long

abrir = Shell("excel.exe C:\Archivos\" & Me.NombreCampo & ".xls", vbMaximizedFocus)

Para verificar que el archivo exista o no, puedes usar la función Dir(), o si sabes el número de error que te devuelve al no existir, manejarlo con un control de errores. Te dejo una enlace a una respuesta en la que explico los dos métodos: Validar funcion FollowHyperlink ACCESS si existe el archivo en la ruta

Un saludo.


     bit.ly/ForoNkSv 

Muchas gracias. Creo haber localizado el problema. En la ruta, una de las carpetas tiene un espacio en blanco "CONSENTIMIENTOS INFORMADOS" y me lo trata como dos nombres distintos.

Ejemplo:

miruta =  "C:\usuario\CONSENTIMIENTOS INFORMADOS\"

mifichero = Me.NombreCampo & ".xls"

Intenta primeramente abrir  C:\usuario\CONSENTIMIENTOS .xlsx 

y luego     INFORMADOS\Me.NombreCampo.xls

Si no hay una solución sencilla puedo cambiar esa carpeta por otra con un nombre sin espacios.

Aunque veo que un futuro tendre un problema con las extensiones xls o xlsx

OK, suponía que algo así podía pasar...

Prueba a ponerle comillas simples alrededor de la ruta:

miRuta =  "'C:\usuario\CONSENTIMIENTOS INFORMADOS\'"

O así:

También puedes probar a poner entre corchetes el nombre con espacio:

miruta =  "C:\usuario\[CONSENTIMIENTOS INFORMADOS]\"

Pues en efecto este va a ser el problema. He probado como me dices y no hay forma. Lo malo es que no solo tengo los espacios en el nombre de la carpeta. He detectado algunos fichero que también lo tienen y estos no los puedo cambiar.

Mirando por el foro he visto algguna solución pero me parece complicadísima. No se si es necesario que habrá una nueva pregunta en el foro especifica para este problema.

Te dejo un archivo de texto con la solución, porque esta web se "aturulla" con la función chr y no deja enviar la respuesta... jejeje:

http://filebig.net/files/7evDDtfc7q 

¡Gracias!

PERFECTO.

Me ha sido muy útil. Lo utilizaré muy a menudo porque la verdad es que las comillas siempre dan problemas.

1 respuesta más de otro experto

Respuesta

Existen varias formas, la más profesional es abrir el explorador de archivos filtrado por la extensión xls. Envíeme su correo a [email protected] y con gusto le suministro un ejemplo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas