¿Cómo puedo mostrar en una tabla los registros de otras dos sin usar Append Query en access?

Disculpa, esto es algo sencillo pero tengo problemas
Ej.
Tengo 2 Tablas (Tabla A, Tabla B), las cuales tienen los mismos campos pero con distintos registros. Lo que quiero es que en una tabla distinta (Tabla C) aparezcan automáticamente todos los datos de la Tabla A y Tabla B. Sé que existe una opción con Append Query, pero no es la que quiero, ya que tendría que utilizar 2 query's.
Es muy importante..
Respuesta
1
No se me ocurre una forma en la cual con una sola consulta puedas unir los registros y además crear una nueva tabla, siempre es necesario primero armar la consulta de union y luego la consulta de creación de tabla.
La única que se me ocurre es que en un formulario crees un botón, ingreses a las propiedades del botón y en la ficha "Eventos" evento "Al hacer clic" en el generador de código pegues esto;
Dim BD As Database
Dim RsTabla As QueryDef
On Error GoTo ControlErr
Set BD = CurrentDb
SQL = "SELECT * FROM Tabla1 union " _
& "SELECT * FROM Tabla2"
Set RsTabla = BD.CreateQueryDef("UnePaso1", SQL)
SQL = "SELECT * INTO TablaC " _
& "FROM [UnePaso1];"
DoCmd.RunSQL SQL
Salir:
Exit Sub
ControlErr:
If Err.Number = 3012 Then
Resume Next
Else
MsgBox ("Ha ocurrido el siguiente error: " & Err.Description & " Verifique por favor.")
End If
Lo anterior hace exactamente lo que te dije al comienzo, crea la consulta de unión y luego crea una nueva tabla con esos registros, por supuesto debes cambiar Tabla1 y Tabla2 por los nombres verdaderos de las tablas en tu base, si no te funciona cuando estés en la ventana de Visual ingresas al menú herramientas, referencias y te aseguras que el "Microsoft DAO 3.x Object library" este activado, puede ser 3.x o 2.x.

3 respuestas más de otros expertos

Respuesta
1
Disculpame pero no tengo ni idea de como hacerlo, yo siempre lo hago corriendo la cantidad de appened querys que sean necesarios y lo hago desde código ya que es más fácil solo tendrías que utilizar el siguiente código en el evento al hacer click del comando:
sub actualizartablac_click()
on error goto erroractualizar
if msgbox("Deseas actualizar la tabla C con datos de las tablas A y B ?",vbyesno+vbquestion,"Aviso")=vbyes then
docmd.setwarnings false
docmd.openquery "qryappenedtablaa",acnormal
docmd.openquery "qryappenedtablab",acnormal
docmd.setwarnings true
msgbox"La actualizacion de la tabla C fue exitosa",vbinformation+vbokonly,"Aviso"
else
end if
exit sub
erroractualizar:
msgbox"Ocurrio Error " & err.number & ", " & err.description,vbcritical+vbokonly,"Error"
exit sub
end sub
Es una respuesta muy aceptable, pero como quito los mensajes de confirmación de los querys y registros utilizando código..
Ya probaste el código, si no lo has probado hazlo el código tiene la instrucción "setwarnings false" este hace que el mensaje de confirmación no salga y "setwarnings true" lo regresa a su estado normal para cuando corras cualquier otra acción los muestre, pero el código que te envíe no debe mostrarlo.
Respuesta
1
Una solución fácil es crear una consulta de Creación de tabla con las dos tablas, relacionarlas por cualquiera de los campos (preferible un indice). Visto en SQL seria así:
SELECT ClientesA.IdCliente, ClientesB.IdCliente, ClientesA.NombreCompañía, ClientesB.NombreCompañía INTO ClientesD
FROM ClientesA INNER JOIN ClientesB ON ClientesA.IdCliente = ClientesB.IdCliente;
Respuesta
1

Se puede hacer fácil, usando una consulta de union, siempre y cuando como dices tengan los mismos campos por ejemplo:

Select * from Tabla1

union all

Select * from Tabla2

Y no cesesitarias tabla porque tendrías todos los datos, si la necesitarás podrías crear una consulta de Creación de Tabla de la Consulta de Union.

Lamento responder ahora, pero recién leo la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas