Pasar registros de una taba temporal a tabla 2

Como puedo pasar los registros de una tabla a otra tabla.

Es decir:

Para ingresar los datos a mi tabla temporal ( tab_tem_sell_in ) importo los registros de una archivo de excel esto lo hace sin problema y me visualiza el resultado de la importación en dicha tabla mencionada anteriormente lo que requiero es que los registros que están en la tabla de paso los agregue en otra tabla ( tab_sell_in).

En mi formulario tengo 2 botones uno para cancelar la operación y otro de contiunuar

Con base a esto tengo una consulta de datos anexados ( cn_agregaratab_sellin)

Que debería hacer el proceso y cargar los datos en mi tabla destino

Respuesta
2

Una sugerencia: para que tener dos tablas solamente basta con importar los datos a la tabla que necesites y listo; la idea de la programación de bases de datos es no tener la información duplicada ; esto se llama "redundancia".

Pero si esa es la solución entonces debs hacer estos pasos :

Paso 1: crear una consulta para seleccionar los registros que se copiarán

Paso 2: convertir la consulta de selección en una consulta de datos anexados

Paso 3: Elegir los campos de destino

Paso 4: obtener una vista previa de la consulta de datos anexados y ejecutarla

Ok te explico a detalle

La tabla temporal es solo de paso ya que al ejecutar el proceso de importación lo que hace primero 1.es limpiar la tabla temporal, 2. posterior ha realizar la carga del archivo muestra el resultado de la importación, 3.se hace depuración y se corre otro proceso, 4.(aquí es donde al darle click aun botón ) debería anexar esa importación a mi tabla final después del ultimo registro anexado o insertado ya depurada y trabajada para correr el siguiente proceso.

Y esa la tabla temporal mantendrá los registros viejos por decirlo así hasta que se cargue otro archivo nuevo

El código que tengo en el botón es el siguiente

Private Sub CONTINUAR_Click() ' inicia registro de datos cargados, distribuyendolos a tabla exp adicionales si ya estaban registrados o la tabla expedientes normal
  Dim detectado As Boolean
  detectado = False
If SELLIN.Form.RecordsetClone.RecordCount <> importa Then
  detectado = True
End If
  If detectado = True Then
    If MsgBox("Hay una diferencia entre la carga obtenida y la carga real del archivo concentrado del sellin si hace clic en continuar la informacion que no se cargo no se vera reflejada para usos futuros ¿Realmente desea continuar?", vbYesNo, "Revision de Reportes") = vbYes Then
      detectado = False
    End If
  End If
  If detectado = False Then
    On Error GoTo msgError
    DoCmd.Hourglass True
    Fecha = Forms!frm_temporalexportacion!SELLIN!FechaEnvio
    Hora1 = Date
    DoCmd.OpenQuery "cn_agregaratab_sellin", acViewNormal 'Registra en tab_sellin los registros existentes en la Base
    'DoCmd.OpenQuery "cn_QuitaExpExistente_en_tab_Expediente", acViewNormal  'Elimina de tab_Expediente todo lo que se pasó a tab_ExpAdicionales
    'DoCmd.OpenQuery "cn_RegistroFaseSeguimiento_Envio", acViewNormal  'Agrega las fases por cada expediente
    'DoCmd.OpenQuery "cn_AgregaExpNuevos", acViewNormal  'Agrega expedientes nuevos a la base
    'DoCmd.OpenQuery "cn_LimpiaTabExpedientes", acViewNormal  'Limpia la tabla de paso tab_Expedientes
    Me.SELLIN.Form.Requery
    Call Excel((Fecha))   'Genera los prellenados
    hora2 = Time
    MsgBox NOMBRETOTAL & ",  Se han registrado exitosamente los registros " & vbCrLf & Hora1 & " a las " & hora2, , "importanción exitosa"
    DoCmd.Close acForm, "frm_TEMPORALEXPORTACION"
    DoCmd.Hourglass False
  End If
Exit Sub
msgError:
    MsgBox Err.Description, vbInformation, "Error"
End Sub

 en esta linea de codigo DoCmd.OpenQuery "cn_agregaratab_sellin", acViewNormal 'Registra en tab_sellin los registros existentes en la Base 

Es donde le digo que abra la consulta y en teoría la tiene que anexar los registros a mi tabla final

Dime tu correo y te envío un ejemplo: pero que sea rápido!

Ya tienes el ejemplo!

1 respuesta más de otro experto

Respuesta
3

Independientemente del código que has puesto, para anexar datos de una tabla a otra basta con usar

docmd.runsql"insert into tabla 1 select * from tabla 2"

Eso sí los campos se llaman igual. Si sólo quieres pasar unos campos determinados

docmd.runsql"insert into tabla1 (cliente, direccion, telefono) select persona, lugar, movil from tabla"

En caso de que quisieras pasar unos registro determinados

docmd.runsql"insert into tabla1 select.....from tabla2 where(por ejemplo) pais=""Alemania"""

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas