Crear tabla temporal de una consulta en Access
Bienvenidos a Vertutoriales.com, en esta ocasión os voy a dar un pequeño ejemplo de como crear de una nueva tabla en access con los datos obtenidos de una consulta sql.
En mi caso y queriendo optimizar unas operaciones que tenían que trabajar con más de 50000 registros pensé en sacar antes de empezar a trabajar con estas, los registros que iba a necesitar, dejando así en unos 5000 registros (sí, ya sé que es una barbaridad para Access). Al principio hice lo que ví normal, realizar una consulta Select e ir realizando una query insert por cada registro, lo cual hacía que el trabajo se demorara bastante para comenzar, dando sensación de aplicación pillada.
La consulta que os traigo es lo que iba buscando y conseguí encontrar, se trata de realizar una consulta de select y de creación de tabla en cuestión de segundos, muy pocos segundos, veamos:
“SELECT * Into Nueva_Tabla_Tutoriales FROM Tabla_Tutoriales WHERE convideo = 1”
En la consulta anterior, tenemos una Select en las que podemos seleccionar los campos (en mi caso he dicho que todos con *) y realizo un INTO y le indico el nombre Nueva_Tabla_Tutoriales donde crearé la tabla y volcaré los registros que saque de la tabla FROM Tabla_Tutoriales con la condición que tengo en el WHERE en este caso todos los registros que tengan el campo convideo = 1
Repasando, lo único que cambiamos de una consulta select, es que introducimos la sentencia INTO <NombreTabla> que será donde guardaremos la consulta realizada.
No olvidéis que si la tabla está creada, tendréis que eliminarla anteriormente, para ello podéis utilizar:
DROP TABLE Tabla_Tutoriales
Y listo! Ya tenéis todas las herramientas necesarias para continuar optimizando vuestro programa 🙂
Comments
Me parecen respuestas muy apropiadas ya que van directo al grano, no como en otras paginas de consulta que le dan largas a las respuestas hablando muchas veces de cosas que no hacen falta y al final no responden en forma adecuada, gracias… yo resolví un problema que tenia con la respuesta sobre AppPath….
Gracias, aunque hay de todo 😀 en algunos artículos explico más ampliamente el por qué use una forma u otra. Pero suele estar claro donde está el código para no perder el tiempo si lo que quieres es “copy/paste” 😉
Un saludo y agradecido de nuevo tanto por la visita como por el comentario.
Info realmente buena, util… facil y rapido… excelente, lo que necesitaba Gracias.
Gracias a tí por comentar el artículo de tabla temporal en Access 😉
Amigos no soy experto aunque tengo algunos conocimientos. Hace unos 20 años programaba con dbaseIII y clipper (Nada de objetos). Quisiera saber ¿Cómo paso los datos de un registro a variables de memoria, editarlos y luego devolverlos a la base de datos access? ¿Será posible una respuesta sencilla?
Gracias
Buenas José Luis. En resumen, sí, claro que podrías.
Puedes cargar el “array” del registro y modificarlos como quieras, luego simplemente, tendrás que volverlo a escribir. En (VB o VBa) hay un objeto llamado RecordSet, en él se queda el puntero del registro el cual puedes editarlo y eliminarlo directamente.
Dependerá del lenguaje. Espero que te ayude a seguir investigando!
Si, está bien para hacer copias de tabla a tabla.
Pero si sabes del tema, cabe la posibilidad de que me ayudes en:
Crear una tabla a partir de una vista o tabla vinculada, ejm:
SELECT * INTO TablaNueva FROM MiConsultaConDatos;
El error que me sale es:
“La tabla resultante no permite tener más de un campo Autonumeración”.
¿Como lo hago entonces? Ya que parto de una vista y no se los metadatos en si.
El problema es por que tienes varios campos autonuméricos entiendo, pero no entiendo en sí, por qué te da error, si como bien dices, estás pasándole los campos desde una consulta ya realizada.
Prueba a poner en la tablaNueva los campos “sin autonumeración” por si es que en la copia ya van y se solapan o hay algún conflicto.
Un saludo!