Newsgroup: it.comp.appl.access
Titolo: Re: [NEWBIE] aiuto con Access Xp


Ciao,
dando x buono il fatto che sei in fase di "studio" in quanto le relazioni 
uno a molti (od 1 ad infinito...) si impostano allorquando tu prevedi una 
tabella primaria nella quale immetti delle informazioni complete e che 
xaltro non vuoi ripetere e delle tabelle secondarie nelle quali inserisci 
altre informazioni che prendendo spunto da essa (tabella primaria) non 
vadano a ricalcarne i dati ma ad aggiungerne dei nuovi come estensioni o 
completamento della prima ma ovviamente ad essa legate xchè il motivo 
"fondamentale" di un db "relazionale" è quello che tutte le tabelle siano 
cmq legate x far sì che in qualunque momento tu possa raccoglierne 
(visualizzare, stampare etc...) "tutte" le informazioni archivate tramite 
query.
In sintesi cosa voglio comunicarti? Che già sbagli in partenza ad impostare 
il db in quanto ad 1 persona (rubrica) corrisponde 1 città (tb città) -> a 
meno che il tizio non si sia in qualche modo fotocopiato prima di nascere 
;-)
Bene! Dopo averti creato la prima tabella passi a crearti la seconda 
(compreso il campo che puoi chiamare come vuoi e che sia riferito al campo 
città della prima tabella) -> esso deve essere un numerico (ovviamente...in 
quanto ricalca le informazioni dell'id) e prima di chiudere di nuovo access 
ti chiede se vuoi indicizzare la tabella -> puoi rispondere sì ed in 
automatico lui aggiunge 1 id come nella prima.
A questo punto vai sul menu strumenti e scegliendo relazioni aggiungi le tue 
2 tabelle -> drag & drop da "id" della tabella rubrica a codice città della 
tabella città e come x magia access ti suggerisce la relazione 1 a molti -> 
premi su "crea" e sei a cavallo ;-)
A questo punto come ordine logico dovresti immettere dei dati nella prima e 
poi riscrivere il corrispondente id nella seconda e procedere -> ma se ti 
crei delle maschere etc...ci pensa access a far ciò :-)
Una cosa da non sottovalutare è l'integrità referenziale-> se la cecchi stai 
comunicando ad access di farti inserire nella seconda tabella (città) solo 
se nella prima (rubrica) ci sono dei dati di riferimento e 
contamporaneamente di non poter cancellare nella tabella rubrica dei dati 
fin quando ve ne saranno presenti nella tabella città alcuni di riferimento.
A questo punto potresti utilizzare come "chiave esterna" l'id della seconda 
tabella...la cosa importante è che in ogni momento tu possa risalire ai dati 
ti tutte le tabelle tramite le relazioni e che eviti più che puoi di 
duplicare dati! :-)
Se vai sul sito comune nella sezione "risorse" ci sono dei links di 
riferimento...buono studio :-) 

[CUT]
Prova a dare 1 occhiata a questo sito 
http://www.kidlink.org/italiano/tutornet/access/index.htm
 ...
Con access dai vita al db ma ti consiglio di utilizzare carta e penna x 
strutturare il db...sopratutto se è più complesso di una semplice anagrafica 
;-) 

 ha scritto nel messaggio 
news:438b1fcd$0$16213$4faf...@reader3.news.tin.it...


 ha scritto nel messaggio 
news:438b33a6$0$13254$4faf...@reader2.news.tin.it...

Non sò quanto possa esserti stato d'ausilio sia per la forma che per i 
contenuti -> prova 1 pò a smanettare per esempi concreti...immaginati ad es. 
di doverti gestire un db di cd musicali ed imposti la relazione uno a molti 
dove da una prte c'è la tabella autore (con le relative informazioni) e 
dall'altra tutti i brani musicali che fanno capo ad un determinato autore e 
che richiami facendo riferimento all'id creato in automatico nel campo 
autore...insomma inizia con qualcosa di semplice...l'importante è capire 
bene i "concetti di base" sin dall'inizio.
Il tuo esempio si risolve in una sola tabella nella quale inserisci anche la 
città etc...
E giacchè sei nuovo ti diamo il benvenuto "in loco" con questa paginetta -> 
http://www.accessgroup.it/notiquette.htm
 ;-)
