Crear tabla temporal mediante consultas

Tengo una conexión en VB mediante ADO con una base de datos en access, y debo crear una tabla temporal en base a los datos de otras 3 tablas, debo especificar los datos de todos mis clientes (1ra tabla), los datos de sus unidades (2da tabla), y la ubicación de sus regiones (3ra tabla), y una vez utilizada esta tabla debo eliminarla, las tres tablas están relacionadas, ¿Cómo puedo hacer esto mediante consultas?

1 respuesta

Respuesta
1
Ok, se puede hacer, pero la pregunta es, para que quieres hacer una tabla si luego la vas a borrar. Creo que es más óptimo para la base de datos y para el programa, que en vez de a hacer una tabla temporal, hagas una consulta y la metas en un recordset y trabajes con el recordset como si fuera una tabla durante el programa, y luego cuando el programa finalize, se cierra el recordset y en la base de datos no has tocado nada.
Pero de todas formas te digo como se puede hacer. Cuando a mi me hace falta hacer algo parecido a lo que me dices hago lo siguiente:
1º Voy a la base de datos y hago la consulta que quiero que contenga los datos de mi tabla.
2º En el tipo de consulta especifico que es de creación de tabla.
3º Ejecuto la consulta para que me cree la tabla con la estructura y los datos de ejemplo. (Para ver si la consulta está correcta)
4º En VB pongo conexion. Execute "DELETE * FROM TABLATMP"
Donte conexion es el nombre de la conexion q tengas y TABLATMP es el nombre que le has puesto a la tabla en la bd.
5º Luego al VB y creo un recordset con la consulta de selección (no con la de creación)
6º Recorro el rs e inserto en la tabla los registros.
7º Si al final del programa se tiene que quedar la tabla vacía, repetimos el 4º paso.
Si tienes alguna otra duda házmelo saber.
Mil gracias por tu ayuda, me aclaraste un montón de dudas, ¿pero para hacer todo mejor podrías contarme como trabajar con el recordset y la consulta? ¿Y cómo hago para que este presente en todo el programa sin tener que conectar y desconectar continuamente? Porque sobre ese recordset haré mil y un otras consultas para emitir otros tantos reportes.
Te lo agradecería de todo corazón.
Otra vez, gracias.
No es difícil, puedes hacer varias cosas. Una es hacer una función en el proyecto en la cual declares es recordset como variable global para poder llamarla desde cualquier parte del programa. De esta manera solo tendrías que llamar a la función para que abriera el recordset cuando lo vayas a utilizar.
Pero si le vas a dar mucho uso, mejor es que lo abras al principio del programa. (Haz un rsRecordset. Open ("select ...), conexión, tipoderecord, tipodebloqueo )
Y déjalo abierto.
Cada vez que lo vayas a usar para un bucle o algo, o para rellenar un informe, haz un rsRecordset.moveFirst y ya está. Te lo leerá todo entero luego.
Si necesitas alguna aclaración aquí estaré Meli...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas