Newsgroup: it.comp.appl.access
Titolo: aggiornare campi con query di accodamento

Come detto le post precedente da Roberto, ho creato una query di
accodamento, per inserire in automatico in un'altra tabella i valori
inseriti da una maschera, sfruttando l'evento Chiusura.
Ho risolto il problema dell'errore che mi dava per i duplicati non ammessi
(per me è importante) con DoCmd.SetWarnings False.
Si pone adesso un'altra qestione, non mi aggiorna i dati già presenti nella
tabella di destinazione!!
Mi spiego meglio, alla chiusura della maschera, mi vengono accodati i nuovi
record nella tabella di destinazione; Riapro la maschera, modifico un record
a caso e richiudo la maschera. Nella tabella di destinazione le modifiche
non avvengono
E' normale?? (spero di no) come posso risolvere??
GRazie
Claudio

 ha scritto nel messaggio
news:ldVPa.34728$qa5.7...@news2.tin.it...

Ciao,
non ho seguito la conversazione precedente, ma mi sembra di capire l'origine
del problema.
Se accodi un record modificato in una tabella dove il record esiste già, il
record viene "respinto" per motivi di referenzialità sulla chiave primaria.
La soluzione piu' efficiente è, secondo me, la seguente:
1) duplica la tua tabella di destinazione denominandola con un prefisso TMP,
per esempio, giusto per ricordarti che
è una tabella di servizio.
2) accodi i records dalla maschera nella tabella destinazione con la query
che hai gia, cambiando ovviamente la destinazione
3) accodi gli stessi records dalla maschera nella tabella TMP con la query
che hai gia, cambiando ovviamente la destinazione. Ovviamente duplicando la
query.
4) dopodiche' fai una query di aggiornamento tra la tabella temporanea e
quella principale, con il join tra le chiavi delle due tabelle.
In tal modo, accodi i records nuovi, nel rispetto delle regole di chiave, e
aggiorni quelli gia' esistenti.
Ah, dimenticavo. prima di ogni sequenza di accodamento e aggiornamento, crea
ed esegui una query di eliminazione che svuoti la tabella TMP
Riepilogando
setwarnings false
query di eliminazione dalla tmo
query di accodamento da maschera -> tabella destinazione
query di accodamento da maschera -> tabella TMP
query di aggiornamento tabella TMP <-> tabella destinazione
setwarnings true
Io uso sto sistema da sempre e va benissimo
Prova e fammi sapere.
ciao
giovanni l.

 giovanni l.
Grazie giovanni
adesso provo e ti faccio sapere, penso che cmq mi hai risolto il problema
grazie nuovamente
Claudio


Spero proprio di si. Oggi non mi ero ancora fatto la pera quotidiana di
filantropia; sto molto meglio! :))
ciao ne'!
giovanni

 ha scritto nel messaggio
news:ldVPa.34728$qa5.7...@news2.tin.it...

MMmmmmm....!
La Form è associata alla Tabella....?
I controlli sono associati ai Campi della Tabella....????
Se si allora non serve nessun codice per modificare i dati.
L'unica cosa che devi controllare è che non devi eseguire la QRY
"INSERT....."
quando non hai inserito un Nuovo Record, altrimenti ti genera un errore
dalla
violazione delle regole sulle chiavi primarie.
La query che tu esegui è di inserimento, e se cerchi di inserire un Record
che c'è già...!!!
Se invece la tua Form è di tipo non associato e così anche i controlli
allora devi distinguere
la Qry "INSERT INTO......." fatta per ACCODARE, dalla QRY "UPDATE......"
fatta per
MODIFICARE.
@Alex.