Como mover un registro a una tabla y eliminarlo

Pues lo dicho: como mover un registro con un botón a una tabla de las mismas características y dfespues eliminarlo.
Mismo ejemplo, tenemos un formulario y se visualizan todos los datos de un registro, pues entonces pulsamos un botón y movemos dicho registro a otra tabla de la base de datos de las mismas características y luego se elimina ese registro.
Tengo algo así, pero no me funciona:
Private Sub Comando138_Click()
Dim db As Database
Set db = Application.CurrentDb
Dim rs1 As Recordset
Set rs1 = db.OpenRecordset("Select * into empleados_baja from empleados where nombre_empleado ='" & [nombre_trabajador] & "'")
[nombre_trabajador] --> Campo del nombre del trabajador
empleados baja---> tabla donde se moverá el registro
empleados-->tabla que se trabaja y que después se eliminara el registro.
Pd: no tengo puesto lo de eliminar el registro porque intente primero mover y no me sale. Gracias de antemano y soy poco experto en visual y access
Respuesta
1
Bueno gracias por confiar en mi y te trtare de ayudar bueno lo primero es que yo tampoco manejo mucho visual basic pero creo que tu pregunta la puedo responder solo usando consultas y macros que la puedes hacer en access .
Una cosa es que no tengo claro si quieres que un botón copie y elimine(haga las 2 funciones) o bien harás 2 botones uno de copiar y otro de eliminar, en el caso de que quieres que el botón haga las 2 cosas tendremos que hacer una macro que ejecute las 2 consultas o si no, solo hacemos los botones y cada uno ejecutara la consulta sql.
Para el caso de que el botón haga las 2 funciones:
Primero que nada nos vamos a macros (que esta en el menu donde creas tablas y consultas) y hacemos una nueva
En la parte donde dice acción en la primera fila hacemos click y te salen una serie de acciones que puedes ejecutar, seleccionas ejecutar sql
Luego abajo te saldrá Instrucción sql y escribes lo siguiente
INSER INTO empleados_baja(campo1, campo2,...)
SELECT (aca colocas los campos de la tabla empleados que selecionas)
FROM empleados
Where nombre_trabajador = [nombre_trabajador]
Luego de eso guardamos pero no cerramos la macro
debajo de la accion que recien creamos volvemos a poner otro ejecutar sql
pero esta vez en instruccion sql hacemos una consulta de eliminar datos
entonces escribimos
DELETE *
FROM empleados
Where nombre trabajador = [nombre trabajador]
Esta consulta al ejecutarla te pide el nombre del trabajador que eliminaras
Luego guardamos la macro y vamos al formulario creamos el botón y nos pedirá con el asistente que se desea hacer, vas en otras y ahí colocas ejecutar macro y luego te pedirá que macro va ejecutar y hacemos click en la macro que creamos y listo.
Para el caso en que abra un botón de copiar y eliminar:
Solamente creamos las consultas sql en access y guardamos cada una como copiar y eliminar, luego al crear botones en tu formulario se abrirá el asistente y te preguntara que hacer y solo vas a otras y haces click en ejecutar consulta y ahí seleccionas la consulta correspondiente para cada botón.
Ojo: en este caso en la condición where tendrás que colocar que el nombre lo obtenga del formulario en vez de que te lo pregunte por lo tanto ahí en la condición de igualdad
tienes que colocar la ubicación del cuadro de texto, es decir, por ejemplo, si tu cadro de texto se llama "nombre" y esta en el formulario llamado "formulario principal", en where colocamos nombre_trabajador = Formularios![formulario principal]![nombre] Y ahí copiara la fila que tenga el nombre mostrado en tu cuadro de texto.
Prueba y dime que te resulto
Muchas gracias por la contextacion y la rapidez. Pero me serge un problema, las tablas son grandes y esto resulta dificultoso a la hora de insertar la sentencia sql en la macro.
¿Alguna solución?
Gracias de nuevo, de antemano una solución magnifica, siempre trabajo con visual no con macros y es una solución muy aceptable si funciona.
Saludos!
¿Pero quieres insertar registro por registro o mover todo ala vez?
El registro visualizado en el formulario, al apretar el botón solo ese registro se mueve. El problema que tiene muchos campos ese registro y al hacer la sentencia sql no me llegan los espacios, máximo 256.
aaa ya tiene muchos campos cierto si es asi tienes que colocar lo siguiente, en select
cuando quieres nombrar todos los campos, solo tienes q colocar un * y listo
por ejemplo si quisiera borrar todos los campos de la tabla empleados tendriq ser asi
DELETE *
FROM empleados

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas