Non replicare i dati

di il
4 risposte

Non replicare i dati

Salve ho questa situazione:

Tabella "Nome" due campi [ID_nome_distinta] e [nome_distinta] dove il primo campo è la chiave primaria
Tabella "Distinta" due campi [ID_nome_distinta1] e [materiale] dove il primo è la chiave esterna in relazione uno a molti
con [ID_nome_distinta]

Ora ho la maschera e sottomaschera dove nella maschera ho [ID_nome_distinta1] e nella sottomaschera [materiale]
Quando inserisco i dati del materiale vengono scritti nella tabella "Distinta" direttamente senza una tabella di appoggio.

Nella tabella Distinta il materiale si puo' ripetere a patto che il [ID_nome_distinta1] sia diverso (vuol dire che lo stesso materiale è in due distinte diverse).

La domanda è possibile controllare che non ci siano due record con uguale [ID_nome_distinta1] e [materiale] senza utilizzare una tabella di appoggio? Questa situazione è da evitare perchè vorrebbe dire che si è inserito due volte lo stesso materiale per la medesima distinta.
Grazie

4 Risposte

  • Re: Non replicare i dati

    Ripeto a parole mie: tu non vuoi che nella tabella Distinta (perchè non ha un nome al plurale? Idem per Nome?) non ci siano duplicati nella coppia campi [ID_nome_distinta1] e [materiale]. Giusto?
    Ti consiglio di impostare un "Indice Multicampo Univoco" che impedisce tale input duplicato. Se l'utente erroneamente lo fa, Access invia un messaggio di errore. Leggi qui per impostarlo
    https://support.microsoft.com/it-it/office/creare-e-utilizzare-un-indice-per-migliorare-le-prestazioni-0a8e2aa6-735c-4c3a-9dda-38c6c4f1a0ce
    dove dice "Creare un indice multicampo".
  • Re: Non replicare i dati

    Ciao Osvaldo forse hai capito cosa voglio ma io non ho capito come operare.
    Faccio un esempio dove la prima riga è il nome del campo
    
         ID_nome_distinta_base1              materiale
                      23                                CANMATIT00106
                      24                                CANMATIT00106
                      23                                CANMATIT0098
                      23                                MECCUSCI001
                      24                                MECCUSCI001
    
    Questi dati sono corretti e si leggono:
    la distinta base la cui chiave esterna è 23 ha i materiali i cui codici sono CANMATIT00106, CANMATIT0098, MECCUSCI001
    la distinta base la cui chiave esterna è 24 ha i materiali i cui codici sono CANMATIT00106, MECCUSCI001

    Ora vorrei evitare che ci fosse una ulteriore riga dove ID_nome_distinta_base1 e materiale fossero uguali
    ad esempio:
    
     ID_nome_distinta_base1                   materiale
                      23                                CANMATIT00106
                      24                                CANMATIT00106
                      23                                CANMATIT0098
                      23                                MECCUSCI001
                      24                                MECCUSCI001
                      23                                CANMATIT00106  <------- questo no perchè e' un doppione della prima riga.
    
    Ho provato ad inserire l'indice multicampo inserendo due si al valore univoco nei due campi ID_nome_distinta_base1 e materiale ma mi da errore.
  • Re: Non replicare i dati

    tatixtatix6 ha scritto:


    Ho provato ad inserire l'indice multicampo inserendo due si al valore univoco nei due campi ID_nome_distinta_base1 e materiale ma mi da errore.
    Attento, non devi impostare "Indicizzato: Sì(duplicati non ammessi)" ai 2 campi presi singolarmente (singolarmente devono essere No oppure Sì(duplicati ammessi). Leggi attentamente il link che ti ho indicato e devi impostare un Indice Multicampo Univoco e si fa con la procedura a parte cliccando sul tasto Indici, ecc...
  • Re: Non replicare i dati

    Grazie Osvaldo funziona perfettamente.
    Sei un grande.
Devi accedere o registrarti per scrivere nel forum
4 risposte