Unir muchas tablas iguales en una sola

Los expertos. Os dejo mi duda inicial aquí porque a lo mejor la respuesta le puede servir a otro usuario.
Pregunta inicial ya respondida:
Llevo unas dos semanas dando vueltas a todo internet y he encontrado mucho pero no me ha servido nada. Tengo una bd en Access con dos tablas con los mismos campos. Son estructuralmente iguales llamadas "General" y "Historico".
En un formulario continuo de origen "General" quiero agregar un botón al registro para que al pulsarlo, ese registro sólo se vaya a la tabla Histórico pero que no desaparezca de General. Vaya, escribiendo esto se me ha ocurrido una idea. Agregar un checkbox Si/No y el formulario de "Historico" vincularlo a "General" filtrando sólo los que tengan en Checkbox "Si" y añadir un par de campos a la tabla... Bueno, pues entonces esa consulta está resuelta.
Unir muchas tablas iguales en una sola
Tengo una bd a la que exporto diariamente una tabla con nombre "(dd/mm/aa)" en concepto de copia de seguridad. Esa bd tiene ahora los registros de dos meses, 40 tablas aprox. Que son estructuralmente iguales. Mi pregunta es: ¿Puedo unirlas todas en una misma tabla? O bien, ¿mediante SQL, crear una consulta que me muestre TODAS las tablas (contenido) en una sola consulta? Es que para analizarlas es una locura y me es más productivo en una sola.
Todo este problema viene de otra cuestión que realicé a parte.

1 respuesta

Respuesta
1
Podrías hacer 2 cosas, una crear una tabla y mediante código añadir los registros de las que tienes en histórico con Docmd. runsql "Insert Into............"
También puedes hacer una consulta de unión, lo que pasa es que al ser tantas tablas sería una sql bastante larga.
Las consultas de unión son:
Select * from NombreTabla1 UNION select * from NombreTabla2...... etc.
Me cuentas, si creamos código o consulta.
¿No hay un comando en SQL tipo SELECT ALL TABLES?
Creo que voy a tener que hacerlo a mano tipo copy&paste hasta que solucione lo de la otra cuestión que he enlazado.
Porque si lo uno todo en una consulta, ¿esa consulta la puedo tratar como una tabla entera o podría pasarla de consulta a tabla?
El select all tables creo que es en oracle, en access no me suena.
Te mando el código para insertar todas las tablas que tengas en una que llamo Total:
Function UnirTablas()
Dim db As Database
Dim tb As TableDef
Set db = CurrentDb
For Each tb In db.TableDefs
If tb.Name <> "Total" And Left(tb.Name, 4) <> "MSyS" Then
DoCmd.RunSQL "Insert into total select * from " & tb.Name & ""
End If
Next tb
End Function
Cualquier duda o aclaración, me consultas.
Ok, pues parece que esa es la fórmula. Recorres todas las tablas que sean distinta de la de destino y vas insertándolas en un bucle hasta que recorres todas...
Parece una buena idea, mañana lo pongo en práctica. ¡Muchas gracias!
¿Podrías echarle un vistazo a esta otra? No creo que la respuesta sea muy distinta, más o menos tengo que coger esta base. Lo intentaré por mi cuenta de todos modos.
¡Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas