[Access] Access: relazione molti a molti, gestire inserimento dati

Anonimo
2009-11-02T17:33:02+00:00

Ho due tabelle collegate con relazione molti a molti mediante una terza tabella; ad esempio si supponga di avere una tabella contatti costituita dai campi ID_Contatto, cognome, nome, telefono ed una tabella eventi costituita dai campi ID_Evento, nome_evento, data_evento . Dato che ad un evento può essere associato più di un contatto e dato che un contatto può stare in più eventi, realizzo una relazione molti a molti con una terza tabella, tabella di collegamento , costituita dai campi ID_Collegamento, contatto_ID, evento_ID .

Vorrei creare una maschera eventi dove l'utente potrà inserire il nome dell'evento, la data e poter selezionare i contatti già registrati da associare all'evvento.

Considerando quindi che la tabella contatti sia già riempita da n record, la maschera di inserimento dati vorrei che sia composta da due caselle di testo rispettivamente nome_evento, data_evento e da una casella di riepilogo selezione multipla per selezionare i contatti da associare all'evento. Si evidenzia come dall'inserimento dei dati in questa maschera così descritta, nella tabella di collegamento dovranno essere riportati gli ID delle corrispettive tabelle contatti ed eventi per effettuare quindi la relazione molti a molti.

La soluzione della sottomaschera non è sufficiente in quanto non permette di selezionare uno o più contatti ma di inserirli soltato. Chiedo a voi quindi un esplicito aiuto sui passaggi da seguire per poter creare quanto richiesto. Mi auguro non sia poi così complicato. Grazie anticipatamente.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. Anonimo
    2009-11-03T06:48:13+00:00

    Salve,

    per evitare che un contatto non sia presente più di una volta per un singolo evento basta creare nella "tabella di collegamento" un indice univoco composto dai campi *contatto_ID, evento_ID.*Se ci sono dubbi sulla creazione dell'indice leggi la sezione "Creare un indice multicampo" di questo documento


    Creare e utilizzare un indice per migliorare le prestazioni

    http://office.microsoft.com/it-it/access/HA102103471040.aspx?pid=CH100645691040


    Saluti

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2009-11-02T20:40:31+00:00

    Salve la ringrazio tanto per aver risposto, comunque il problema della sottomaschera è relativo al fatto che devo inserire i contatti ma si pone il problema che se un contatto esiste già esso viene inutilmente duplicato. Se esiste una soluzione a questo sarebbe meglio per me usare le sottomaschere perchè come Lei giustamente sottolineava sarebbe complicato usare una casella di riepilogo.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2009-11-02T19:48:51+00:00

    Ciao,

    la soluzione della sottomaschera a mio parere è la più semplice e la più idonea perchè ti permette di inserire nella "tabella di collegamento" per ogni evento, da 1 a n nominativi.

    La gestione che vorresti fare tramite casella di riepilogo è alquanto complicata perchè:

    In caso di nuovo inserimento dovresti inserire un record per ogni nominativo selezionato.

    In caso di modifica record dovresti popolare la casella combinata selezionando i nominativi già presenti, se ne deselezioni uno devi cancellarlo dalla tabella, se ne aggiungi uno devi aggiungerlo alla tabella, insomma un mezzo macello :-)

    Se proprio vuoi gestire la cosa selezionando i nominativie ad esempio tramite una casella combinata e hai Access 2007 dai un'occhiata ai campi multivalore


    Introduzione ai campi multivalore

    http://office.microsoft.com/it-it/access/HA012337221040.aspx


    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento