¿Cómo puedo vincular una tabla de Excel a Access? Esto lo querría realizar de una forma automática, es decir, que cuando pulse un botón en access me vaya a excel y que me realice una macro que ya tengo realizada.
Tu lo que quieres es estar vinculado a una página de excel, pues bien yo lo haría de dos formas si tu lo único que quieres es tener una hoja de excel a la que estés vinculado y con tal de modificar la hoja de excel ya access te lo reconozca lo único que tienes que hacer en te pones en la parte de tablas y le das a la opción de vincular y te saldrá una ventana diciéndote donde te quieres vincular, eliges la opción de archivos de excel y te vinculas a la hoja que quieras de forma que una vez que estés vinculado ya cuando cambies algo en la hoja ya te lo refleja en access (a la hora de trabajar en ella con access es como una tabla normal con sus campos...) Si lo que quieres es vincularte cada vez a una diferente tendrás que hacer una función que te vincule a la hoja de excel lo puedes hacer con una propiedad que es conect y uno de sus parametrs es excel, luego esta función la llamas desde el botón o bien la llamas con una macro
Si no te he entendido mal, la macro la tienes realizada en Acess, y solo quieres saber cómo vincular los datos que tienes almacenados en excel, ¿no? Lo que tu quieres hacer es muy sencillo: antes de que se ejecute tu macro, deberás haber conseguido importar los datos, por tanto, inserta una nueva linea a tu macro, y colocala en primer lugar, para que sea lo primero que se ejecute. En esta nueva linea, selecciona la acción TransferirHojaCalculo Te describo brevemente sus propiedades: -- Tipo de transferencia: Puedes escoger entre IMPORTAR (te creara una tabla duplicada dentro de access, los cambios no afectaran al original), VINCULAR (te crea una imagen del documento de excel, cuidado, los cambios que realices en access, los haces en realidad en la hoja de calculo). -- Tipo de hoja de calculo: debes seleccionar EXCEL97, también puedes importar hojas de lotus si lo deseas. -- Nombre de tabla: Introduce el nombre que quieras darle a la tabla que sera el destino de los datos de excel dentro de la base de datos -- Nombre de archivo: escribe el path (ruta donde reside el documento excel, p. ej., c:\mis documentos\hojacalculo.xls) No te olvides la extensión -- Contiene nombres de campo: Tal y como su nombre indica, especifica si o no si la hoja de calc. Posee una linea inicial de títulos -- Rango: puedes especificar la celda a partir de la que deseas comenzar a importar, y la celda donde deseas terminar dicha importación. Si quieres importar la hoja entera, deja este argumento en blanco. Por defecto, te importara la primera hoja del libro. Si deseas importar más de una hoja, repite esta linea para cada hoja. Para especificaruna hoja en concreto, en RANGO escribe alg así: Presup! ---->Importaría una hoja llamada "presup" Espero haberte podido ayudar en tu duda, si tienes algún problema, ya sabes donde estoy 8-))
Muchas gracias por tu consejo, me has sido de gran ayuda. Ahora bien, la macro la tengo en excel, es una macro de actualización de datos por internet. Yo quiero estar en access y cuando pulse un botón que me habrá la hoja que tengo en excel y que me lo actualice. Lo de que me lo actualice ya lo tengo, ahora lo que quiero es que cuando haga click en access, que me habrá la tabla de excel y que me lance la macro de actualización. Y después de esto, ahora es cuando la tabla resultante la vinculo a access. Muchas gracias!
De nuevo kyu. Vamos a ver, lo primero es conseguir que la macro de EXCEL se ejecute al abrir el documento, para no tener que ejecutarla nosotros. Supongo que ya sabes como se hace esto, pero por si acaso, te lo digo por encima: 1) Abre el documento de EXCEL, y haz click derecho sobre la etiqueta de cualquiera de las hojas del libro, y selecciona la opción "ver código" 2)Selecciona Thisworkbook, y en la ventana de código, selecciona el evento open. 3) Entre SUB WORKBOOK_OPEN() y END SUB, puedes poner dos cosas: 3.1) El código de la macro (lo encontrarás en módulos, en la ventana de Visual basic), córtalo y pégalo. 3.2) Teclea un código que ejecute la macro deseada DEbes poner algo como: Application.Run "SEGSOC.xls!nombremacro". Con esto, conseguirás que excel, al abrir el documento, ejecute de forma automática tu macro. Ahora sólo nos falta ver como decimos al access que abra un documento de excel. Crea un botón y asígnale este código: Dim EXCELWORKSHEET As Object Set EXCELWORKSHEET = GetObject("C:\Mis documentos\hojacalc.XLS") EXCELWORKSHEET.Application.Visible = True EXCELWORKSHEET.Parent.Windows(1).Visible = True La primera linea declara la variable de tipo objeto La segunda linea llama al documento en concreto(igual para un documento de word, si lo necesitases) Las lineas tres y cuatro, se encargan de que se vea el documento de excel en una nueva ventana. Con esto y con lo que te comente el otro día, creo que podrás salir del atolladero sin grandes dificultades. Esperando haberte sido de utilidad, me despido hasta la próxima.