Newsgroup: it.comp.appl.access
Titolo: query accodamento (ci riprovo)

Scusate ci riprovo, è importante.
Il mio database è così composto:
tabella "fornitori" e tabella "indirizzi" correlate uno a uno,
poi ho una tabella identica alla fornitori e una identica agli indirizzi,
ora,
quando un fornitore non è più tale con una query di accodamento vorrei
eliminare il record dalla tabella "indirizzi" e dalla tabella "fornitori" ed
accodarlo alle rispettive
identiche tabelle per avere uno storico...il problema è che non riesco a
fare eseguire la query avendo le tabelle correlate...nel senso che se creo
la query sulla sola tabella indirizzi viene eseguita normalmente...non
riesco invece a farla funzionare per fare accodare i dati delle due tabelle
correlate
Il risultato che vorrei ottenere sono delle tabelle correlate con i dati dei
fornitori ancora in "uso" e delle identiche tabelle con i dati dei fornitori
non più tali da tenere come storico.
Grazie a tutti per la collaborazione

 ha scritto nel messaggio
news:%j%eb.4843$vO5.1...@twister1.libero.it...

Credo che la cosa migliore sia di rivedere la progettazione del Database.
Hai semplicemente frantumato tutti i criteri di normalizzazione dei DB.
Immagino avrai decine di Query e un sacco tra tabelle e Maschere...!
Fai pure come ti è più congeniale, ma secondo me stai intraprendendo
la strada sbagliata che ti complicherà sempre più la vita.
STANDARD:
Unica tabella con un campo "[Esistente]" del tipo Si/No.
Avresti impiegato 1 millisecondo ad eliminare il Fornitore
dall'elenco fornitori e per lo storico ti bastava estrarre quelli
con il campo "[Esistente]"=True
............................................................................
...............
In ogni caso devi effettuare 4 Query Action relativamente
alle 2 Tabelle Fornitori e Indirizzi  per accodare poi eliminare quelli da
eliminare....!
CurrentDb.Execute "INSERT INTO FornitoriHold (......tutti i campi ) SELECT *
FORM Fornitori WHERE Fornitore=" & chr(34) & NomeFornitore & chr(34)"
CurrentDb.Execute "INSERT INTO IndirizziHold (......tutti i campi ) SELECT *
FORM Indirizzi WHERE Indirizzo=" & chr(34) & TuoInditizzoFornitore &
chr(34)"
CurrentDb.Execute "Delete * From Fornitori WHERE Fornitore=" & chr(34) &
NomeFornitore & chr(34)"
CurrentDb.Execute "Delete * From Indirizzi WHERE Indirizzo=" & chr(34) &
TuoInditizzoFornitore & chr(34)"
A questo punto devi raffinare la cosa usando le TRANSAZIONI oppure una buona
gestione errori,
non vorrai cancellare i fornitori dalla tabella anche se non vengono prima
accodati all'altra...............!!!
P.S. dai retta anche se credi sia troppo complesso, rifai la struttura del
DB.
@Alex.

 Unica tabella con un campo "[Esistente]" del tipo Si/No.
Gliel'ho già detto io ma così deve "rifare completamente 64query del
database già in uso"
Antonio

 ha scritto nel messaggio
news:MM%eb.4947$vO5.1...@twister1.libero.it...

Solo 64 io pensavo qualche 100 perchè era li che arrivavo io quando
ho aperto Access.....!
Ma allora gli abbiamo dato un suggerimento =, che sia questa la strada
migliore...??
Pazienza Antonio, che ci vuoi fare... non dire che tu non hai mai fatto 1 DB
con 30/40 query e x^n tabelle.....!!! Sono sicuro che ai tempi c'era Roberto
che ti diceva le stesse cose che ora diciamo a Paolo, almeno per me fu così.
@Alex.

 ha scritto nel messaggio
news:bli215$bp2$1...@lacerta.tiscalinet.it...



Immagino e capisco che possa sembrare scocciante ricevere consigli
diametralmente
opposti alle aspettative, ma i consigli spesso derivano da errori
precedenti...!
Buon lavoro.
@Alex.