Relazioni Molti a Molti

di il
4 risposte

Relazioni Molti a Molti

Buongiorno,
innanzitutto mi presento. Non sono un programmatore, ma un semplice utilizzatore di ACCESS a scopi personali per gestire DB non molto complessi per ambito professionale.
Al momento ho un problema con una creazione a cascata di relazione molti a molti dal quale non riesco a venirne fuori.
Ho potuto verificare e su Internet e su Northwind la gestione base delle relazioni suddette, ma applicandola poi nel mio caso specifico non riesco a farla funzionare.
Di fatto la mia struttura sarebbe equivalente a:
Tabella Prodotti in relazione 1-oo con Tabella Serial/Number
Tabella Anagrafica Tecnici in relazione 1-oo con Tabelle Interventi
Il problema nasce con la creazione della relazione oo-oo fra Serial/Number e Interventi in quanto in fase di immissione dati mi chiede sempre i dati della Tabella Anagrafica.
Allego immagine delle relazioni create.
Cortesemente mi potete aiutare a comprendere dove sbaglio?

Grazie anticipato
Allegati:
19472_d20081f8d62fe53eae22191d1e5c31a8.jpg
19472_d20081f8d62fe53eae22191d1e5c31a8.jpg

4 Risposte

  • Re: Relazioni Molti a Molti

    Io ho un po' di difficoltà nel comprendere i termini tecnici del tuo campo professionale. Potresti spiegare:
    - cosa rappresentano le tabelle SerialNumbers e Interventi?
    - di cosa parla il tuo database?

    Poi...giusto per coerenza dati...perchè hai nominato il campo ID_CAT_Attività nella tabella Attività quando dovrebbe rappresentare un IDAnagrafica?
  • Re: Relazioni Molti a Molti

    Buongiorno OsvaldoLaviosa,
    innanzitutto vorrei ringraziarti per il tempo e per la risposta.
    Sinteticamente ti spiego l'esigenza. Immagina di avere N prodotti identificati ciascuno con il suo Serial/Number (M esemplari della i-esima linea di Prodotto). Esempio: Prodotto A con S/N da 001 a 100, poi prodotto B con relativo range di S/N da 001 a 200 etc..... Questi li gestisco tramite le tabelle Tabella Prodotti e Serial Number. All'interno di questa ultima vorrei inserire anche l'anagrafica degli interventi che ogni singolo S/N di ogni linea di prodotto subisce ad opera dei centri di assistenza.
    Dall'altra parte ho le gestioni anagrafiche dei centri di assistenza (K entità) che svolgono H attività di intervento su X macchine (di varie linee e vari S/N). La tabella Tabella Anagrafica CAT gestisce i dati anagrafici necessari per individuare esaustivamente ogni singola entità, a questa associo poi la tabella degli interventi che le K entità svolgono su tutti gli apparati.
    Ora il problema è il seguente: vorrei riportare simultaneamente e da una parte e dall'altra lo storico di queste attività. Per le macchine generare una tabella che al suo interno mi specifica chi-ha-fatto-cosa, e dall'altra, invece, dove-è-stato fatto-il cosa nella rispettiva tabella "storico".
    Ho trovato alcuni tutorial in cui ho visto la definizione delle relazioni molti-a-molti basandosi però su due-tre campi nelle tabelle primarie, e poi definendo tre campi nella tabella di collegamento (la chiave primaria e le due chiavi esterne). Ho ricostruito il DB-tutorial per comprendere il procedimento e mi ha funzionato. Purtroppo nel mio caso invece non mi funziona dato che riesco a generare le tabelle ma quando inserisco, per esempio, un intervento eseguito su di una macchina da parte di un CAT (precedentemente definito anagraficamente), questo mi chiede sempre di inserire dati già definiti (per esempio il nome)......
    Volevo capire intanto se come ho definito i campi e le relazioni mi sto muovendo correttamente, e poi, nel caso potesse tornare utile, allegherei le strutture delle tabelle e query create per la costruzione del join. Il mio dubbio sta' nel fatto che forse dovrei creare una tabella di collegamento fra Attività CAT e Serial NUmber.
    Grazie e buona giornata
    Nik
  • Re: Relazioni Molti a Molti

    Una relazione M-M va alimentata in modo abbastanza rigido.

    Se crei una Maschera basata su Anagrafica, con una Sottomaschera(continua) basata su [AttivitaCAT]... legando Campi Master/Secondari, automaticamente il campo Id_CAT sarà Riferito sempre...!
    A quel punto nella SubForm Attività avrai da popolare il Controllo/campo associato a ID_CAT_SN, che chiaramente fa riferimento alla Tabella lato 1...!
    Per questo crei una Combo associata al campo [ID_CAT_SN] e con RowSource la Tabella [Serial Number].

    Quindi in questo modo avrai che ad ogni nuovo inserimento nella Tabella INTERMEDIA il campo [Id_CAT] viene compilato per RIFERIMENTO alla FORM di cui mantiene legame, mentre il campo [ID_CAT_SN] viene compialto dalla selezione Operatore.

    Puoi vedere la cosa anche VICEVERSA.
  • Re: Relazioni Molti a Molti

    Alex,
    ti ringrazio per il suggerimento. Ripulisco il DB e riverifico l'efficacia delle JOIN varie.
    Buona giornata
Devi accedere o registrarti per scrivere nel forum
4 risposte