Como mover registros de una consulta a otra tabla Access

Su apoyo con esta pregunta que no logro dar con la solucion.

*Tengo 2 Tablas [Data] y [FullData] donde tengo los mismos regsitros (no son identicos pues en la tabla FullData tengo muchas mas columnas).

*Tengo una consulta donde me traigo informacion de ambas tablas [CSeleccion], en esta consulta cuento la columna [Number] y sumo la columna [Request Qty] y me arroja esto:

Lo que busco es crear un boton que al dar clic, me mueva este resultado a la tabla [SO] .

1 respuesta

Respuesta
1

Puedes hacerlo de muchas formas, desde una consulta de actualización o de datos insertados, no lo concreto por no saber como son las tablas, ni el diseño de la consulta, a poner un botón en el formulario. Vamos a suponer esto

Como da la impresión(por la imagen) de que es un subformulario en vista hoja de datos( que jamás le he visto utilidad alguna), ponlo en vista tabular y en el encabezado del subformulario pones el botón y en el evento al hacer clic del botón puedes poner

dim i as byte(ó integer, depende del número de registros)

docmd.gotorecord,,acfirst

for i=1 to me.recordset.recordcount

Docmd.runsql"insert into tabla1(campoa,campob) values(cuentadenumbre,sumaderequest...) "

ó

docmd.runsql"update tabla1 set campoa=" & me.cuentadenumber & ",campob=sumaderequest...  where [mover order num]=" & me.[moveorder num] & ""

docmd.gotorecord,,acnext

next

Por eso sería conveniente que pusieras, al menos el diseño de la consulta

Muchas Gracias Gonzalo.

Trate con la opcion 2 y me mando un error, pero ya logre resolver mi duda con lo siguiente

Cree la consulta por VBA, despues movi la consulta a mi tabla y despues elimino la consulta temporal.

Dim db As Database
Dim SQL As String
Dim qry As QueryDef
Set db = CurrentDb
SQL = "SELECT Count(TOracleData.Number) AS NoLineas,TOracleDataFull.[Move Order Number] AS MoveOrder, TOracleDataFull.Order AS SO, TOracleDataFull.Delivery AS Delivery, TOracleData.[Status Date] AS Fecha, TOracleData.[Created By] AS Solicitante, Sum(TOracleDataFull.[Requested Qty]) AS [Qty], TOracleDataFull.[Ship to Customer] AS Cliente, TOracleDataFull.[Ship to] AS Direccion, TOracleDataFull.[Org Code] AS Organizacion, TOracleData.[Transaction Type] AS Transaccion FROM TOracleData INNER JOIN TOracleDataFull ON TOracleData.ClaveComp = TOracleDataFull.ClaveComp GROUP BY TOracleDataFull.[Move Order Number], TOracleDataFull.Order, TOracleDataFull.Delivery, TOracleData.[Status Date], TOracleData.[Created By], TOracleDataFull.[Ship to Customer], TOracleDataFull.[Ship to], TOracleDataFull.[Org Code], TOracleData.[Transaction Type]"
Set qry = db.CreateQueryDef("CTemp", SQL)
CurrentDb.Execute ("INSERT INTO SOII SELECT * FROM CTemp")
db.QueryDefs.Delete "CTemp"

Muchas Gracias por tu tiempo

Si tengo la tabla Copia de Clientes

Y tengo un formulario, aprovecho el de clientes pero podría ser cualquier otro, donde le pongo dos botones

Si pulso el Comando 9 donde le digo( no haría falta el formulario podría ser en cualquier lugar, que me pase a la tabla Copia de Clientes, sólo aquellos registro de la tabla clientes en que el país sea Alemania. Al pulsarlo

Por el contrario, si pulso el botón Comando 10, le digo que vaya recorriendo los registros y que me pase los valores de los controles NombreCliente y NombreContacto(no le he puesto ningún criterio, pero se podrían poner los que se quisiera)

El código de los botones es

Private Sub Comando10_Click()
Dim i As Byte
DoCmd.GoToRecord , , acFirst
For i = 1 To Me.Recordset.RecordCount
DoCmd.RunSQL "insert into [copia de clientes](idcliente,nombrecliente,nombrecontacto) values(idcliente,nombrecliente,nombrecontacto)"
DoCmd.GoToRecord , , acNext
Next
End Sub
Private Sub Comando9_Click()
DoCmd.RunSQL "insert into [copia de clientes]select * from clientes where pais=""Alemania"""
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas