Newsgroup: it.comp.lang.visual-basic
Titolo: OPERATORE

Buongiorno a tutti mi kiamo Federico e ho un piccolo problema ad un mio
programma. Spero che qualkuno riesca a risolvermelo.
In pratica ho un database access, in cui in una tabella ho memorizzato
delle quantità. La tabella è cosi':
CODICE      OPERATORE         QTY
 101           +               2
 101           +               3
 101           -               1
In VB ho fatto una select, che mi trova i record del codice 101 e quindi
tre record e poi in base all'operaqtore si deve fare i calcoli di somma e
sottrazione. Per es. per il codice 101 mi uscira' 4=2+3-1
Pero' per fare questo calcolo ho problema
Io ho usato questo calcolo in VB
totqty=totqty & rs!Operatore & rs!Qty
pero' mi da errore Error 13 Type mismatch
Come posso risolvere? Attendo vostre risposte.Grazie Federico
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Come posso risolvere? Attendo vostre risposte.Grazie Federico
Come puoi sperare che la parte destra dell'assegnamento (che si ottiene
esplicitando le conversioni implicite di VB)
totqty = CStr(totqty) & "+" & CStr(rs!Qty)
possa avere un risultato NUMERICO e per di più che venga valutata la
corrispondente *espressione* ???
Quel che devi fare è trasformare il campo "OPERATORE" in "SEGNO" (di tipo
integer), assegnando valore +1 per le quantità da sommare e -1 per quelle da
sottrarre.
CODICE      SEGNO         QTY
 101           1               2
 101           1               3
 101           -1               1
Poi il  calcolo lo effettui con:
totqty=totqty + rs!Segno * rs!Qty
che sono tutti valori NUMERICI.
Bye
Raf

L'operatore & è specifico per la concatenazione della stringhe, quindi
nel tuo caso sbagliatissimo.
Hai sbagliato anche a creare il campo operatore!
Nella tua tabella, ti bastano il campo codice e il campo qty.
Quando memorizzi delle quantità con segno negativo, potresti ottenere
il segno negativo con questo semplice strataggemma matematico:
qty=qty*-1
poi farai una semplice query di raggruppamento sommando il campo qty.
Il risoltato sarà: 2+3-1 .... 4
ciao
Alberto Fratangelo

 
Per come l'hai strutturata devi fare: 
        If Operatore = "+" Then
            totqty = totqty + rsqty
        Else
            totqty = totqty - rsqty
        End If
Questa si chiama pezza...
Bye
Psoftp
-- 
Psoftp -- Eyes on Software -- 
http://www.mynewsgate.net/mp.php?u=19242

 pero' mi da errore Error 13 Type mismatch
Non puoi utilizzare il contenuto di un campo e trattarlo come se 
fosse un operatore matematico. E' erronea, a questo, punto la 
strutturazione del database, sarebbe stato infatti meglio eliminare 
il campo operatore ed immettere invece nel campo quantità dei valori 
positivi per le somme e negativi per le sottrazioni sicchè poi basta 
fare:
totqty=totqty + rs!Qty
-- 
If God had intended Man to program, we would be born with serial I/O ports.
News 2000 [v 2.06] - 
http://www.akapulce.net/socket2000

 totqty=totqty + rs!Qty
Dimenticavo... Così facendo puoi anche demandare interamente alla 
query l'operazione di somma/sottrazione...
-- 
Any program that runs right is obsolete.
