Access: Enviar campos calculados (formulario continuo) a tabla

Tengo cuadros de texto que se calculan en el momento (fecha y hora que se ejecuta) por lo que no puedo guardar en una tabla. Al final necesito totalizar al pie del formulario y lamentablemente no puedo hacer el calculo de sumatoria con campos calculados.

Probe Dsum y otras maneras pero siempre me devuelve error.

Se me ocurre por lo tanto, al abrir el formulario continuo donde estan los campos calculados, hacer una especie de recorrido y que almacene en ese momento los datos en una tabla alternativa y luego sí sumar el campo de las tablas.

¿Alguna idea de cómo hacerlo?

1 Respuesta

Respuesta
1

Jonathan, si me permites, no uses los campos calculados en las tablas. La verdad, no le veo ni una sola ventaja. Por otro lado, claro que puedes poner en los cuadros de texto como origen del control un campo de una tabla. Los cálculos se hacen en código. Por ejemplo, vamos a suponer que tienes un cuadro de texto que se llama TotalFactura y cuyo origen del control es el campo abc(pongo esto porque no tienen porque llamarse igual, sí ser de datos compatibles). En el evento después de actualizar del cuadro de texto Precio puedo poner

TotalFactura=Precio*cantidad

Con lo que una vez que haya puesto el precio, me realiza el producto, lo pone en el cuadro de texto TotalFactura y te lo guarda en el campo ABC de la tabla.

Entonces si puedes usar el DSum sin ningún problema, por ejemplo

TextA=dsum("subtotal","tablaX,"hora=Time()")

 o lo que sea.

Hola Julián González Cabarcos y muchas gracias por responder, te cuento:

Tengo unas tablas cargadas y en este formulario que ejecuto mis cuadros calculan datos sobre esos campos y ahí necesito que se pasen a una nueva tabla. No quisiera poner botones. Encontrar en qué evento es mi problema.

Si tengo la tabla Tabla1 y con los campos hago un formulario con origen de registros en la misma tabla

Voy a decirle que me divida el campoA por el campoB y que le sume la raíz cuadrada del campoc y me lo ponga en resultado

Cuando escribo 1024 y pulso Enter(aunque podía ser en cualquier otro evento)

y en la tabla

El código es

Private Sub CampoC_AfterUpdate()
Resultado = (CampoA / CampoB) + Sqr([CampoC])
End Sub

Y como el formulario tiene origen de registros en la tabla me lo guarda en los propios campos.

Por el contrario vamos a suponer que tenemos la misma tabla pero un formulario independiente(no tiene origen del registros) con unos cuadros de texto, que por comodidad se llaman igual que las etiquetas.

Cuando escribo algo

y la tabla

En este caso como el formulario es independiente el código es

Private Sub ccc_AfterUpdate()
rrrr = (aaaa / bb) + Sqr([ccc])
DoCmd.RunSQL "insert into tabla1(campoa,campob,campoc,resultado)values(aaaa,bb,ccc,rrrr)"
End Sub

Como puedes ver los campos calculados no sirven para nada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas