Como guardar el resultado de un campo calculado en una tabla ?

Tengo varios campos calculados que no logro me guarden el valor en una tabla.

Uno de los campos se llama HORA MES y el origen de la fila es la siguiente consulta:

SELECT [buscahorasmensual].[horasmensual] FROM buscahorasmensual; 

En el formulario me muestra correctamente el valor del campo y luego con una consulta levanto todos los valores de todos los campos y los guardo en una tabla, pero los valores de estos campos calculados no se me están guardando en esa tabla.

Respuesta
1

Seria conveniente enseñara una imagen sobre la cuadricula de diseño o en su defecto el código SQL de la consulta.

Este es el código sql de la consulta

SELECT [ValorFrecuencia]*[Formularios]![Actualiza Tarea Catálogo]![Volumen Recibido s/frecuencia]*[Formularios]![Actualiza Tarea Catálogo]![Promedio Minutos por caso]/60 AS horasmensual
FROM valorfrecuencia;

Creo que está utilizando como origen de datos del formulario una consulta de selección, pero como le dicen trate de subir una imagen del formulario. Personalmente prefiero hacer estas actualizaciones con SQL y si es el caso diseño funciones.

2 respuestas más de otros expertos

Respuesta
1

Matías, por lo que parece te refieres a que en un formulario tienes varios controles, y en alguno de ellos su valor es un cálculo. Lo puedes guardar directamente en la tabla usando en algún evento

Docmd.setwarnings false

Docmd.runsql"insert into Nombretabla(CampoA,Campob,Campoc,....) values(" & me.control1 & "," & me.control2 & ",'" & me.control3 & "',...)"

Los campos de destino y origen no tienen porque llamarse igual, pero sí ser de datos coherentes, a un campo numérico se le inserta el valor de un control numérico, a uno de texto se le inserta el valor de un control texto, etc

Control1, Control2, etc, tiene que ser el nombre que aparece en sus Propiedades-Otras-Nombre

EL problema que tengo es que el campo HORA MES de la tabla ya tiene un valor guardado, si necesito cambiar ese valor ingreso por un formulario que debería permitirme cambiarlo. En el formulario puedo cambiar los valores (me trae los que están en tabla) y se recalculan y muestra correctamente, pero no me graba en la tabla el nuevo valor.

En el campo HORA MES en origen del control tengo el nombre del campo de la tabla, en origen de la fila tengo una consulta (la que escribí arriba) y luego tengo un botón en el formulario que se llama GRABAR y me ejecuta una consulta donde se guardan todos los campos de la tabla.

Cuando voy a revisar la tabla me muestra el valor que tenía originalmente, no el valor modificado del campo calculado.

Puedes poner una imagen del formulario.

De todas formas, siempre podrías usar, por ejemplo

Docmd.runsql"Update nombretabla set NombreCampoHora=controlformulario where(por ejemplo) Idventa=" & me.Numfactura & ""

Es decir que te actualice ese campo, que por ejemplo, ponía 08:40 al valor( por ejemplo) 21:30 en el control que dices del formulario sólo en aquel registro de la tabla en que su Idventa sea igual al control NumFactura del formulario

Te pongo lo de Idventa por un lado y lo de NumFactura por otro, para incidir en que los campos no tienen porque llamarse igual.

Respuesta
1

Los campos calculados 'no existen', lo único que existe es su origen de datos.
Se tendrá que utilizar (en lugar del cuadro de texto) su origen de datos: el calculo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas