Botón que ejecuta 3 consultas de acción
Llevo varios días dándole a un problema sobre el cual ya he preguntado en este foro, pero no me lo supieron resolver... Aquí pego toda la información desde el otro hilo a ver si alguien puede echarme una mano... GRACIAS!
Tengo un formulario de access con un botón que me ejecuta 3 consultas, cada una de las cuales me pide que ingrese un nombre, que en este caso es el mismo para las tres, por lo que he de introducir 3 veces el mismo nombre. ¿Cómo hago para que solo tenga que introducir el nombre una vez?
El nombre que he de ingresar esta en el formulario. El formulario es para hacer un registro de residentes, y tiene un subformulario donde ingreso una serie de actividades que realiza cada residente. El botón del que hablo sirve para dar de baja a un residente, y ejecuta 3 consultas. La primera es de anexar, para traspasar los datos del residente a otra tabla donde se almacenan los residentes dados de baja; la segunda también de anexar traspasa los datos de las actividades a otra tabla que almacena las actividades de los residentes dados de baja; y la tercera es una consulta de eliminar que borra el registro del residente a dar de baja. Entonces me pide que ingrese el nombre del residente 3 veces, una por cada una de las consultas que ejecuta.
El código de la primera consulta, que es la que anexa los datos de los residentes en otra tabla, es:
INSERT INTO [residentes trasladados] ( nombre, nacimiento, evaluacion, diagnostico, aptitud, vision, gafas, audicion, notas_alfabetizacion, alfabetizacion, habitos, avd, aivd, estado, socializacion, lenguaje, grupo, observaciones, observaciones_pai )
SELECT residentes.nombre, residentes.nacimiento, residentes.evaluacion, residentes.diagnostico, residentes.aptitud, residentes.vision, residentes.gafas, residentes.audicion, residentes.notas_alfabetizacion, residentes.alfabetizacion, residentes.habitos, residentes.avd, residentes.aivd, residentes.estado, residentes.socializacion, residentes.lenguaje, residentes.grupo, residentes.observaciones, residentes.observaciones_pai
FROM residentes
WHERE (((residentes.nombre)=[introducir el nombre del residente]));
el de la segunda, que es la que anexa los datos de las actividades es:
INSERT INTO [pai trasladados] ( nombre, codigo, actividad, nota1ev_junio, [%1ev_junio], ayuda1ev_junio, nota2ev_diciembre, [%2ev_diciembre], ayuda2ev_diciembre, ev_final, reprogramar, año, grupo )
SELECT [consulta pai].nombre, [consulta pai].codigo, [consulta pai].actividad, [consulta pai].nota1ev_junio, [consulta pai].[%1ev_junio], [consulta pai].ayuda1ev_junio, [consulta pai].nota2ev_diciembre, [consulta pai].[%2ev_diciembre], [consulta pai].ayuda2ev_diciembre, [consulta pai].ev_final, [consulta pai].reprogramar, [consulta pai].año, [consulta pai].grupo
FROM [consulta pai]
WHERE ((([consulta pai].nombre)=[introducir el nombre del residente]));
y el de la tercera, que es la que elimina el registro es:
DELETE residentes.nombre, residentes.nacimiento, residentes.evaluacion, residentes.diagnostico, residentes.aptitud, residentes.vision, residentes.gafas, residentes.audicion, residentes.notas_alfabetizacion, residentes.alfabetizacion, residentes.habitos, residentes.avd, residentes.aivd, residentes.estado, residentes.socializacion, residentes.lenguaje, residentes.grupo, residentes.observaciones, residentes.observaciones_pai
FROM residentes
WHERE (((residentes.nombre)=[introducir el nombre del residente]));
He probado a quitarle el [introducir el nombre del residente] de WHERE y buscar el registro en el formulario para entonces ejecutar las consultas, pero si lo hago así me elimina el registro que he buscado, y me anexa los datos de toda la tabla, es decir de todos los residentes.
La verdad que es un poco engorroso por que si me equivoco alguna de las 3 veces al introducir el nombre me provoca errores e incluso puedo perder información.
En el formulario el nombre se escribe en la Etiqueta1, cuyo cuadro de texto se llama NOMBRE. He probado a poner [NOMBRE] en lugar de [Introducir el nombre del residente] y solo me pide que ingrese una vez el nombre (en el momento que ejecuta la consulta de anexar relativa a las actividades, es decir, la segunda, lo que me hace pensar que algo no esta bien planteado), y el problema es que me anexa y elimina todos los registros de las tablas, es decir, de todos los residentes. Lo que he puesto ha sido lo siguiente:
Consulta 1:
WHERE (((RESIDENTES.NOMBRE)=[NOMBRE]));
Consulta 2:
WHERE ((([Consulta PAI].NOMBRE)=[NOMBRE]));
Consulta 3:
WHERE (((RESIDENTES.NOMBRE)=[NOMBRE]));
Una
Tengo un formulario de access con un botón que me ejecuta 3 consultas, cada una de las cuales me pide que ingrese un nombre, que en este caso es el mismo para las tres, por lo que he de introducir 3 veces el mismo nombre. ¿Cómo hago para que solo tenga que introducir el nombre una vez?
El nombre que he de ingresar esta en el formulario. El formulario es para hacer un registro de residentes, y tiene un subformulario donde ingreso una serie de actividades que realiza cada residente. El botón del que hablo sirve para dar de baja a un residente, y ejecuta 3 consultas. La primera es de anexar, para traspasar los datos del residente a otra tabla donde se almacenan los residentes dados de baja; la segunda también de anexar traspasa los datos de las actividades a otra tabla que almacena las actividades de los residentes dados de baja; y la tercera es una consulta de eliminar que borra el registro del residente a dar de baja. Entonces me pide que ingrese el nombre del residente 3 veces, una por cada una de las consultas que ejecuta.
El código de la primera consulta, que es la que anexa los datos de los residentes en otra tabla, es:
INSERT INTO [residentes trasladados] ( nombre, nacimiento, evaluacion, diagnostico, aptitud, vision, gafas, audicion, notas_alfabetizacion, alfabetizacion, habitos, avd, aivd, estado, socializacion, lenguaje, grupo, observaciones, observaciones_pai )
SELECT residentes.nombre, residentes.nacimiento, residentes.evaluacion, residentes.diagnostico, residentes.aptitud, residentes.vision, residentes.gafas, residentes.audicion, residentes.notas_alfabetizacion, residentes.alfabetizacion, residentes.habitos, residentes.avd, residentes.aivd, residentes.estado, residentes.socializacion, residentes.lenguaje, residentes.grupo, residentes.observaciones, residentes.observaciones_pai
FROM residentes
WHERE (((residentes.nombre)=[introducir el nombre del residente]));
el de la segunda, que es la que anexa los datos de las actividades es:
INSERT INTO [pai trasladados] ( nombre, codigo, actividad, nota1ev_junio, [%1ev_junio], ayuda1ev_junio, nota2ev_diciembre, [%2ev_diciembre], ayuda2ev_diciembre, ev_final, reprogramar, año, grupo )
SELECT [consulta pai].nombre, [consulta pai].codigo, [consulta pai].actividad, [consulta pai].nota1ev_junio, [consulta pai].[%1ev_junio], [consulta pai].ayuda1ev_junio, [consulta pai].nota2ev_diciembre, [consulta pai].[%2ev_diciembre], [consulta pai].ayuda2ev_diciembre, [consulta pai].ev_final, [consulta pai].reprogramar, [consulta pai].año, [consulta pai].grupo
FROM [consulta pai]
WHERE ((([consulta pai].nombre)=[introducir el nombre del residente]));
y el de la tercera, que es la que elimina el registro es:
DELETE residentes.nombre, residentes.nacimiento, residentes.evaluacion, residentes.diagnostico, residentes.aptitud, residentes.vision, residentes.gafas, residentes.audicion, residentes.notas_alfabetizacion, residentes.alfabetizacion, residentes.habitos, residentes.avd, residentes.aivd, residentes.estado, residentes.socializacion, residentes.lenguaje, residentes.grupo, residentes.observaciones, residentes.observaciones_pai
FROM residentes
WHERE (((residentes.nombre)=[introducir el nombre del residente]));
He probado a quitarle el [introducir el nombre del residente] de WHERE y buscar el registro en el formulario para entonces ejecutar las consultas, pero si lo hago así me elimina el registro que he buscado, y me anexa los datos de toda la tabla, es decir de todos los residentes.
La verdad que es un poco engorroso por que si me equivoco alguna de las 3 veces al introducir el nombre me provoca errores e incluso puedo perder información.
En el formulario el nombre se escribe en la Etiqueta1, cuyo cuadro de texto se llama NOMBRE. He probado a poner [NOMBRE] en lugar de [Introducir el nombre del residente] y solo me pide que ingrese una vez el nombre (en el momento que ejecuta la consulta de anexar relativa a las actividades, es decir, la segunda, lo que me hace pensar que algo no esta bien planteado), y el problema es que me anexa y elimina todos los registros de las tablas, es decir, de todos los residentes. Lo que he puesto ha sido lo siguiente:
Consulta 1:
WHERE (((RESIDENTES.NOMBRE)=[NOMBRE]));
Consulta 2:
WHERE ((([Consulta PAI].NOMBRE)=[NOMBRE]));
Consulta 3:
WHERE (((RESIDENTES.NOMBRE)=[NOMBRE]));
Una
Respuesta de dayvitt
1