Exportar tabla a un nuevo archivo de access

Llevo varios meses con Access 2007, vengo de programación lineal en Clipper y Dbase y me está costando acostumbrarme aunque me está empezando a gustar bastante las posibilidades que tiene. Ahí va mi pregunta:

Necesito exportar una tabla con todos sus registros, si es posible fuera del proyecto actual, es decir, que me cree otro archivo de access conteniendo sólo la tabla que exporto.

También necesito exportar la misma tabla pero sólo con los registros que yo previamente haya filtrado, es decir, poder tener las dos posibilidades: o todos los registros o sólo que yo previamente filtre de alguna manera que aún no se.

He visto que es posible realizar una consulta de "Exportación de tabla" (luego la podría llamar mediante código para que se ejecutara) pero me pide que le indique el nombre de la base de datos a donde se va a exportar y eso es precisamente lo que no quiero. Me gustaría a ser posible poder exportar la tabla a un nuevo archivo de access sin que exista éste antes de la exportación. ¿Es posible hacerlo mediante código para poder luego ejecutarlo desde un botón?, .

1 respuesta

Respuesta
1

En la página: http://angelessebas.es/

En el apartado supuestos y soluciones ---> código ---> crear una base de datos

Tienes un ejemplo de como crear una BD mediante código.

Cualquier duda, me consultas.

Muchas gracias Angeles, accedí a tu página y me gustó mucho la sencillez con la que expones los ejemplos con explicaciones de cada línea.

Verás, he cogido parte de tu código de cómo crear una base de datos y parte de cómo crear una tabla idéntica a otra, hasta ahí perfecto pues he conseguido tener como yo quería una tabla igual a otra, (tabla B copiada igual que tabla A) pero ahora necesito llenarla con todos los registros de la tabla origen y no soy capaz de hacerlo, estoy usando "INSERT INTO" junto con la cláusula IN ya que la tabla B no esta en el mismo proyecto, te pongo el código para que me digas por favor dónde está mi fallo.

LA tabla A está dentro de un proyecto (base de datos) que se llama: "EXPORTAR_TABLA.accdb" en el cuál hay una tabla llamémosla Tabla_A de la cual he creado una copia exacta en su estructura llamada Tabla_B la cual está dentro de un proyecto o base de datos llamado "BASE_B.mdb", todo en el mismo directorio.

Ruta = Application.CurrentProject.Path + "\BASE_B.mdb"
variable2 = Application.CurrentProject.Path + "\"
Dim DB As Database
Set DB = CurrentDb

' aquí me pierdo y no soy capaz de componer correctamente la sentencia.

DB.Execute "INSERT INTO IN Ruta" & "select *" & "from [CLIENTES];"

Agradecido de antemano.

Toni

¡Qué recuerdos dbase y clipper...! A mí también me costó acostumbrarme a access, aunque ahora no lo cambiaría.

Bueno, vamos a la pregunta. Para ejecutar una sql utiliza el método DoCmd. RunSql (mírate los métodos, hay para casi todo...)

Docmd.RunSql "Insert Into..............

Yo, cuando tengo que insertar o actualizar datos de una tabla que no está en la BD que estoy manejando lo que hago es vincularla, si lo hago por código:

La vinculo

Inserto, actualizo... lo que sea

La borro

Mírate el método: DoCmd.TransferDatabase acLink ...

Puedes importar, exportar o vincular.

Bueno Ángeles, la pista que me diste sobre el Docmd..... ha sido muy acertada, aunque te diré que me ha costado sangre y sudor (jajajaja) montar la sentencia correctamente para que funcione, he visto que también se puede crear una Base con el comando "createdatabase", pongo el resultado final por si a alguien le interesa:

Ruta = Application.CurrentProject.Path + "\BASE_B.mdb"
' creo la BD, pero antes debo de mirar que no exista para que no de error
'DBEngine.CreateDatabase VARIABLE, dbLangSpanish
If Len(Dir(Ruta)) <> 0 Then
Kill Ruta
Else
DBEngine.CreateDatabase Ruta, dbLangSpanish
End If

' Exporto la tabla a la base creada. (todo en una línea)

' "CLIENTES" es la tabla origen a exportar

' "copiaClientes" es la nueva tabla idéntica a CLIENTES con sus datos.


DoCmd.TransferDatabase acExport, "Microsoft Access", Ruta, acTable, "CLIENTES", "copiaClientes", 0, True

Realmente no se si es mejor crear la BD usando el código que tienes en tu página o usando lo que he puesto yo aquí, por desgracia mis conocimientos en VBA son muy precarios y no se la diferencia entre ambos métodos.

He estado leyendo sobre ADO y DAO y tengo un lío mental ya que parece que hay dos sistemas para manejar una BD, a ver si me familiarizo con el más sencillo (que todavía no se cual es)

Muchas Gracias Angeles.

Gracias Ángeles, cualquier recomendación que me hagas para aprender a manejar correctamente una Base de datos (agregar,editar,eliminar,buscar,filtrar) mediante código me será de gran ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas