** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Duda sobre Campo Calculado
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Duda sobre Campo Calculado

 Responder Responder
Autor
Mensaje
oecruz Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 14/Enero/2021
Localización: Costa Rica
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita oecruz Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Duda sobre Campo Calculado
    Enviado: 14/Enero/2021 a las 05:29
Hola.

Soy completamente amateur en Access. Estoy haciendo un sistema pequeño para mi negocio, para llegar el pulso de quien compra y quien no ha comprado en un tiempo.
Tengo un formulario (solo lectura) con un subformulario. El formulario muestra Clientes y un código interno de cliente . El subformulario tiene una tabla con las compras acumuladas de ese cliente desde el inicio de la base de datos. Mediante un Control Calculado en Origen del Control, con la expresión  =Suma([Monto]) calculo el acumulado, que llevo a un campo en el formulario base, solo para consulta rápida.

La pregunta sería: ¿Cómo puedo variar la expresión =Suma([Monto]) para limitar el acumulado de compras de un cliente, digamos al último año o semestre? ¿Es esto posible?
Posteriormente lo haría con una consulta, para otra parte del sistema, pero de momento quisiera hacerlo de ese modo, no sé si es viable.

Mil gracias por la ayuda. Realmente, esta parte de armar los resultados e informes me cuesta mucho más que el resto de las relaciones.
OC.
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2764
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita rokoko Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 14/Enero/2021 a las 09:29
Hola.  Tendras una fecha de venta no??

Pues con esa fecha y un DLookup filtrado por fechas y cliente ya lo tendrias

https://docs.microsoft.com/es-es/office/vba/api/access.application.dlookup

Otra opción es que ese informe, o formulario, se base en una consulta y los filtros (criterios) los pongas en la consulta, id cliente y fecha.

Hay otra opción que es que apliques el filtro en el codigo para abrir el informe, condicion Where del DoCmd.Open.......


Editado por rokoko - 14/Enero/2021 a las 09:32
Arriba
oecruz Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 14/Enero/2021
Localización: Costa Rica
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita oecruz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 14/Enero/2021 a las 09:44
Hola Rokoko...
Gracias por los tres tips.
Voy a probar con el primero, pues me interesa hacerlo con un campo calculado, básicamente con que aún no quiero meterme con las consultas ni los informes.
No soy informático, pero entiendo partes de código un poco. Voy poco a poco con esto... Y vi que en este foro mucha gente contesta, por lo que me pareció adecuado probar suerte. Hay que ser honestos, muchas cosas sí me quedan grandes de esto.

Pruebo y te confirmo, gracias de nuevo.
OC.
Arriba
oecruz Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 14/Enero/2021
Localización: Costa Rica
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita oecruz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Enero/2021 a las 02:13
Hola Rokoko.

Lo intenté con el Campo Calculado en Origen del Control.
Intenté esto:
=DLook("Monto";"TB_Proyectos_AUX";"Fecha>=#" & Fecha()-30 & "#")
y exploré también el DSuma:
=DSuma("Monto";"TB_Proyectos_AUX";"Fecha>=#" & Fecha()-30 & "#")

No logro sin embargo, que el resultado sea consistente. Me da un resultado numérico (que no compruebo si es correcto o no, pero al menos son números), pero a veces según el cliente tengo un #Error en vez de números.

Mi estructura es esta:
Un formulario de solo lectura donde se despliega el total histórico acumulado vendido a un cliente (con =([Monto]), y la idea es poder ver el acumulado de los últimos 6 meses y 3 meses por igual. 
Este formulario tiene un subformulario, que se alimenta de una tabla (son los mismos datos, el subformulario es construido con el Asistente), y ahí ya se filtran los proyectos por cliente, por lo que solamente necesitaría segmentarlos por fecha, para los últimos 90 días o 180 días, creo. 
Los TextBox donde se usa la expresión están escondidos en el pie de página, y de ahí se van al cuerpo del formulario de solo lectura.


Estamos tratando de armar esto para poder leer mejor información que tenemos en Excel desde hace 5 años y mejorar un poco la cartera con clientes pasados en estos tiempos de pandemia.
 
Como te mencionaba, yo no soy programador, y soy novato en Access. No logro entender dónde está mi error aún realmente, pero la idea es armar este formulario con Campos Calculados, y posteriormente armar los Inforrmes basándose en Consultas (las cuales no he estudiado aún de modo profundo). Como usamos =Suma([Monto]) para el acumulado, quisieramos usar algo similar en este caso.

Te quedo agradecido nuevamente, si me podés orientar en la sintaxis adecuada, que creo, es lo que estoy fallando.



Editado por oecruz - 16/Enero/2021 a las 02:16
OC.
Arriba
01loko Ver desplegable
Colaborador
Colaborador


Unido: 17/Agosto/2017
Localización: Santander
Estado: Sin conexión
Puntos: 754
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita 01loko Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Enero/2021 a las 08:17
A mi, uno de los artículos que mas me ayudo con el tema fechas fue este de Mihura:
Recordar de que soy nuevo y estoy aprendiendo.
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2764
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita rokoko Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Enero/2021 a las 08:36
En tu caso tienes que filtrar por cliente y fechas.

Una buena opcion para que tu puedas poner las fechas que quieras en cualquier momento es que estan se pillen del formulario, de esta formapuedes poner las que tu quieras.

=DSuma("Importe";"tbMovimientosBancoA";"Id <= Forms!frmMovimientosBancoA.Id" & " And  [FECHA] BETWEEN forms!frmfrmMovimientosBancoA!Texto0 AND forms!ffrmMovimientosBancoA!Texto2 ")

Por ejemplo, esto lo tengo guadado en mis apuntes, en este caso filtra el campo importe de la tabla tbMobimientosBancoA por id y entre dos fechas( campo FECHA) . Y como ves pilla los datos del formulario Forms!frmMovimientosBancoA y las fechas de otros dos campos texto0 y texto2

Esto de da mas versatilidad ya que no son fechas cerradas, pones las que quieres.
Cada vez que cambiaes de fecha o cliente tienes que hacerle un Requery al campo calculado donde este DSuma para que se actualice....

El enlace que te a puesto 01loko de Mihura esta muyyyy bien para aprender.


Si un cliente no tiene ventas es posible que te de error, para eso utiliza la funcion Nz....Nz(......;0)

https://docs.microsoft.com/es-es/office/vba/api/access.application.nz
Arriba
oecruz Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 14/Enero/2021
Localización: Costa Rica
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita oecruz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Enero/2021 a las 12:00
Gracias 01Loko y Rokoko...
Creo que me han dado material para trabajar unos días investigando.
Hoy me moví a algunos informes, para ir viendo la pinta, mientras logro sobrepasar esto que les presento, porque sin duda, es lo que más me cuesta.

La idea de seleccionar fecha de inicio y de final, es muy buena. Quería algo así, pero para adelante, aunque con lo que me das por acá, voy a intentar implementarlo de una vez... creo que es buena idea.

Mil gracias por la ayuda muchachos... les comento cómo me va en unos días.

Clap
OC.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable