Newsgroup: it.comp.appl.access
Titolo: gestire 'felicemente' relazioni molti a molti

Amici,
come si fa per imputare in modo semplice dati in tabelle relazionate molti a
molti?
Ho un db con tre tabelle:
1) Autori - 2) Libri - 3) Autori/Libri
Quest'ultima realizza la relazione m-a-m tra le altre due.
Vorrei realizzare un sistema facile per gestire i dati.
Al momento opero cosi':
inserisco un nuovo autore,
inserisco un libro,
inserisco, nella tab. di congiunzione, le chiavi di quell'autore e di quel
libro.. e cosi' via CHE PALLE!!!
Vorrei realizzare una maschera che mi permetta di selezionare un autore
esistente (o crearne uno nuovo) ed avere sott'occhio tutti i suoi libri ed
inserirne degli altri.
Grazie a tutti

 ha scritto nel messaggio news:py2e9.8862$AW6.1...@twister2.libero.it...

Ciao,
se quello che vuoi ottenere (ho capito bene?) è un elenco Libri con associato un autore temo che tu ti stia complicando la vita:
potresti tenere la tua tabella Autori (con una chiave primaria), poi aggiungi un campo alla tabella Libri che relazionerai con la
chiave primaria della tabella Autori (tipo IDAutore), la relazione sarà uno a molti (per ogni autore puoi avere molti libri).
Se invece devi associare a ciascun libro più autori (un dizionario per es.) probabilmente la strada che hai scelto è quella giusta.
Mat.

 wrote in message
py2e9.8862$AW6.1...@twister2.libero.it...

Se le tre tabelle hanno una struttura simile a questa:
tabella Autori
------------------
IDAutore            Contatore e chiave primaria
Autore                Testo
ecc. ecc.
tabella Libri
----------------
IDLibro                Contatore e chiave primaria
Libro                    Testo
ecc. ecc.
tabella AutoriLibri
------------------------
ID                        Contatore e chiave primaria
IDAutore             Numerico
IDLibro                Numerico
Se la tabella AutoriLibri è in relazione uno-a-molti con la tabella Autori
in base ai campi IDAutore ed in relazione uno-a-molti con la tabella Libri
in base ai campi IDLibro.
Per il campo IDLibro della tabella AutoriLibri esegui l'Autocomposizione
Ricerca... basandola sulla tabella Libri.
Creati una maschera frmAutori che abbia come origine record la tabella
Autori ed una visualizzazione a Maschera singola.
In frmAutori inserisci anche una sottomaschera che abbia come origine record
la tabella AutoriLibri, che abbia visualizzazione a Maschere continue e che
contega un solo controllo (una casella combinata associata al campo
IDLibro).
Nell'intestazione di frmAutori inserisci una casella combinata non associata
chiamata CercaAutore e che abbia due colonne, di cui visibile solo la
seconda, e che abbia come origine riga il seguente codice SQL:
SELECT DISTINCTROW [Autori].[IDAutore], [Autori].[Autore] FROM [Autori];
A fronte dell'evento "Dopo aggiornamento" della casella combinata
CercaAutore genera il seguente codice VBA:
Private Sub CercaAutore_AfterUpdate()
Me.Filter = "IDAutore=" & Me!CercaAutore
Me.FilterOn = True
End Sub
A questo punto apri la maschera frmAutori; seleziona un autore dalla casella
combinata CercaAutore: nella maschera principale vedrai i dati relativi
all'autore selezionato; dalla casella combinata contenuta nella
sottomaschera seleziona i libri da inserire nella tabella AutoriLibri per
l'autore corrente nella maschera principale.
Naturalmente il giochino funziona creandosi una maschera principale basata
sulla maschera Libri e scegliendo sulla sottomaschera gli autori di quel
libro.
Spero di essere stato chiaro.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------