Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Definir variables

Estas en el tema de Definir variables en el foro de Bases de Datos General en Foros del Web. Hola buenas noches a todos!! Que tal?¿ Mi problema es el siguiente: tengo una base de datos con la informacion de las facturas de una ...
  #1 (permalink)  
Antiguo 17/04/2004, 19:10
 
Fecha de Ingreso: noviembre-2003
Ubicación: España->Madrid
Mensajes: 368
Antigüedad: 21 años, 1 mes
Puntos: 0
Pregunta Definir variables

Hola buenas noches a todos!! Que tal?¿

Mi problema es el siguiente:
tengo una base de datos con la informacion de las facturas de una empresa y tengo un informe que me recopila los totales de cada cliente de todas lasfacturas ... hasta ahi todo bien

pero me surje un problema... Al ir a verificar todos los totales comprobe que la cifra total es algo inferior a lo que debiera

Me puse a investigarlo y vi que el total por cliente que calculaba no incluía los decimales (a todo esto... utilizo ACCESS )

Yo lo que necesito es que los coja también

el código que uso es la siguiente:

dim total as long (->Cojo long xq los numeros llegan a mas de lo que permite el integer (16000))

total=dsum("[Importe]","FacturasEmitidas","[Cliente]=Forms!Control![Cliente]")


Como debería ponerlo?¿

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 18/04/2004, 09:00
Avatar de amanda75  
Fecha de Ingreso: junio-2003
Ubicación: cerca, pero no mucho
Mensajes: 684
Antigüedad: 21 años, 7 meses
Puntos: 0
El campo tiene que estar definido en diseño de la tabla como moneda en "Tipo de dato", y en las "propiedades del campo" formato=moneda, lugares decimales (por ejemplo =2)

Un beso ;)
  #3 (permalink)  
Antiguo 18/04/2004, 11:19
 
Fecha de Ingreso: noviembre-2003
Ubicación: España->Madrid
Mensajes: 368
Antigüedad: 21 años, 1 mes
Puntos: 0
Muxas gracias por la respuesta... pero la verdad esq me kedo = :s

Si fuese una tabla ya se como podría definirlo... pero esuq me encuentro en un informe cuyo origen es una consulta (en la consulta ya tengo definidas bien las variables)

El problema llega cunado intento obtener el total (lo obtengo a traves de código en el vba y las defino como long...)

:s

alguna idea mas?¿
  #4 (permalink)  
Antiguo 18/04/2004, 11:52
Avatar de amanda75  
Fecha de Ingreso: junio-2003
Ubicación: cerca, pero no mucho
Mensajes: 684
Antigüedad: 21 años, 7 meses
Puntos: 0
oops , perdón, me colgué


¿definiendo en el informe el campo total como moneda con dos decimales no te sale bien?

dices:


Cita:
dim total as long (->Cojo long xq los numeros llegan a mas de lo que permite el integer (16000))

Que yo sepa en Access no tienes problema con el campo moneda. Puedes poner la cantidad que quieras .

Claro que para que te sume en moneda, el campo de las tablas también tiene que estar definido como moneda y entonces, en la consulta, también aparecerá el campo como moneda, así en el informe puedes definir el campo total como moneda y saldrán los decimales.

Creo
  #5 (permalink)  
Antiguo 18/04/2004, 13:25
 
Fecha de Ingreso: noviembre-2003
Ubicación: España->Madrid
Mensajes: 368
Antigüedad: 21 años, 1 mes
Puntos: 0
Tanto en la consulta (origen del informe), como en la tabla (origen de la consulta)... los importes estan definidos como variables de moneda con dos decimales... y en el informe en el cuadro de texto donde se muestran los totales sta definido como moneda de dos decimales...

Si los dos decimales... si q los muestra... pero los muestra como ,00... en ningun caso me pone,53 es decir que redondea
  #6 (permalink)  
Antiguo 18/04/2004, 14:40
Avatar de amanda75  
Fecha de Ingreso: junio-2003
Ubicación: cerca, pero no mucho
Mensajes: 684
Antigüedad: 21 años, 7 meses
Puntos: 0


Me he fabricado un ejemplito para ver y yo no pierdo los decimales.

No he puesto tu expresión en el informe, más que nada porque era una prueba , he creado un campo total con Origen del contro " =Nz([m])" siendo m el campo moneda que quiero sumar y todo perfecto.

Mira a ver en que parte del proceso redondea. Ingresa un par de registros de prueba en la tabla y a ver que pasa en la consulta y en el informe

¿cómo ingresas los datos, desde la tabla o desde un formulario? ¿no será el formulario el que te esté dando problemas?
  #7 (permalink)  
Antiguo 18/04/2004, 14:55
 
Fecha de Ingreso: noviembre-2003
Ubicación: España->Madrid
Mensajes: 368
Antigüedad: 21 años, 1 mes
Puntos: 0
Hola amanda!!! Muchas gracisa por todo antes de nada...

Weno vamos a lo que vamos... yo creo que no nos entendemos bien asi que te explicaré todo desde un principio... si t aburres y no lo lees lo entiendo...

La bd recoje la contabilidad de una empresa... en la cual tengo una tabla con facturasemitidas (recoge todas las facturasemitidas) y otra con facturasrecibidas(recoge todas las facturas recibidas) y otra q es campañas(recoge todas las campañas de todos los clientes)

Entonces yo creo un informe que me muestre todas las campañas agrupándolas por cliente y dentro de cada campaña le pido que un campos de texto independientes me devuelva diferentes informaciones (tales como, nº de facturasemitidas/recibidas, importe total de emitidas/recibidas...)

Entonces todos los campos muestran el dato correcto.. menos los importes totales... que para obtenerlos cree el código (dsum.. y cuya la suma la realiza en otra tabla q no es directamnete la del origen de datos) q t mencione antes...

weno una vez sabs todo esto... a ver si damos con la solucion

P.D.:lo de nz no creo q sea la solucion
  #8 (permalink)  
Antiguo 19/04/2004, 01:30
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 8 meses
Puntos: 0
Amanda te está diciendo lo correcto, en tu código VB al definir la variable como long, pierdes los decimales, define esa variable como currency

dim total as currency ........


Un saludo
  #9 (permalink)  
Antiguo 19/04/2004, 12:07
 
Fecha de Ingreso: noviembre-2003
Ubicación: España->Madrid
Mensajes: 368
Antigüedad: 21 años, 1 mes
Puntos: 0
jeje muxas gracias a los dos... al final las defini como variant y funciono

espero no tener mas dudas de este tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:44.