** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y Otros sistemas
  Mensajes nuevos Mensajes nuevos RSS - automatizar importacion odbc
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

automatizar importacion odbc

 Responder Responder
Autor
Mensaje
bugy Ver desplegable
Habitual
Habitual


Unido: 19/Febrero/2013
Localización: España
Estado: Sin conexión
Puntos: 56
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita bugy Cita  ResponderRespuesta Enlace directo a este mensaje Tema: automatizar importacion odbc
    Enviado: 12/Octubre/2017 a las 07:37
Buenos dias
Tengo una base de datos en access, que trabaja con unas tablas importadas por odbc de mysql.
No me interesa, por motivos de seguridad, que sean vinculadas, por lo tanto importo una copia de las tablas.
Es posible crear algún método automatizado, para que cada vez que abra el access me vuelva a importar las tablas actualizadas?
Gracias

Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Alcalá Meco
Estado: Sin conexión
Puntos: 2888
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lbauluz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 12/Octubre/2017 a las 14:11
Mira a ver esto

https://support.office.com/es-es/article/Crear-una-macro-que-se-ejecute-al-abrir-una-base-de-datos-98ba1508-dcc6-4e0f-9698-a4755e548124

Un saludo.

Luis
Quod natura non dat, Salmantica non præstat
Arriba
bugy Ver desplegable
Habitual
Habitual


Unido: 19/Febrero/2013
Localización: España
Estado: Sin conexión
Puntos: 56
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita bugy Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 12/Octubre/2017 a las 16:20
Hola Luis
El tema no es la macro al abrir, sinó automatizar una importacion por odbc.
Gracias
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Alcalá Meco
Estado: Sin conexión
Puntos: 2888
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lbauluz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 12/Octubre/2017 a las 19:29
Pues lo mismo que tengas hecho, pero puesto al inicio... ¿o es que lo haces manualmente?

Un saludo
Quod natura non dat, Salmantica non præstat
Arriba
bugy Ver desplegable
Habitual
Habitual


Unido: 19/Febrero/2013
Localización: España
Estado: Sin conexión
Puntos: 56
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita bugy Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 12/Octubre/2017 a las 19:32
Buenas
Lo que me falta es el codigo para importar tablas por odbc, ya se que cuando lo tenga lo pongo en el autoexec.
Ahora lo estoy haciendo manualmente
Gracias


Editado por bugy - 12/Octubre/2017 a las 19:33
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4127
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 12/Octubre/2017 a las 19:39
Hola

Prueba asi

DoCmd.TransferDatabase acImport, "ODBC Database", "ODBC;DSN=PonAquiDSN;UID=PonAquiUsuario;PWD=PonAquiPassword;LANGUAGE=us_english;" & "DATABASE=PonNombreBaseOrigen", acTable, "PonTablaOrigen", "PonTablaDestino"



 



Editado por javier.mil - 12/Octubre/2017 a las 19:59
Arriba
bugy Ver desplegable
Habitual
Habitual


Unido: 19/Febrero/2013
Localización: España
Estado: Sin conexión
Puntos: 56
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita bugy Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 13/Octubre/2017 a las 12:45
Hola Javier
He puesto el código en una función pública, pero al ejecutarlo desde una macro me dice que no encuentra esa función.
La verdad es que no habia hecho nunca de llamar una función desde una macro.
La funcion se llama odbc()
Y en la macro he seleccionado ejecutar codigo, y en el nombre de funcion he puesto odbc()
Pero al ejecutar dice que no encuentra esa funcion.
Alguna idea?
Gracias
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4127
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 13/Octubre/2017 a las 15:13
Hola

Pon el siguiente codigo en un MODULO estandar

Public Sub XecImportarTablasODBC()
DoCmd.TransferDatabase acImport, "ODBC Database", "ODBC;DSN=PonAquiDSN;UID=PonAquiUsuario;PWD=PonAquiPassword;LANGUAGE=us_english;" & "DATABASE=PonNombreBaseOrigen", acTable, "PonTablaOrigen", "PonTablaDestino"
End Sub



Luego tienes 2 opciones:

Opcion 1- (Con codigo VBA) Puedes hacer una llamda desde cualquier parte del tu programa
Call XecImportarTablasODBC

Opcion 2 - (Con Macros) Usar una Macro que ejecute el procedimiento XecImportarTablasODBC


 




Editado por javier.mil - 13/Octubre/2017 a las 17:44
Arriba
teogf Ver desplegable
Asiduo
Asiduo


Unido: 09/Febrero/2007
Localización: España
Estado: Sin conexión
Puntos: 388
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita teogf Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 13/Octubre/2017 a las 17:47
Puede que te sirva este post

http://www.mvp-access.com/foro/vincular-tablas-mysql-sin-dsn_topic82550.html
Arriba
bugy Ver desplegable
Habitual
Habitual


Unido: 19/Febrero/2013
Localización: España
Estado: Sin conexión
Puntos: 56
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita bugy Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 13/Octubre/2017 a las 19:04
Hola Javier
El código va muy bien,  lo que me crea una copia de la tabla. Supongo que lo que tendré que hacer es eliminar primero la tabla y luego hacer la importación.

Lo que me falla es la macro.
He utilizado "ejecutar codigo", y en el nombre de la funcion pongo XecImportarTablasODBC pero nada, he probado poniendo al final () pero tampoco.
Me dice que no lo encuentra.
Gracias
Arriba
bugy Ver desplegable
Habitual
Habitual


Unido: 19/Febrero/2013
Localización: España
Estado: Sin conexión
Puntos: 56
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita bugy Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 13/Octubre/2017 a las 19:05
Publicado originalmente por teogf teogf escribió:

Puede que te sirva este post

http://www.mvp-access.com/foro/vincular-tablas-mysql-sin-dsn_topic82550.html

Hola 
Gracias por el código, lo que pasa que no las quiero vincular.

Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4127
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 13/Octubre/2017 a las 22:36
Buenas

Si claro si importas las tablas y la tablas ya existen automáticamente Access añade 1,2,3,4 sucesivamente. Para que No te suceda este comportamiento si No es lo deseado, deberás comprobar si las tablas existen en LOCAL y en tal caso borrarlas y luego hacer la importación. Recuerda que si repites este proceso sucesivamente el tamaño de base ira creciendo , para restaurar el tamaño de la base deberías compactar.

Respecto al tema de la MACRO la verdad es que No entiendo cual es el problema que comentas,
pero dependiendo de la version de Access deberías encontrar algo así como "Run Code" y a continuación poner XecImportarTablasODBC


 




Editado por javier.mil - 13/Octubre/2017 a las 22:38
Arriba
bugy Ver desplegable
Habitual
Habitual


Unido: 19/Febrero/2013
Localización: España
Estado: Sin conexión
Puntos: 56
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita bugy Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 14/Octubre/2017 a las 08:46
Publicado originalmente por javier.mil javier.mil escribió:

Buenas

Si claro si importas las tablas y la tablas ya existen automáticamente Access añade 1,2,3,4 sucesivamente. Para que No te suceda este comportamiento si No es lo deseado, deberás comprobar si las tablas existen en LOCAL y en tal caso borrarlas y luego hacer la importación. Recuerda que si repites este proceso sucesivamente el tamaño de base ira creciendo , para restaurar el tamaño de la base deberías compactar.

Respecto al tema de la MACRO la verdad es que No entiendo cual es el problema que comentas,
pero dependiendo de la version de Access deberías encontrar algo así como "Run Code" y a continuación poner XecImportarTablasODBC


Hola Javier
Es una version access 2010. No ha habido manera con la macro.
Como igualmente queria que se abriese un formulario al inicio, lo que he hecho ha sido que al abrir el formulario llame la funcion con el CALL.
Muchas gracias por la ayuda


Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable