¿Cómo puedo modificar desde un formulario continuo ciertos campos de una tabla donde se almacenan los registros?

Tengo una tabla principal donde almaceno los registro, estos, por el número de campos que representan los lleno desde un formulario porque además existe un registro fotográfico y hacerlo de esa manera es la más correcta, pero, existe la necesidad de que ciertos registros cambian de ubicación y hay que actualizar estos datos, pero quiero hacerlo desde un formulario continuo donde los llame por su número de identificación único e irrepetible, y mostrar sólo la referencia principal del registro para tener la certeza de que es el que deseo editar y los campos donde almaceno la ubicación actual, lo he realizado de la siguiente manera, pero me manda un error, ¿Qué estoy haciendo mal?

He creado una tabla que se llama [Cambio de Centro de Adscripción] (bueno lo pongo de esa manera para que se entienda mejor, según yo) He puesto los campos de fecha de movimiento, responsable del movimiento y un número de referencia que me remite a un documento que firman los que reciben los bienes representados en dicho movimiento.

Por otro, lado he credo otra tabla, que me servirá como sub formulario, que es donde llamaré cada registro de mi tabla principal, mediante una consulta, agregaré los campos de referencia y los de ubicación, los de referencia les pondré les propiedades de Habilitado. No para evitar modificación, pero los de ubicación, sí que requiero que se modifiquen, pero al realizar esta acción, el sistema me manda este mensaje:

Espero haber sido claro y sí es así, seguro estoy de que podré contar con el apoyo de ustedes.

2 Respuestas

Respuesta
2

Mauricio, te voy a ser terriblemente sincero. No he entendido nada. Probablemente alguno de los campos del registro que quieres "mover" sea indexado sin duplicados, por eso al querer colocarlo en otro lugar te dice que no puede. Pero es una simple conjetura por lo dicho al principio.

Respuesta
1

Quiero ayudarte pero no entiendo claramente la estructura que tienes.

Entiendo que tienes una tabla principal (Cambio de Centro de Adscripción, que llamaremos CCA) que contiene los campos: Fecha, Responsable y Referencia. Pero no entiendo como van las otras tablas. Recuerda que el orden adecuado es que definas las relaciones entre las tablas, que en este caso creo que son de uno a varios. Si estas trabajando con Access deberías especificar estas relaciones de tablas antes de hacer los formularios y subformularios. Esto le ayuda a Access a guiarte y automatizar algunas características como la relación del formulario principal con su sub-formulario. Si tienes forma de enviarme una imagen como la de abajo con la relación de las tablas y explícame mejor (o imagen) lo de los subformularios, Para ayudarte mejor.

Saludo

Buen día Camilo

Y gracias sinceras por tu amable respuesta.

Aquí puedes ver la estructura de mis tablas

He creado esta consulta para mostrar en el Sub Formulario los campos que deseo modificar, agregando como referencia sólo Título y Autor (aunque estos no se modificarán)

Por último he generado este Formulario con un Sub Formulario donde mediante el [IdInventario] llamo el registro a modificar, me muestra los campos, pero al querer modificar, es cuando me manda el mensaje de error

Mucho agradeceré tu amable respuesta y te estaré muy agradecido por tu aporte en la solución de este conflicto de mi base.

Saludos cordiales

Lo primero que veo es que las relaciones que tienes no te permites esa estructura: Cuando se utiliza una estructura Formulario/SubFormulario, el RowSource (Origen del registro) del formulario principal corresponde a la tabla del lado UNO de la relación y el subformulario corresponde a la tabla del lado VARIOS de la relación. De esta manera, por ejemplo si tienes una tabla Clientes (del lado UNO) y otra tabla Sucursales Clientes (del lado VARIOS) el formulario principal muestra la información de un registro correspondiente al Cliente, y el sub-formulario muestra varios registros con las sucursales de ese cliente.
Por eso no encuentro lógica en que tomes como base del form principal la tabla CambioCentroAdscript y como base del sub-form la tabla RegistroObra (creo que esa, porque no se especifica). Aquí no hay relación UNO a Varios. Es posible que lo requieras sea un formulario basado una sola tabla o consulta, con filtros que te permitan visualizar unicamente ciertos registros, según un criterio.
Para seguir ayudándole,¿cuénteme qué campos (de que tabla) desea poder editar en este formulario?

Gracias nuevamente por tu amable respuesta!

Los campos que deseo modificar son [IdCentro], [IdSubUbicación], [IdÁrea] y [IdSubÁrea] de la tabla [RegistroObra], estos campos los llené en la primer captura del registro, pero como las piezas cambian de ubicación y en algunas ocasiones son varias las piezas que se mueven no quiero entrar el formulario y modificar uno  a uno, por lo que pensé hacerlo mediante un formulario con un sub formulario continuo, donde sólo tenga que ingresar el número de inventario de la pieza, me muestre los campos que especifico en el primer y segundo reglón, modificar y listo.

Espero haber sido claro y que puedas darme apoyo

Gracias infinitas por tu atención

Sigue sin estar muy claro el esquema: Entiendo que cuando dices 'las piezas que se mueven'  te refieres a varios registros de la tabla [RegistroObra].  Y entiendo que estos registros van a cambiar a la misma ubicación ([IdCentro], [IdSubUbicación], [IdÁrea] y [IdSubÁrea]).

De ser así te sugiero que adiciones un campo tipo conmutador a la tabla (Campo lógico SI/NO) o uses un cuadro de lista de selección multiple y hagas un formulario de lista que permita filtrar y seleccionar los registros según el criterio que te interesa.

(No pegó la imágen)
Pero te decía que deberías tener un formulario que te permita filtrar los registros que quieres cambiar de ubicación y seleccionarlos mediante un campo booleano (más fácil) o mediante un cuadro de lista y que ademas pregunte por la nueva ubicación de los registros seleccionados, y acto seguido, puede ser con un botón, realizar una consulta de modificación como: UPDATE Tabla SET Campo_a_modificar = Nueva_Ubicación WHERE CampoS/N = True;

¡Gracias! 

Intentaré lo que me indicas y te estaré contando los resultados

Saludos

Vale. Revisa tu diseño. Deberías tener algo como esto. (Las tablas Ubicaciones y SubUbicaciones) podrían ser una sola. Si requieres guardar registro histórico de los cambios de ubicación, crea otra tabla que guarde la fecha, el origen y el destino. Lei otra pregunta que publicaste respecto a este tema y me parecio que el tema que debes revisar es el diseño de la BD.

¡Gracias! y buen día!

Efectivamente, ese es otro de los temas que deseo resolver en mi BD, hay movimientos que no deseo conservar de manera histórica, pero hay otros que por supuesto que sí, pero quiero resolver este en primer lugar.

Gracias nuevamente por tu interés

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas