Newsgroup: it.comp.appl.access
Titolo: eliminare record uguali in 2 tabelle

ho due tabelle cosi' composte:
tabella1
id
cognome
nome
codice
indirizzo
la tabella2 e' identica e contiene alcune delle persone gia' presenti
nella tabella1.
come posso eliminare i record presenti  contemporaneamente nelle 2
tabelle (considerando soltanto cognome, nome e codice) dalla tabella1?
ho gia guardato nel sito e c'e' una routine , ma non mi sembra utile
in questo caso, o forse non l'ho capita.
qualcuno sa dirmi come fare?
grazie per la collaborazione
oscar

 ho gia guardato nel sito e c'e' una routine , ma non mi sembra utile
Fai una query di eliminazione dalla tabella 1 dopo aver messo in join le due
tabelle sui tre campi...
Antonio


wrote:

non funziona. mi da il messaggio: impossibile eliminare dalle tabelle
specificate. forse ho sbagliato qualcosa?
1) ho creato una query di eliminazione in modalita' struttura con le
due tabelle
2) ho fatto le join fra le due tabelle
3) ho trascinato con l'asterisco la tabella dalla quale voglio
eliminare i record nella prima colonna
4)  l'anteprima della  tabella cosi' formata e' corretta, ma se lancio
la query mi da il messaggio di errore di cui sopra.
hai qualche suggerimento?
grazie di nuovo
oscar

 ha scritto nel messaggio
news:3dbe6a2c...@news.tiscalinet.it...


Il tuo SQL è qualcosa del genere?
DELETE tab1.*
FROM tab1 INNER JOIN tab1 ON (tab1.cognome = tab2.cognome) AND (tab1.codice
= tab2.codice);
Ci sono mica delle relazioni sul tuo database?
Antonio

 specificate. forse ho sbagliato qualcosa?
Non credo sia possibile eliminare i record in questo modo. Credo che, nel
momento in cui fai la join, la query diventi non aggiornabile.
Qui però chiedo aiuto a qualcuno più esperto, perché non sono affatto sicuro.
Se questo è vero, si potrebbe fare in un altro modo, ma vorrei evitare di dire
due sciocchezze nello stesso post! :-)
(Devo aggiungere questa possibilità nella mia funzione NuovoMessaggio)
Ciao. Claudio.

 ha scritto nel messaggio
news:3dbd23ba...@news.tiscalinet.it...

Se i campi Cognome, Nome e Codice sono di tipo testo, prova con una query di
eliminazione che abbia il seguente codice SQL:
DELETE Tabella1.*, DLookUp("Cognome","Tabella2","Codice=" & Chr$(34) &
[Codice] & Chr$(34) & " And Cognome=" & Chr$(34) & [Cognome] & Chr$(34) & "
And Nome=" & Chr$(34) & [Nome] & Chr$(34)) AS Espr1
FROM Tabella1
WHERE ((Not (DLookUp("Cognome","Tabella2","Codice=" & Chr$(34) & [Codice] &
Chr$(34) & " And Cognome=" & Chr$(34) & [Cognome] & Chr$(34) & " And Nome="
& Chr$(34) & [Nome] & Chr$(34))) Is Null));
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 & Chr$(34) & [Nome] & Chr$(34))) Is Null));
Eheh! Pensavo anch'io una cosa del genere nell'altro ramo del thread...
Ciao. Claudio.

 oscar
Se il campo Codice è di tipo Numerico, prova così:
DELETE Tabella1.*, DLookUp("Cognome", "Tabella2", "Codice =" & [Codice] & "
And Cognome = " & Chr$(34) & [Cognome] & Chr$(34) & " And Nome=" & Chr$(34)
& [Nome] & Chr$(34)) AS Espr1
FROM Tabella1
WHERE ((Not (DLookUp("Cognome","Tabella2","Codice =" & [Codice] & " And
Cognome=" & Chr$(34) & [Cognome] & Chr$(34) & " And Nome=" & Chr$(34) &
[Nome] & Chr$(34))) Is Null));
--


specificate. forse ho sbagliato qualcosa?
devi avere un indice univoco sui campi che usi per il join
bai
--
lorenzo coronati
---