Crear una tabla a partir de otra tabla en Access

Quería saber si es posible crear una tabla copiando todos los datos de otra tabla. La idea es simple, es para tener guardado un registro del estado de unos expedientes en un día concreto.

Probé anteriormente la opción mediante consultas y la opción createquerydef, que me sirvió bastante, pero la consulta va ligada a la tabla, y ésta a su vez va modificándose por lo que no era lo que me interesaba.

He visto que existe el CreateTableDef, pero he intentado usarlo sin éxito, supongo que no se puede usar igual que el método anterior.

Respuesta
2

Depende de lo que quieras hacer

1º Por ejemplo, supongamos que quieres copiar los datos Fecha, cliente de la tabla Ventas en una tabla Copia que se cree en el mismo momento en que pulsas el botón. Basta con poner

DoCmd.RunSQL "SELECT Fecha,Cliente INTO Copia FROM Ventas"

Te aparecerá una ventana diciéndote que vas a anexar X registros en una tabla Nueva.

2º Si lo que quieres es construir una tabla por código tienes que usar algo así como

DoCmd.RunSQL "CREATE TABLE Copia ([StaffID] COUNTER CONSTRAINT ndxStaffID PRIMARY KEY, [Nombre] TEXT(25),[Apellido] TEXT(30), [DechaNac] DATETIME)"

Vale, la primera opción me ha ido perfectamente!

Sólo tengo una duda más... mi idea es que así se quede guardado el estado de los expedientes en una fecha concreta, y para ello lo mejor sería que se pusiera la fecha del día automáticamente en el nombre (Imaginemos que haya una tabla llamada Copia 17/05/2017 otra llamada Copia 16/05/2017 etc) 

Sería posible automatizar el nombre de la tabla o ya es demasiado?

Desde el tremendo calor que hace aquí, y para no calentarte la cabeza, lo mejor es que pongas

DoCmd.SetWarnings False
Dim a As String
a = "copia" & "" & Date
DoCmd.RunSQL "SELECT Fecha,Cliente INTO copia from Ventas"
DoCmd.Rename "" & a & "", acTable, "copia"

Así no te aparecerá la dichosa ventanita de "Va a anexar...

Lo que hace es renombrar la tabla

¡Gracias! Esto creo que es lo que necesitaba!

El setwarnings siempre lo tengo puesto en las actualizaciones de tablas por comandos, sino es muy cansado que salga a cada minuto! jajaja

Muchas gracias por la ayuda! Voy a probar!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas