Forms

3.100 Individuare, in fase di cancellazione di un record, la correlazione di quel record con record di altre tabelle
  Sandro Peruz
(D)
E’ possibile individuare, in fase di cancellazione di un record, la correlazione del record che si sta eliminando con le altre tabelle del database corrente, indicando le tabelle correlate e il numero della chiave primaria corrispondente al record che si sta eliminando?

(R)
Access, nel momento in cui si tenta di eliminare un record che è correlato in altre tabelle, avvisa informando dell’impossibilità di effettuare questa operazione perché appunto il record è correlato.
Il messaggio che Access emette, contiene solamente il nome di una sola tabella correlata, quando invece ce ne possono essere molte altre, e di conseguenza quel record che si sta tentando di cancellare è possibile che sia correlato con record presenti anche in altre tabelle (non è detto: ovviamente è possibile come non è possibile).
La function MostraTabelleCorrelate consente di individuare le tabelle correlate a quella contenente il record che si sta tentando di eliminare, sia nel caso in cui l’origine dati è una tabella sia nel caso in cui l’origine dati sia una query salvata, composta anche da più tabelle.
La function deve essere invocata, come nel database di esempio allegato a questa FAQ, su errore nel commandButton di cancellazione.
La funzione di cui sopra contiene un metodo utilizzabile solamente con Access 2003, (IsDependentUpon una vera chicca) di conseguenza con le versioni precedenti non è utilizzabile.
Naturalmente per valutare bene il demo è da utilizzare in un db in cui una chiave primaria di una tabella è chiave esterna in piu tabelle con essa in relazione uno-a-molti.

Download:
 
  Copia di Northwind.zip (349Kb) MSAccess2003 database


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.