Newsgroup: it.comp.appl.access
Titolo: Ma come cavolo si sommano

ciao a tutti.
Ma come si concatenano piů campi di testo provenienti da record diversi, in
un unico campo!?
č veramente cosě stupida la domanda??
ciao da francy2k

è veramente così stupida la domanda??
Se effettivamente i campi stanno su record diversi la domanda non
è affatto stupida.
Serve una cosa del genere:
=================================
dim db as database
dim rk as recordset
dim Totale as string
set db = currentdb
Totale = ""
set rk = db.openrecordset("select * from Tab1")
do while not rk.eof
   Totale = Totale & rk!Campo_1 & rk!Campo_n
   rk.movenext
loop
rk.findfirst "ID = 99"   'il record su cui aggiornare
rk.edit
rk!CampoTot = Totale
rk.update
=====================================
xò ho la sgradevole sensazione che la tua situazione
sia diversa e che tu debba semplicemente accodare
ad un campo n-campi presenti sullo **STESSO** record.
In questo caso mi avresti fatto scrivere del codice x nulla
ed allora ti direi che effettivamente la domanda era un
pochetto stupida, bastava fare una query di aggiornamento
in cui CampoTOT = Campo1 & Campo2 &.... & Campon
Bye, Ste

 wrote in message
news:10ld9vj$qpd$1...@fe2.cs.interbusiness.it...



Beccarli non è un problema, fai una query in cui inserisci 2
istanze della stessa tabella, le joini per i campi contenenti il
valore di controllo (es. Campo1 e Campo2) e ti fai un bel
campo calcolato (TOT) che sarà uguale a CampoA & CampoB.
A questo punto non ho ben capito dove vuoi memorizzare
questo risultato, se va in CampoA e/o CampoB la cosa è
fatta, basta trasformare la query in una query di aggiornamento,
sennò dipende.......
Bye, Ste

03427                                                    F14 - H65
Fai una query di raggruppamento sul campo col valore di controllo e la somma
sul campo da sommare
Antonio

in comune con il successivo lo stesso contenuto di un altro campo esempio
Spero per te che la tua tabella abbia pochi records e pochi
raggruppamenti, altrimenti il tutto potrebbe prendere parecchio tempo.
Io farei in due modi:
Primo sistema: 
Ti apri un recordset su una vista della tua tabella ordinata secondo i
valori del [Campo con valore di controllo].
Ti costruisci come ti ha indicato Stefano una concatenazione dei
valori avendo cura di ricominciare con una nuova stringa ogni volta
che il valore del [Campo con valore di controllo] cambia.
Secondo sistema.
E' un po' contorto, ma potenzialmente molto piu' veloce.
Se non hai molti valori possibili del [campo da sommare], ti
costruisci una bella tabellina di corrispondenza associando ad ognuna
delle stringhe un bel valore numerico, avendo cura di usare solo
potenze di due. Es. al primo dai il valore 1, al secondo 2, al terzo 4
e cosi' via.
A quel punto puoi usare una query di raggruppamento calcolandoti le
somme dei codici numerici.
Da qui poi e' banale ripassare dalle somme ottenute a delle stringhe
contenenti la lista dei singoli codici. 
Ti basti pensare alla rappresentazione binaria dei tuoi totali: se hai
un valore decimale di 11, questo sara' equivalente al binario:
00001011
vorra' dire che quel totale contiene il primo, il secondo ed il quarto
elemento della tua lista, ovvero quelli con i codici 1, 2 e 8.
Spero di non essere stato troppo confuso...
Ciao,
Giovanni
-- 
Ciao,
Giovanni

 >la sommatoria dei campi è condizionata dal fatto che il campo da sommare



