Newsgroup: it.comp.appl.access
Titolo: Query Aggiornamento

Salve  a tutto il NG
La mia necessita sarebbe quella di eseguire una Query di Aggiornamento e fin
qua tutto OK.
Ma il problema mi si pone quando la Query devo impostarla sulla somma  tipo
Raggruppamento ess:
Nella Tabella da cui reperire i dati-
Campo_Tipo    Campo_Valori
A                        100
B                         200
A                        100
C                        100
B                         50
Nella Tabella di destinazione ho solo il raggruppamento del Campo_Tipo
Campo_Tipo    Campo_Valori
A
B
C
Il risultato che vorrei ottenere nella Tabella di destinazione con la query
di aggiornamento e:
Campo_Tipo    Campo_Valori
A                        200
B                        250
C                       100
Non posso effettuare una Query di accodamento poiché i valori nel
Campo_Tipo nella Tabella di destinazione esistono già.
L'operazione deve avvenire in base a filtro da un ID comune a tutte e due le
Tabelle con un numero uguale in comune.
Grazie
Ferrari Rino

 ha scritto nel messaggio
news:5Oc6c.61244$z23.2...@news3.tin.it...

Se la tabella da cui reperisci i dati si chiama Tabella1 ed ha una struttura
simile a questa:
ID                        Contatore e chiave primaria
Campo_Tipo        Testo
Campo_VAlori     Valuta
Se la tabella di destinazione si chiama Tabella2 ed ha una struttura simile
a questa:
Campo_Tipo        Testo e chiave primaria
Campo_VAlori     Valuta
Se i record di Tabella 2 contengono già il valore del campo Campo_Tipo.
Prova a risolvere il tuo problema con una query di aggiornamento che abbia
il seguente codice SQL:
UPDATE Tabella2 SET Tabella2.Campo_Valori = DSum("[Campo_Valori]",
"Tabella1", "Campo_Tipo = '" & [Campo_Tipo] & "'");
Io però avrei fatto a meno di crearmi Tabella2 e di effettuare il suo
aggiornamento con la query di aggiornamento di cui sopra; avrei creato
solamente, basata su Tabella1, una query di raggruppamento raggruppata su
Campo_Tipo e che sommasse Campo_Valore, insomma una query che avesse il
seguente codice SQL:
SELECT Campo_Tipo, Sum(Campo_Valori) AS SommaDiCampo_Valori
FROM Tabella1
GROUP BY Campo_Tipo;
Ciò fatto avrei usato, nelle mie elaborazioni, tale query al posto di
Tabella2.
Quando possibile evita di usare recordset reali realizzati con tabelle di
comodo (nel tuo caso Tabella2) ed usa invece al loro posto dei recordset
virtuali, ovvero delle query; fra l'altro, una regola fondamentale dei
database relazionali è che nelle tabelle non si dovrebbero memorizzare campi
calcolati (nel tuo caso Campo_Valori di Tabella2): in Access i campi
calcolati sono propri delle queries e NON delle tabelle.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Ciao Roberto purtroppo la Tabella2 e necessaria poiche vi sono altri dati
non riferiti a Tabella1
per questo motivo non ho potuto gestirla con una query

 ha scritto nel messaggio
news:Mhx6c.66179$z23.3...@news3.tin.it...

Non avrei comunque mai registrato un campo calcolato in Tabella2, ma avrei
creato una query in cui avrei messo in join i dati della Tabella2 con la
query di raggruppamento che ti ho suggerito; insomma, non mi sarei mai
assoggettato alla schiavitù di dover aggiornare il campo Campo_valori di
Tabella2 ogni volta che aggiornavo Tabella1.
