Actualizar 2 tablas mediante casilla de verificación

Tengo una tabla de inventario llamada tbinventario y otra llamada SubMemo_asignacion, en ambas tengo un campo llamado asignado, préstamo y devuelto tipo Si/No.

Bien, en un formulario llamado Memo de asignación tengo un subformulario donde se asigna algún equipo a un usuario, al seleccionar el equipo se debe marcar la casilla se es una asignación, préstamo o una devolución, bien lo que quiero es que adicional cuando le de guardar me actualice la tabla tbinventario en los campos asignado, préstamo o devolución según sea el caso, adjunto las imágenes:

Actualmente tengo el codigo asi pero no me actualiza nada:

2 Respuestas

Respuesta
1

Si se utiliza la ruta absoluta: esta incompleta

Un formulario principal : memo de asignación
Su subformulario :  submemo_asignacion

Dos cuadros de texto en el subformulario (cvasignacion y Codigo_It )

Docmd.RunSQL "Update tbinventario Set asignado = Forms|[memo de asignacion]![submemo_asignacion]!Form!cvasignacion Where Codigo_It = Forms|[memo de asignacion]![submemo_asignacion]!Form!Codigo_It "

Disculpa el campo cvasignacion en el formulario es una casilla de verificación y el campo es Si/No

Hay dos formas de referenciar a un 'objeto Access', con ruta absoluta o con una ruta relativa (y el contenido del objeto no importa, solo ha de cumplirse que en las asignaciones AMBOS datos han de ser equivalentes: de igual tipo).
En la respuesta se utiliza la RUTA ABSOLUTA por ello no hay roturas ni empalmes en la cadena de texto.

Cuando se genera una RUTA RELATIVA hay que sacarla del texto para que Access EVALUE el objeto y también habrá que indicarle el tipo de dato (nota: un campo Si/No se guarda como -1/0 .. un numero).

La referencia relativa en un formulario es 'ME' que implica a 'la parte de su ruta absoluta' que ya conoce, (yo digo 'la nariz de Pepe' y Pepe puede referirse a su nariz como 'Mi nariz') el ya sabe que 'el es Pepe' y utiliza MI (la ruta relativa).
Cambiar tres campos booleanos por otro tipo de dato es una opción valida (si los actuales no tienen usos posteriores ) y si se desea mantener la estética en el formulario ¿un grupo de opciones?.

Respuesta
1

Si el campo Codigo_IT en la tabla tbinventario es autonumérico y clave principal
En la tabla SubMemo_asignacion el campo Codigo_IT no puede ser de tipo Texto

Al establecer una relación sobrarían campos en la tabla SubMemo_asignacion, porque
Ya están los campos en la tabla tbinventario

No es necesario utilizar Forms! Porque se está en el mismo formulario de donde se ejecuta la instrucción.

La actualización sería algo como:

Docmd.RunSQL "Update tbinventario Set asignado =" & Me.Asignado & " Where Codigo_It =" & Me.Codigo_IT 

Una pregunta ¿Para que utiliza Asignado, Préstamo y Devuelto? ¿Es que un activo puede tener al mismo tiempo los 3 estados? Personalmente cambiaría los 3 por un solo campo, por ejemplo, estado, en donde:

1= Asignado 2= Préstamo y 3= Devuelto. Así se evita utilizar campos Si/No son un desastre.

¡Gracias! Pero hice lo que me dijiste, cambie los 3 campos si/no por un solo campo llamado estado donde se va a ingresar si es asignación, préstamo o si después de la asignación o el préstamo es devuelto.

De igual manera me da error:

DoCmd.RunSQL "Update tbinventario Set Estado = " & Me.SubMemo_asignacion!ccestado & " Where Codigo_IT = '" & Me.SubMemo_asignacion!cccodigo_it & "´"

El campo código it de la tabla tbinventario es autonumérico y el de la tabla submemo_asignacion es numérico.

Le respondí en lawebdelprogramador.

Le adjunté en la lawebdelprogramador la base de datos con algunos cambios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas