Newsgroup: it.comp.appl.access
Titolo: Verifica Se non Funziona

Ragazzi mi risolvete questo enigma che non mi ha fatto dormire tutta la
notte
ho una maschera che contiene oltre alle necessaria informazioni, 3 campi che
per il calcolo delle fatture sono necessarie:
Peso,Volume, FEuro
[P] origine di controllo impostata su =[Peso]/1000 a cui gli ho dato formato
numero generico
[Peso]  campo testo (per necessità, non per mi volontà)
[Volume] campo testo (per necessità, non per mi volontà)
Sull'evento BeforeUpdate della form ho messo:
If [P] > [Volume] then
[FEuro] = [P] * 272
ElseIf [P] < [Volume] then
[FEuro] = [Volume] * 272
Ora mi viene fuori in aclunni campi il risultato è giusto in altri come da
esempio:
Peso = 6143
P=[Peso]/100 = 6,143
Volume = 6,093
FEuro = 6.093*272=1657.296 (Errato!!!!!!!)
in base alla condizione non mi dovrebbe prende il valore [P] = 6.143 essendo
maggiore di 6.093????
Altrro caso
Peso = 105
P=[Peso]/100 = 0.105
Volume = 0.81
FEuro = 0.81*272=220.32(Errato!!!!!!!)
in base alla condizione non mi dovrebbe prende il valore [P] = 0.105 essendo
maggiore di 0.81 ecccc
Soluzioni?'??????
Mi farà impazzire

 ha scritto nel messaggio 
news:BWIEe.14551$a5.2...@twister2.libero.it...




Ti invito a non riproporre lo stesso post sotto diverso nome e con un 
soggetto poco significativo.
A me funziona benissimo così:
Private Sub Form_Current()
If Me.[P] > Me.[Volume] Then
Me.[FEuro] = Me.[P] * 272
ElseIf Me.[P] < Me.[Volume] Then
Me.[FEuro] = Me.[Volume] * 272
End If
End Sub
Risultato = 1670,896
Ciao, Carlo 

 non so se ti va bene cosi
Ma nel caso se p e volume sono uguali o messo la condizione che vada a
prendere sempre il peso!!!!
If [P] > [Volume] then
 [FEuro] = [P] * 272
 ElseIf [P] < [Volume] then
 [FEuro] = [Volume] * 272
 ElseIf [P] = [Volume] then
[FEuro] = [P] *272
Non è un problema, il problema sta che secondo me non riesce a capire quali
valori sono piu grandi di altri (ma solo di acuni)
tipo Volume 0.523 e tipo P 0.789 allora mi prende P e lo moltiplica altri
invece tipo sopra non me li considera giusti!!!
Percheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee?
Cmq Grazie se hai altre soluzioni

 ha scritto nel messaggio 
news:PSJEe.14617$a5.2...@twister2.libero.it...


 ha scritto nel messaggio
news:LMJEe.2509$2U1.2...@news3.tin.it...

E' Una roba assurda, Grazie Carlo ma continua a non funzionarmi mi tiene
fisso il valore su quello sbagliato e non lo cambia come può essere se a te
da giusto?
Adesso ho provato su volume 0,0 e peso 0,5 mi da FEuro 0,0 com'è possibile

 > End Sub
Grazie a carlo su current
niente non me lo considera il P anche quando vado sul debug diVba e mi
posiziono col moouse sui valori quelli di volume e FEuro mi compaioano
quello di P non campare un bel Niente come può essere

 ha scritto nel messaggio
news:A9QEe.15084$a5.2...@twister2.libero.it...

Ragazzi ho prprpio ragione non mi considera il caso Me.[P]
Perche? mi aiutate vi prego domani devo consegnarlo al lavoro!!!!
Non capisco piu dove sbaglio.
procedura Query sui vari campi che mi interressano ho messo
 P: [Peso]/1000
quindi ho creato un maschera su questa query !!!!
il risultato lo conoscete già
If Me.[P] > Me.[Volume] Then
 Me.[FEuro] = Me.[P] * 272
 ElseIf Me.[P] < Me.[Volume] Then
Me.[FEuro] = Me.[Volume] * 272
 End If
Il Me.[P] non lo considera mi calcola tutto su volume!!! Perchèèèèèè?

 If Cdbl([P]) > Cdbl([Volume]) then
Ovviamente per tutti i campi della maschera che richiami nella
formula.
Ciao
--
Lorenzo


Se mi mandi il db vedo cosa posso fare.
Credo che l'errore sia nel tipo di dati.
Nel riprodurre il tuo caso io ho fatto così:
ho messo i quattro controlli in una maschera, Peso = 6143; Volume = 6,093; P 
=[Peso]/1000; FEuro viene calcolato su current con il codice che ti ho 
postato. Tutti i controlli hanno il formato impostato a "Numero Generico".
Ciao, Carlo 

 [Volume] campo testo (per necessità, non per mi volontà)
[...CUT...]
Confrontare una grandezza maggiore o minore tra campi testo o numerici può
dare delle differenze sensibili (in ordine alfabetico, 2 è maggiore di 19).
L'errrore potrebbe nascere dal tipo di dati. Io proverei a lavorare su delle
variabili numeriche, tipo Dim CalcPeso As Double, CalcVol As Double,
CalcPeso = CDbl(ByVal [Peso]), CalcVol = CDbl(ByVal [Vol]), If CalcPeso >
CalcVol Then ....etc...
Spero ti sia d'aiuto.
PS: "P=[Peso]/100 = 6,143" .... cosa?? 6143 diviso 100 (gli zeri sono due!)
fa 61,43, e anche 105 diviso 100 fa 1,05, non 0,105.
Guarda se magari non fosse questo....
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio 
news:151Z37Z64Z157Y...@usenet.libero.it...

ohe sacha come va?
vai in vacanza,
vienmi a trovare
ciao
claudio 

 claudio
ciao.
