Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

ACCESS: Query di aggiornamento

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

ACCESS: Query di aggiornamento

Postdi mariollo » 21/02/05 16:18

Non riesco a trovare il modo di fare una query di aggiornamento tra due tabelle come da esempio

TABELLA SCATOLA TABELLA BARATTOLI
IDScatola IDScatola
PesoScatola IDBarattolo
PesoBarattolo

In pratica vorrei creare una query di aggiornamento che sommi i pesi dei barattoli contenuti nella scatola e porti il risultato nel campo PesoScatola.
Chiaramente le due tabelle sono collegtate con relazione una a molti

grazie 1000
Mariollo
mariollo
Utente Junior
 
Post: 11
Iscritto il: 29/11/04 13:26

Sponsor
 

Postdi mariollo » 21/02/05 16:32

ho visto che il messaggio nn è venuto formattato bene; le due tabelle di esempio:

TABELLA SCATOLA
IDScatola
PesoScatola

TABELLA BARATTOLI
IDScatola
IDBarattolo
PesoBarattolo

grazie
mariollo
Utente Junior
 
Post: 11
Iscritto il: 29/11/04 13:26

Re: ACCESS: Query di aggiornamento

Postdi archimede » 21/02/05 17:11

mariollo ha scritto:Non riesco a trovare il modo di fare una query di aggiornamento tra due tabelle come da esempio

TABELLA SCATOLA TABELLA BARATTOLI
IDScatola IDScatola
PesoScatola IDBarattolo
PesoBarattolo

In pratica vorrei creare una query di aggiornamento che sommi i pesi dei barattoli contenuti nella scatola e porti il risultato nel campo PesoScatola.
Chiaramente le due tabelle sono collegtate con relazione una a molti

grazie 1000
Mariollo
Innanzitutto registrare un campo calcolato in una tabella è una pessima idea il 99% delle volte.

Se proprio insisti:
Codice: Seleziona tutto
UPDATE SCATOLA S SET S.PesoScatola=DSum("PesoBarattolo", "BARATTOLI", "PesoBarattolo Is Not Null AND IDScatola=" & S.IDScatola);
HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi mariollo » 22/02/05 11:01

Grazie Archimede.
Ho provato ad eseguire la query ma mi da un errore di conversione fra tipi.
Entrambe i pesi sono definiti in tabella come interi lunghi

qualche idea?

grazie ancora
mariollo
Utente Junior
 
Post: 11
Iscritto il: 29/11/04 13:26

Postdi archimede » 22/02/05 11:17

Io l'ho testata con A97 e non mi dà problemi: hai controllato i nomi dei campi e delle tabelle? Non mi viene in mente altro... a meno che tu non stia usando una versione di Access più vecchia della mia, ma mi pare improbabile.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi mariollo » 22/02/05 11:26

io ho office xp. non so sembra tutto ok; ho addirittura creato un db vuoto con le sole due tabelle di esempio ma l'errore persiste..
una domanda : hai chiamato "S" la tabella "Scatola" per qualche motivo o solo per comodità

grazie
Mario
mariollo
Utente Junior
 
Post: 11
Iscritto il: 29/11/04 13:26

Postdi archimede » 22/02/05 11:37

Solo per comodità: puoi toglierlo ed usare SCATOLA al suo posto.

IDScatola è intero?

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi mariollo » 22/02/05 13:00

idscatola è testo in entrambe le tabelle e sono in relazione uno a molti
idbarattoli è un counter

ciao
mariollo
Utente Junior
 
Post: 11
Iscritto il: 29/11/04 13:26

Postdi archimede » 22/02/05 13:23

mariollo ha scritto:idscatola è testo in entrambe le tabelle
E adesso lo dici? :diavolo:
Codice: Seleziona tutto
UPDATE SCATOLA AS S SET S.PesoScatola = DSum("PesoBarattolo","BARATTOLI","PesoBarattolo Is Not Null AND IDScatola='" & S.IDScatola & "'");
Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi mariollo » 22/02/05 14:36

ops scusa.. nn sapevo fosse importante...

ora in effetti funge..

ultima domanda: scatole e barattoli erano un esempio; in realtà le due tabelle sono si collegate da una relazione uno a molti ma hanno rispettivamente 3 e 4 records chiave

esempio

SCATOLA
IdMagazzino (testo)
IdScaffale (Numero)
IdScatola (testo)
PesoScatola (numero)

BARATTOLI
IdMagazzino (testo)
IdScaffale (Numero)
IdScatola (testo)
IdBarattolo (counter)
PesoBarattolo (numero)

come indico che la relazione deve collegare 3 campi? con And tra una relazione e l'altra?

grazie
mariollo
Utente Junior
 
Post: 11
Iscritto il: 29/11/04 13:26

Postdi mariollo » 22/02/05 15:00

no..
ho provato mettendo "And" ma non funziona..

sai cosa devo usare per far eseguire la query solo dove tutti e tre i campi sono uguali?

ciao
mariollo
Utente Junior
 
Post: 11
Iscritto il: 29/11/04 13:26

Postdi archimede » 22/02/05 15:02

mariollo ha scritto:come indico che la relazione deve collegare 3 campi? con And tra una relazione e l'altra?
Direi di sì. qualcosa tipo:
Codice: Seleziona tutto
UPDATE SCATOLA AS S SET S.PesoScatola = DSum("PesoBarattolo","BARATTOLI","PesoBarattolo Is Not Null AND IDScatola='" & S.IDScatola & "' AND IdMagazzino='" & S.IdMagazzino & "' AND IdScaffale=" & S.IdScaffale);
HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi mariollo » 23/02/05 11:48

Grazie Alessandro funge! ;)
mariollo
Utente Junior
 
Post: 11
Iscritto il: 29/11/04 13:26


Torna a Software Windows


Topic correlati a "ACCESS: Query di aggiornamento":


Chi c’è in linea

Visitano il forum: Nessuno e 17 ospiti