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

Dovrei fare una cosa che penso sia abbastanza banale ma essendo molto poco 
pratico di access non riesco a farlo e anche leggendo delle guide non sono 
riuscito a chiarirmi bene le idee.
Versione: Access 2007
 
Praticamente ho creato 3 tabelle del tipo
TABELLA PERSONE
ID -> Contatore (chiave primaria)
ID_CIRCOSCRIZIONI -> Numerico (chiave esterna)
cognome -> Testo
nome -> Testo
[...]
ID_CITTA -> Numerico (chiave esterna)
[....ALTRI CAMPI TESTO...]
 
TABELLA CIRCOSCRIZIONI
ID -> Contatore (chiave primaria)
CIRCOSCRIZIONE -> Testo
 
TABELLA CITTA
ID -> Contatore (chiave primaria)
CITTA -> Testo
PROVINCIA -> Testo
 
Poi ho inserito i dati nella tabella circoscrizioni (solo 3 elementi) e 
nella tabella CITTA (inserendo una 30ina di città con la relativa 
provincia).
 
Ora vorrei semplicemente collegare la tabella PERSONE alle altre due tabelle 
in modo che per i campi ID_CIRCOSCRIZIONI e ID_CITTA si possano inserire 
solo i dati già inseriti nelle rispettive tabelle. E il mio obiettivo finale 
sarebbe creare una maschera in cui quando si vanno ad inserire i dati in 
PERSONE per i campi ID_CIRCOSCRIZIONI e ID_CITTA  ci siano dei menu a 
tendina che mi facciano scegliere tra le voci contenute nelle relative 
tabelle.
 
Ho provato a creare delle relazioni tra il campo ID della tabella CITTA e il 
campo ID_CITTA della tabella PERSONE e un'altra tra il campo ID della 
tabella CIRCOSCRIZIONI e il campo ID_CIRCOSCRIZIONI  della tabella PERSONE 
ma non succede nulla.
 
Mi spiegate come ad un bambino di tre anni o come a vostra nonna che cosa 
devo fare?! :)
 
Grazie.
 
-- 
 
 
 

 ha scritto nel messaggio 
news:l49jkf$c2u$1...@speranza.aioe.org...

TABELLA CIRCOSCRIZIONI
IDCircoscrizioni -> Contatore (chiave primaria)
CIRCOSCRIZIONE -> Testo
 
TABELLA CITTA
IDCitta -> Contatore (chiave primaria)
CITTA -> Testo
PROVINCIA -> Testo
 
TABELLA PERSONE
IDPersone -> Contatore (chiave primaria)
cognome -> Testo
nome -> Testo
IDCircoscrizioni (Legato Con Relazione QUI MOLTI e nella tabella 
CIRCOSCRIZIONI uno)
IDCitta (Legato Con Relazione QUI MOLTI e nella tabella CITTA uno)
[...]
 
Ciao
Graziano 
 
 


Grazie per la risposta.
In realtà alla fine ho risolto in un modo un po' diverso...
Ho eliminato le voci ID dalle tabelle CITTA e CIRCOSCRIZIONI ed ho creato la 
relazione direttamente tra CITTA della tabella CITTA e CITTA della tabella 
PERSONE nonché tra CIRCOSCRIZIONE della tabella CIRCOSCRIZIONI e 
CIRCOSCRIZIONE della tabella PERSONE.
Poi ho spuntato "Applica integrità referenziale" (che prima non avevo fatto) 
per entrambe e ho messo in "Tipo join...": "Includi solo le righe in cui i 
campi collegati da entrambe le tabelle sono uguali"
Poi nella maschera di inserimento (della tabella PERSONE: l'unica maschera 
che serve) x le voci CIRCOSCRIZIONI e CITTA ho inserito una "Casella 
combinata" e nel wizard di creazione gli ho detto di prendere i dati per il 
menu a tendina dal campo CIRCOSCRIZIONE delle tabella CIRCOSCRIZIONI per la 
prima e dal campo CITTA della tabella CITTA per la seconda. Infine, nella 
scheda "Dati" delle proprietà dei due controlli ho messo come "Origine 
controllo" CIRCOSCRIZIONI (della tabella PERSONE) per la prima e CITTA 
(della tabella PERSONE) per la seconda.
 
Per ora sembra funzionare correttamente...
Speriamo bene...
 
\ho solo qualche dubbio per quel "Includi solo le righe in cui i campi 
collegati da entrambe le tabelle sono uguali" perché non ho capito benissimo 
come funzioni esattamente...
 
-- 
 
 

 benissimo come funzioni esattamente...
 
p.s.: scusate tutti per l'overquoting... mi è sfuggito.
 
-- 
 
 

 ha scritto nel messaggio 
news:l4c3v9$cid$1...@speranza.aioe.org...

I collegamenti che hai fatto sono ERRATI non hai capito una .... del 
database.
Ora ti faccio un esempio BANALE:
 
TABELLA PERSONE
IDPersone -> Contatore (chiave primaria)
cognome -> Testo
nome -> Testo
Citta ->Testo 50
 
In questo caso nella tabella memorizzi quanto descritto sopra senza 
relazioni
 
Ora supponiamo che hai tante persone che abitano a MONTECATINI TERME.
Nel campo Citta inserirai a manina tutte le persone che abitano a 
MONTECATINI TERME scrivendo ogni volta.
 
Se invece hai quest'altra tabella:
 
TABELLA CITTA
IDCitta -> Contatore (chiave primaria)
CITTA -> Testo
 
In questa tabella memorizzerai UNA SOLA VOLTA la citta MONTECATINI TERME
 
TABELLA PERSONE
IDPersone -> Contatore (chiave primaria)
cognome -> Testo
nome -> Testo
IDCitta (Legato Con Relazione QUI MOLTI e nella tabella CITTA uno)
 
Nella TABELLA PERSONE con una COMBO sceglierai la citta MONTECATINI TERME e 
memorizzerai solo un numero al posto dei caratteri che occupa meno spazio.
 
Meglio che leggi qualche libro.
 
Buona Fortuna
 
Graziano
 
 
 
 

 Meglio che leggi qualche libro.
 
Sì, hai ragione, dovrei....
 
 
-- 
 
 

 Sì, hai ragione, dovrei....
 
Purché non sia scritto da MS: quelli sanno scrivere ottimi linguaggi ma 
poi, negli esempi, li programmano alla Fantozzi!
 
Bruno
 
 

 Ci provo...
 
Scusami, ma non ci ho capito quasi nulla... :P
 
 
-- 
 
 

Massy explained :

Scusami tu se non mi so spiegare meglio.
 
Bruno