¿Cómo puedo unir 155 tablas vinculadas desde excel con igual estructura en Access?

Tengo 155 tablas vinculadas desde Excel (debido a que hay 1 archivo en Excel por usuario) a Access 2007, las cuales tienen la misma estructura (campos), pero diferentes registros. Necesito unir todos esos registros en 1 sola tabla o consulta. Utilicé la opción: Select * from Tabla1
UNION select * from Tabla2, pero sólo me permite vincular hasta 50 tablas, cuando intento hacerlo con 51 me dice que la consulta es muy compleja. Si hago 4 consultas con la anterior expresión, es decir, con aproximadamente 40 tablas e intento unir esas 4 consultas en una 5ta consulta, me sale nuevamente error. ¿Agradezco me enseñen como puedo unir los datos de tantas tablas en Access?

1 respuesta

Respuesta
1

Lo que podrías hacer es crear una consulta de acción para anexar datos, y después en código VBA creas un bucle For y que se repita hasta que llenes toda la información de la tablas que tienes en excel, te recomiendo usar ADO en vez de DAO pero lo dejo a tu criterio.

Hola experto,

Te agradezco por responderme, tengo 2 preguntas:

1. Este código lo escribiría en una consulta desde access o en una macro en un libro de Excel?

2. podrías por favor enseñarme como sería el código completo para intentar hacerlo?

Mil gracias y Saludos =)

El código lo pondrias en un modulo, Pero tendrías que escribir el nombre de las tablas en una tabla o para ejecutar el siguiente código

sub InsertTablas

Dim entradas As ADODB.Command

Dim tablas As ADODB.RecordSet
Dim conteo as Interger

Set tablas = new ADODB.RecrodSet

With tablas

.ActiveConection = CurrentProject.Connection

.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open "SELECT NombreTablas FROM Tablas"

End With

For conteo = 1 to tablas.RecordCount

Set entradas = New ADODB.Command
With entradas
.ActiveConnection = CurrentProject.Connection
.CommandText = "insert into TablaAnexado(*) " & _

"Select * from " & tablas.field(0)
.Execute
End With

Set entradas = Nothing

tablas.MoveNext

NEXT

Set entradas = Nothing
Set tablas = Nothing
End Sub

Muchas gracias yashiroring por responderme y ayudarme, no fui capaz de hacerlo con tu propuesta inicial, pero me sirvió para visualizar otro tipo de soluciones con macros. =)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas