Newsgroup: it.comp.appl.access
Titolo: Cancellazione record in cascata

Nella maschera principale ho cancellato un record e ho
scoperto con orrore che mi ha cancellato tutti i record
delle tabelle collegate nella query su cui si basa la
maschera. Cioe' io volevo che cancellasse solo il record
della tabella principale, ma siccome questa ha tre campi
Id1, Id2 e Id3 che puntano in altrettante tabelle, sono
stati cancellati anche i record di queste tre tabelle
corrispondenti ai valori di Id1, Id2 e Id3. E' normale? Come
posso fare per evitarlo in futuro? C'e' un sistema veloce
per ripristinare le tre tabelle senza dover cancellare e
rifare tutte le relazioni?
il barbi

 ha scritto nel messaggio
news:LIhOa.29159$xK6.7...@news1.tin.it...

Nelle relazioni hai applicato l'integrità referenziale chiedendogli di
eliminare a catena. Basta togliere la spunta dopo aver clickati sulla
relazione che unisce la tua tab "principale" alle altre 3. Considera che
questo meccanismo funziona solo cancellando dalla principale, se cancelli un
record nelle secondarie, cancelli solo quello.
MAssimiliano


e invece no, nessuna relazione ha l'integrita' referenziale,
sono tutte del tipo "tutti i record della tabella principale
+ i record delle tabelle secondarie col campo di
collegamento uguale"...
il barbi

 ha scritto nel messaggio
news:x9nOa.45681$HU3.1...@news2.tin.it...

Guarda che anche con l'eliminazione a catena puoi vedere tutti della tab A e
solo quelli uguali della tab B.
Dalla finestra principale scegli relazioni. Clicka sulla relazione e vedi se
c'è l'eliminazione. Ma lo devi fare dalla finestra relazione non dalle
query.
MAssimiliano

 ha scritto nel messaggio
news:iQtOa.2226$B8...@news.edisontel.com...

be' nelle Relazioni clicco sulla relazione, non c'e'
l'integrita' referenziale e quindi giustamente non sono
abilitati ne' "aggiorna campi correlati a catena" ne'
"elimina record correlati a catena", piu' di cosi'... ho
rifatto il test su una copia del db e orribilmente mi
sparisce non solo il record della tabella principale ma
anche i record delle tabelle collegate nel modo che ho
detto...
Per essere piu' preciso, nella tabella principale Tab ho
Id1, Id2 e Id3; nella query principale Qry ho Id1, Id2 e Id3
e i campi corrispondenti Campo1, Campo2 e Campo3 contenuti
in tre tabelle secondarie Tab1, Tab2 e Tab3; cancellando il
record dalla maschera principale basata su Qry, oltre al
record in Tab mi spariscono anche i record Id1,Campo1 in
Tab1; Id2,Campo2 in Tab2; Id3,Campo3 in Tab3.......... che
disastro!!
il barbi

 ha scritto nel messaggio
news:7AxOa.32633$xK6.8...@news1.tin.it...

Fai una cosa. Importa tutto in nuovo db senza importare le relazioni. Poi le
ricrei.
Credo che sianostate inserite e poi tolte loro la spunta, ma il sistema
continua a riconoscerle.
Facci sapere MAssimiliano


ecco, infatti mi ricordo che prima avevo dato l'integrita'
referenziale e poi l'avevo tolta... quindi ti pare che sia
un baco di Access?
il barbi

 il barbi
Fai come ti ho detto, dovresti risolvere
MAssimiliano


e' pazzesco, ho importato tabelle, query e maschera con
l'opzione "no relazioni", ho ricreato le relazioni senza
integrita' referenziale e definendo il join come "tutti i
record della tabella principale e solo i record delle
tabelle secondarie in cui i campi collegati sono uguali",
poi ho provato a cancellare un record e MI CANCELLA ANCHE I
RECORD DELLE TABELLE SECONDARIE....
o sono sfigato io...
il barbi
PS dopo aver ricreato le relazioni, automaticamente sono
state create anche nella query principale