Alla prossima :-) 

 Alla prossima :-)
Volevo domandarti una cosa: come faccio a stabilire la direzione della 
relazione tra due tabelle, mi spiego meglio.
Ho una relazione "uno a molti" tra la tabella A e la tabella B come faccio a 
stabilire se è la tabella A o la tabella B che può corrispondere ad 1 record 
dell'altra tabella 2 o più record della propria?

 ha scritto nel messaggio 
news:438c4e49$0$16205$4faf...@reader3.news.tin.it...

Ciao,
facciamo l'esempio che io voglia dare ordine alla mia collezione di 
videocassette (1 es. pratico x intenderci...) e così penso di costruirmi un 
db...
Creo la prima tabella (quella degli "attori", che posso anche chiamare A o 
B -> non importa) e mi creo i seguenti campi:
Tabella Attori
1° Record
-----------------
Attore: Robert De Niro
Via:.........
Città:..........
Tel:............
etc...................
-------------------
2° Record
-----------------
Attore: Al Pacino
Via:.........
Città:..........
Tel:............
etc...................
-------------------
e così via dicendo...ok?
Sappiamo bene che De Niro, Al Pacino etc...hanno partecipato ad un certo 
numero di films come attori...
Allora mi creo la tabella Films (che posso chiamare A o B o C....ripeto non 
importa) e al suo interno creo i seguenti campi
1° Record
-----------
Titolo Film: Risvegli
Attore: Al Pacino
Regista:...
etc...
------------
2° Record
-----------
Titolo Film: Heath
Attore: Al Pacino
Regista:...
etc...
------------
e così via... cosa noti in questa seconda tabella?
C'è una ridondanza in Attore in quanto il suo "nome"  è già stata archiviato 
nella tabella "Attori"...
E quindi capisco che qualcosa non va...in quanto non ha senso riscrivere lo 
stesso nome in più tabelle....che faccio?
?
Mettiamo caso che nel creare la prima tabella prima di chiudere, quando 
access mi dice di inserire la chiave id in automatico, io abbia detto di sì. 
Quando lavoro nella prima tabella ad ogni attore inseriro lui accoppia un 
numero crescente es... De Niro 1... Al Pacino 2...Morgan Freeman 3 e così 
via...
Quindi nel costruire la seconda tabella ("Films") al posto del campo stringa 
"Autore" posso fare riferimento al numero (id) di riferimento della prima 
tabella.
Cosa verrà fuori? Qualcosa del genere...
1° Record
-----------
Titolo Film: Risvegli
Attore: 1
Regista:...
etc...
------------
2° Record
-----------
Titolo Film: Heath
Attore: 1
Regista:...
etc...
------------
Quindi al posto del campo "Autore" di tipo stringa posso lasciare lo stesso 
nome ma non lo andrò a creare come stringa ma come numero (long) così 
anzichè riscrivere tutto l'autore mi riporto il numeretto di riferimento...
Dopo aver creato anche la seconda tabella "Films" con eventualmente 1 altro 
id (chiave primaria) da utilizzare  come chiave esterna vado a scegliere la 
voce relazioni dal menu strumenti e facendo il trascinamento (con il mouse) 
dal campo id della prima tabella (Attori) al campo Attore (della tabella 
Films) access mi propone la relazione uno a molti (cioè inserisco una sola 
volta la scheda dell'attore e nella tabella correlata - ovvero Films - 
inserisco tutti i films che fanno capo a quel determinato Attore) ed a 
questo punto dico di sì!
Potevo chiamare come volevo la tabella Attori e lo stesso dicasi per la 
tabella Films -> è la logica che non cambia in quanto ad un attore 
corripondono + films ed io non devo riscrivere assolutamente dati 
dell'anagrafica Attori e nello stesso tempo quando voglio interrogare il db 
(query...) in qualsiasi momento ho una panoramica d'insieme non legata alla 
singola tabella bensì estesa a tutto il db e quindi posso andare a vedere 
che un determinato film  è stato interpretato da quell'attore che è nato a 
...e vive...ci siamo in qualche modo?
Se hai dubbi "esternali"...più ne chairisci adesso meno ne avrai in seguito 
;-)
E' normale che all'inizio sei un pò perplesso...ma con il tempo passo -> 
access è come il rapporto con una bella donna...più la frequenti e più ci 
prendi gusto ;-)
Buon lavoro :-) 

 ha scritto nel messaggio 
