Enviar datos de formulario a tabla en base a la opción elegida por el usuario.

Nuevamente recurro a vuestros conocimientos y os pido una ayudita con este asunto.

Tengo un formulario con un cuadro de lista "Causa_Baja" con varios valores y la idea es que en el evento "al cambiar", salga un msgbox del tipo "vbYesNo" y que si el usuario elige la opción "SI", los datos del registro pasen a otra tabla "T_HistoricoSocios", y si elige la opción "NO", salga del procedimiento.- Llevo varios días intentándolo, y por mas vueltas que le doy, no lo consigo.

1 Respuesta

Respuesta
2

Esto te debiera servir, pero yo usaría el evento "Después de actualizar":

If MsgBox("¿Quieres pasar los datos al histórico?",vbYesNo+vbQuestion,"Confirma")=vbYes Then
'Aquí el código que tienes para hacer el traspaso
End If

Salvo que hagas más cosas en el código que no sean el traspaso a la tabla histórico, no te haría falta nada más, pues si pulsa el botón No, el código que te propongo ya no hace nada.

El código que tengo para enviar los datos, no me funciona, creo que le falta algo y no se que es, tengo puesto esto:

DoCmd.SetWarnings False
Dim Instruccion As String

Instruccion = "INSERT INTO T_HistoricoSocios(Nroconsec,dni_soc,nombre,apellido,Fecha_nac,Edad,Sexo,domicilio,codigo_postal,poblacion,provincia,telefono,email,Fecha_Alta,Estado_Edad,Cuota_Anual,Forma_Pago,Baja,Fecha_Baja,Causa_Baja,Foto,Cargos_Junta,Galardones,Archivos_Relacionados)VALUES(Nroconsec,dni_soc,nombre,apellido,Fecha_nac,Edad,Sexo,domicilio,codigo_postal,poblacion,provincia,telefono,email,Fecha_Alta,Estado_Edad,Cuota_Anual,Forma_Pago,Baja,Fecha_Baja,Causa_Baja,Foto,Cargos_Junta,Galardones,Archivos_Relacionados)"

¿Puedes ayudarme con esto?

¿Ese es todo el código que tienes? ¿No tienes una línea DoCmd. RunSQL Instrucción?

En cualquier caso, yo quitaría la línea DoCmd. SetWarnings False, porque si hay algún error en la SQL no te vas a enterar. Además, si luego no vuelves a activar los avisos, te quedan desactivados para siempre, con lo que de nuevo, ante ciertos errores no te avisa.

Si lo quitas, y quieres evitar los mensajes de las consultas de acción, usa en vez del DoCmd. RunSQL Instrucción, esta otra: CurrentDb. Execute Instrucción

Necesito que guíes un poco más en esto.

He puesto la línea "DoCmd. RunSQL Instrucción" y me el siguiente error

El runsql tienes que ponerlo después de construir la sql, no antes... si no, malamente podrá ejecutar algo..

Tienes razón, son conceptos que aun no me han quedado claros, pero que me los apunto para futuras ocasiones.

He puesto esa linea después de construir la SQL, y me sigue dando error, en esta ocasión:

No sé a que se refiere, si es a la lista de opciones  "causa_Baja" o a otro campo del formulario. 

Yo lo que pretendo es que pasen los valores de los campos que he declarado en la Instrucción.

Siguiendo el método prueba/error, he comprobado que lo que creaba conflicto eran los campos de "Datos Adjuntos" tenia dos, uno para la foto y otro para los documentos. Los he quitado del cogido y ya funciona correctamente, me lo anoto para futuras ocasiones-

Muchas gracias por tu ayuda.amigo

Me alegra ver que has dado con el problema y lo has solucionado. A mi viendo el mensaje de error, no se me hubiera ocurrido que el problema eran esos campos "de datos adjuntos. Hubiera pensado en un campo multivalor (un cuadro combinado/lista al que le marcaste la opción de varios valores).

De todas formas, insisto, es preferible (en mi opinión) que uses CurrentDb. Execute que DoCmd. RunSQL

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas