Newsgroup: it.comp.appl.access
Titolo: Query di eliminazione

Un saluto a tutti.
Devo eliminare dei record da una tab ma la selezione dei record da
cancellare devo farla sulla tab correlata.
Struttura della mia query:
DELETE T_Codice.COD_1, T_Descrizione.DESCRIZIONE_BREVE
FROM T_Descrizione LEFT JOIN T_Codice ON T_Descrizione.COD_A =
T_Codice.COD_A
WHERE (((T_Descrizione.DESCRIZIONE_BREVE) Like "*pippo*" And
(T_Descrizione.DESCRIZIONE_BREVE) Like "*pluto*"));
Ho provato a togliere dall'istruzione DELETE il riferimento al secondo campo
"T_Descrizione.DESCRIZIONE_BREVE", in quanto non voglio che venga eliminato
ma la query non funziona
Visualizza i dati, ma quando provo ad eseguirla ho questo msg: "Specificare
la tabella contenente i record da eliminare."
Sapete dirmi dove sbaglio?
Grazie.

 Grazie.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
--------------------------------------------- 


 beh, Roberto io il campo sulla delete non ce lo metterei proprio, non mi
risulta che la "delete" cancelli "campi". A occhio di delete ne dovrebbe fare 2
 (da come la vedo *pippo* e *pluto* devono essere contenute nella stessa
descrizione, non sara' un OR?)
cmq ho i miei dubbi che funzioni.
Se mette su l'integrita' referenziale su COD_A con:
 DELETE 
 FROM T_Descrizione 
 WHERE (((T_Descrizione.DESCRIZIONE_BREVE) Like "*pippo*" ----->Or<------
 (T_Descrizione.DESCRIZIONE_BREVE) Like "*pluto*"));
gli dovrebbe andare 'ome una spada 
--
a.cara 
Togli qualcosa dall'email

 Togli qualcosa dall'email
-- 


 descrizione; se cosě fosse il tuo codice SQL non va bene.
non ho proprio guardato quello che vuole (visto che e' in ottime mani) . Ho solo
visto la delete e poiche' ogni volta che vedo citati i campi mi scatta il
riflesso condizionato sono intervenuto. 
P.S. se e' cosi' allora non capisco proprio perche' deve fare LEFT JOIN. Io
penso che li voglia cancellare da tutte e due le tabelle ;<)


:))) siete troppo divertenti!! Grazie
cmq scusate, forse dovevo essere + preciso.
Il  LEFT JOIN c'è xkè ho una relazione di tipo generico "mostra tutti i
record della tab T_Descrizione e solo i record della T_Codice in cui i campi
correlati sono uguali" (non c'è integrità referenziale).
L'"AND" c'è xchè la query mi deve restituire solo i campi che contengono sia
"pluto" che "pippo".
Ho già provato il tuo consiglio Roberto, ho cancellato il campo dalla riga
delete ma non funziona, mi da sempre lo stesso avviso.
Grazie 1000

 Grazie 1000


Grazie ancora per la tua attenzione!
Cmq preciso ulteriormente:
Il campo in cui la query cerca pippo e pluto è una stringa di testo, e solo
se contiene queste due parole può dare luogo alla eliminazione del record
correlato, non in altri casi (ad es solo pippo o solo pluto) pertanto
l'operatore AND non lo posso cambiare (credo).
Infatti nella condizione di where, prima e dopo le parole, ho messo gli
asterischi:
WHERE (((T_Descrizione.DESCRIZIONE_BREVE) Like "*pippo*" And
(T_Descrizione.DESCRIZIONE_BREVE) Like "*pluto*"));
Non è la prima volta che uso query di eliminazione, ma l'ho fatto sempre
usando una sola tabella, è la prima volta che lo faccio usando 2 tabelle
correlate. Di conseguenza ho pensato che sia proprio questo il problema. Non
sarà un limite della funzione DELETE? mah!?
Ciao e buona giornata.

 Cmq preciso ulteriormente:
E perchč non precisi lasciando parte del quoting scrivendo quindi DOPO, cosě
magari si capisce qualcosa?!?!!
Antonio

 Ciao e buona giornata.


delete from t_codice 
where cod_a in (select cod_a from t_descrizione
where descrizione_breve like '*pippo*' and descrizione_breve like '*pluto*')


 where descrizione_breve like '*pippo*' and descrizione_breve like
'*pluto*')
ma quando eseguo la query resta un pò in attesa e poi mi restituisce 0
record. accade in entrambi i casi!
Non so proprio che pensare, dato che non ho molta esperienza su access.
cmq grazie ancora e bserata.



prova solo questa. Se non ti restituisce alcun codice significa che non hai
record che abbiano contemporaneamente nella descrizione breve il valore 'pippo'
e 'pluto'
'i plutocrati si spippolano i poveri paperini'
con una descrizione siffatta la query dovrebbe (deve) funzionare
P.S. Access non ci entra nulla questa (non quella di Roberto, visto che usa la
dlookup) e' semplice sql. Va bene per qualsiasi dbms.