news:438c4e49$0$16205$4faf...@reader3.news.tin.it...

In sintesi a noi interessano i dati (stringhe etc...) access ragiona invece 
per numeri e quindi i legami fra le tabelle sono fondati sui numeri e quindi 
l'id creato in una tabella come chiave primaria e relazionato ad un altro 
numerico creato in 1 altra tabella "non" come chiave (indipendentemente dal 
nome della tablle A, B, C etc...) viene suggerito da "lui" come 1 eventuale 
relazione uno a molti...ci siamo? :-) 

 Buon lavoro :-)
grazie :-)

 relazione tra loro e non capisco bene quindi la logica di funzionamento.
Bene anche qui -> sei un tipo che si impegna ;-)
Se noi limitiamo il nostro db a queste 2 tabelle così come sono possono 
andare in quanto le abbiamo relazionate abbastanza bene! Il problema si pone 
alloquando noi volessimo aggiungere altre tabelle da relazionare ad es alla 
tabella Fims -> come fare? Praticamente avrai più di 2 tabelle che avranno 
una loro logica sulla quale baserai le relazioni...eventualmente come fai a 
relazione la tabella "Fims" ad 1 eventuale terza tabella? Potresti 
utilizzare il famoso campo "id" di cui ti dicevo che viene creato in 
automatico da access e lui sà che ad ogni film corrisponde un numero...cmq 
se limiti il tuo db a quelle 2 tabelle va bene con id (tabella Attori) e 
Attore (tabella Films)...ok?

 ha scritto nel messaggio 
news:438c690f$0$16209$4faf...@reader3.news.tin.it...

Inizia cmq a lavorare con 2 tabelle e poi implementerai le tue conoscenze -> 
prova a seguire la creazione guidata della maschera sulla base di quelle 2 
tabelle e quindi ad immettere dati d'esempio per poi vedere cos'ha combinato 
access al tuo posto in termini di dati immessi dalle tabelle.
Attore (tabella Films) è chiave esterna rispetto alla tabella Attori ma ciò 
non vieta che io possa avere 1 altra chiave esterna nei riguardi di un'altra 
tabella...ok? 

Faccio così: adesso finisco la teoria perché giovedì ho l'esame, poi provo a 
costruirmi un mio database e sono sicuro che mettendolo in pratica verranno 
a galla tutti i problemi che non riesco a risolvere da solo.
Ho letto attentamente quello che mi hai scritto, ma ti assicuro che non 
provandolo nella pratica, per me, che non ho esperienza e non ho ancora 
acquisito i fondamenti di questa materia, rimane incomprensibile, o meglio, 
aumentano i miei dubbi.
Rimando l'esperimento a venerdì o prox settimana.
Mi rifaccio vivo sicuramente :-)
Ti volevo ringraziare moltissimo per tutte le spiegazioni, ci tornerò 
nuovamente sopra quando inizio a lavorarci nella pratica, mi sono 
preziosissime.
a presto!!
K.

 ha scritto nel messaggio 
news:438ca80f$0$27606$4faf...@reader1.news.tin.it...

Ok -> ti aspettiamo...non ci abbandonare ;-)
In bocca al lupo e l'esame :-) 

 In bocca al lupo e l'esame :-)
Crepi il lupo,
a presto!
K.