Newsgroup: it.comp.appl.access
Titolo: relazioni tra tabelle

Scusatemi ancora, ho qualche quesito...ogni giorno me ne viene in mente una!
Io sto facendo un database, mi sono accorta che non ho stabilito nemmeno una
relazione. Come si fa a farlo?
E a cosa serve stabilirle se comunque il mio database funziona??
in...@iname.com

 ha scritto nel messaggio
news:0PlB5.47014$3R6.1...@news.infostrada.it...

Se hai realizzato già uno o più database che funzionano e sei soddisfatta
dei risultati, e se ognuno contiene due o più tabelle ho dei dubbi serissimi
che la tua affermazione sia vera. Può essere invece vero che tu non lo abbia
fatto esplicitamente selezionando dal menu Strumenti il comando Relazioni...
. Ma questo in Access non è l'unico modo per mettere in relazione fra di
loro tabelle e query.
Puoi farlo implicitamente (quindi senza accorgertene) in parecchi modi, ad
esempio:
1) Usando l'Autocomposizione Ricerca per un campo d una tabella.
2) Creando una query in cui sono in join due o più oggetti del tuo database.
3) Usando una casella combinata associata in una maschera o in un report.
4) Creando una maschera che contiene una sottomaschera.
5) Creando un report che contiene un sottoreport.
ecc. ecc.
A questo punto potresti però chiederti perché usare Strumenti=>Relazioni..
per mettere in relazione fra di loro due oggetti del tuo database visto che
poi Access è capace di farlo da solo.
Due oggetti possono essere messi in relazione fra di loro in diverse
maniere; se lasci fare ad Access decide lui, e non è detto che a te possa
stare sempre bene.
Ad esempio, in una relazione uno-a-molti tra due tabelle, nei casi sopra
citati Access non applica quasi mai l'integrità referenziale: questo
potrebbe crearti seri inconvenienti durante la gestione del database.
Una query generata dal join di due o più oggetti cambia il suo risultato a
seconda del tipo di join con cui si lavora; non è sempre vero che quello di
default (il tipo 1) sia quello che ti serve.
Quindi Strumenti=>Relazioni... è un mezzo necessario tutte le volte che hai
la necessità di personalizzare una relazione tra due o più oggetti.
Infine, se lo adoperi, nella finestra Relazioni potrai sempre leggere e/o
modificare la mappatura dell'architettura del tuo database, e se stai
sviluppando un database che non sia la banale gestione di una agenda
telefonica, ciò è necessario se non addirittura indispensabile.
Alla fine della fiera rispondo così alle tue due domande:
1) Due oggetti di un database possono essere messi esplicitamente in
relazione fra di loro selezionando il comando Relazioni... dal menu
Strumenti, oppure implicitamente nei modi sopra indicati.
2) Se poi fosse effettivamente vero che nei tuo database gli oggetti non
sono mai messi in relazione fra di loro, non hai bisogno di un database
relazionale ma di un foglio di calcolo (insomma di Excell e non di Access);
e non è del tutto vero visto che in Excell le celle dei vari fogli di lavoro
possono essere messe in relazione fra di loro.
3) Comunque, in un'applicazione che stampa fatture, come puoi ipotizzare di
non mettere in relazione uno-a-molti tramite il codice cliente la tabella
AnagraficaClienti con la tabella Fatture?
--
Roberto
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------