Pasar valor campo calculado en formulario a una tabla

Estoy haciendo una base de datos en access con un poquito de cálculos y soy un completo ignorante en access.
El caso es que elaborado un formulario a partir de una tabla, he conseguido crear un campo calculado en el formulario cuyo valor necesito que se refleje a su vez en el campo del mismo nombre, pero esta vez en la tabla (es una clave del registro conformada con cadenas de caracteres específica de varios campos).
Mi problema es que no sé cómo hacer pasar el valor del campo calculado en el Formulario al campo en la Tabla relacionada, pues haga lo que haga siempre se queda en blanco en la tabla, aunque el valor correcto se refleja en el formulario.

1 respuesta

Respuesta
1
Lógicamente ya que los controles calculados son independientes y no dependen de ningún campo de una tabla. Pero tiene una solución fácil, siempre que sea necesario guardarlo, ten en cuenta que un campo calculado lo puedes calcular (valga la redundancia) en cualquier momento.
En la tabla en cuestión crea un campo más, pongamos "valor". En el formulario dónde introduces los datos, pongamos que tienes un control que hace el calculo que se llama "calculo". Este control lo puedes poner en visible = no. Luego en el evento que te venga bien, por lo general, después de introducir el último valor que sirve para el calculo, pones:
me.valor = me.calculo
Espero haberme expresado bien, sino es así, comenta el problema que tengas.
Mi Web Mi blog Mi foro
Gracias por contestar tan pronto.
Te expresas perfectísimamente, pero voy a ahondar algo más en lo que hice. Es una base de datos de una biblioteca de música. Se ha creado un protocolo para asignar códigos en función de determinados datos por lo que he creado un campo en la tabla de PARTITURAS llamado CLAVE REGISTRO.
A su vez he creado un ¿campo? En el Formulario llamado exactamente igual que contiene la fórmula para su generación tipo =izq$() & ..., etc., etc., etc. El caso es que el cálculo me lo hace bien (necesito que se vea el campo cuando se introducen los valores en los diferentes campos del formulario para que los usuarios entiendan al introducir los registros cómo se genera la dichosa CLAVE REGISTRO)
Mi problema está pues en que quiero meter el contenido de ese campo del formulario en el campo de la tabla LIBROS...
Si se puede con la fórmula que me has reseñado, ¿dónde he de meter dicha fórmula?
Ya sé que esto es de pardillo y muy novato..., pero es que lo soy, jejejeje
De todos modos muchísimas gracias por tu respuesta, pues aunque no acabo de cuajarlo todo, he captado perfectamente la idea de lo que me quieres decir.
Quizás tengas razón y deba abandonar la idea de que sea visible el cálculo dichoso, y deba hacer lo que me explicas..., aún así no sé dónde debería poner la fórmula que me comentas.
AH! Y POR ÚLTIMO.., en la CLAVE REGISTRO debería aparecer el número de registro (el número que access asigna automáticamente a cada registro que se añade a la tabla) con 5 dígitos independientemente del número que sea (así el primer registro debería aparecer como 00001), PERO NO SÉ DÓNDE DEMONIOS AVERIGUAR O LEER DICHO DATO Y PASARLO A MI FÓRMULA..., jejejeje Sorry por gritar, pero es que me he leído más manuales e instrucciones que en toda mi vida y aún no doy con la solución... si debo ponerlo en otra consulta, indicádmelo, por favor y lo hago, ¿ok?..., y si puedes respondérmelo aquí, pues te lo agradeceré también eternamente.
De nuevo muchas gracias por tu atención
Recibe un fuerte abrazo
Perdón por el retraso pero no he podido antes.
Antes de nada, leerse los manuales es muy útil para ir entendiendo, aunque sea de manera general una serie de cosas (Que es un procedimiento, una función, las tablas, los formularios, eventos, etc). Lo demás, por lo general, se aprende con el uso y el "ensayo-error".
Para lo que quieres y poco a poco, te comento. Creas en el formulario en cuestión, un control independiente (llamémosle control1), es decir sin ningún origen de datos. A ese control, como origen de datos le pones la fórmula que deseas que te calcule. Por ejemplo:
=[campo1]-[campo2]
Luego, pongamos que en la tabla tienes un campo llamado cálculo, que es dónde quieres que se refleje el valor de "control1"".
Una vez que compruebes que el control "control1" te da el resultado esperado, puedes hacer que no se vea. Para ello, con el formulario en modo diseño, haz click en la parte superior izquierda, que es cómo un cuadradito. Se te abrirá una ventana, dónde en uno de sus "eventos" te aparecerá "Al abrir". Selecciona el mismo y en la parte derecha de ese "evento" verás 3 puntitos ..., haz click en ellos y te consultara que es lo que quieres, selecciona "Generador de código". Eso te abrirá el editor de código de VBA. Te aparecerán dos lineas, ya completas:
Private Sub Form_Open(Cancel As Integer)

End Sub
En medio de esas dos líneas deberás poner : me.control1.visible = false
Luego sólo te hace falta colocar en el evento que te venga bien, por ejemplo, en el control "campo2", entras en propiedades y en el evento "después de actualizar" haces lo mismo que en el paso anterior, te volverá a colocar dos líneas en el editor de código y en medio de ellas, pones:
Me.calculo = me.control1
(Lógicamente tendrás que tener un control llamado "calculo" cuyo origen de datos sea el campo de la tabla "calculo".
Si hay algo que no entiendes, me comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas