Mover registros entre tablas automáticamente

Espero que podáis resolverme esta duda. De antemano, Gracias.
El caso es que tengo una base de datos en las que entre otras tengo dos tablas,
EXPEDIENTES Y EXPEDIENTES_FINALIZADOS, ambas son idénticas en cuanto a los campos.
Necesito colocar en un Formulario un botón que me MUEVA el registro actual mostrado en pantalla a la otra tabla, pero que antes de hacerlo, me muestre un cartel de confirmación con ACEPTAR o CANCELAR, advirtiendo que los datos serán movidos etc etc... Blabla.

3 Respuestas

Respuesta
1
El Evento "Al hacer click" del botón podría ser algo así:
Private Sub Boton_Click()
   If MsgBox("¿Mover Registro?", vbQuestion + vbOKCancel, "Título") = vbCancel Then Exit Sub
   DoCmd.SetWarnings False
   DoCmd.RunSQL "INSERT INTO [EXPEDIENTES_FINALIZADOS] SELECT * FROM [EXPEDIENTES] WHERE CodExp='" & Me!CodExp & "';"
   DoCmd.RunSQL "DELETE * FROM [EXPEDIENTES] WHERE CodExp='" & Me!CodExp & "';"
   DoCmd.SetWarnings True
End Sub

Este ejemplo supone que la tabla tiene como clave CodExp y que es de tipo texto, y que después de moverlo, necesitas borrarlo de la tabla original.
Respuesta
1
Añade el botón en la pantalla y dale botón derecho, propiedades
En el evento click (al pulsar) le das a generar código y te aparece una pantalla de visual basic. Tienes que ponerle un código parecido al que te pongo
If MsgBox("¿Seguro que desea finalizar el Expediente?", vbQuestion + vbYesNo, "Finalizar expediente") = vbYes Then
        CurrentDb.Execute "INSERT INTO EXPEDIENTES_FINALIZADOS SELECT * FROM EXPEDIENTES WHERE IDExpediente = " & Me.idexpediente
        CurrentDb.Execute "DELETE FROM EXPEDIENTES WHERE IDExpediente = " & Me.idexpediente
        Me.Requery
    End If
Cambia los nombre de campo y tabla (en negrita) por los que tienes tu en la tabla y en la pantalla el que se llama me. Idexpediente
Respuesta
No veo mucha complicación solo es manejo de eventos un botón que te permita la confirmación de dicho movimiento luego un proceso de copia mediante recordset o consulta sql insert into a la tabla destino y por ultimo usas un marcador previamente cargado con la llave primaria del registro o dato univoco que puedas usar para eliminarlo usando ya sea recorset o instrucción sql delete from where

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas