Generare codice in modo automatico ed impostarlo come PK

di il
2 risposte

Generare codice in modo automatico ed impostarlo come PK

Salve...perdonatemi la banalità della domanda ma ho un dubbio da risolvere, e data la mia scarsa esperienza con Access chiedo a voi....

Ho una tabella composta dai seguenti campi:

ID
CODICE
NUM_DIS
VERSIONE
REVISIONE
NUM_PROG

Il campo codice è la chiave primaria, e rappresenta una sintesi dei valori immessi negli altri campi secondo lo schema seguente:

CODICE=NUM_DIS - VERSIONE - REVISIONE - NUM_PROG

quindi se:

NUM_DIS = xxxx
VERSIONE = yy
REVISIONE = zz
NUM_PROG = kkkk

il campo chiave primaria CODICE sarà : xxxx-yy-zz-kkkk

E' possibile generare automticamente il codice nel campo CODICE una volta inseriti gli altri valori negli altri campi? Il campo CODICE deve per forza di cose essere una chiava primaria

Grazie

2 Risposte

  • Re: Generare codice in modo automatico ed impostarlo come PK

    Forse è un complesso problema di codice Visual Basic, ma in mancanza di tale conoscenza io farei così. Non mi risulta che tu possa farlo direttamente nella tabella indicata. Piuttosto potresti creare una query di selezione così:
    1) Crea una nuova query in Visualizzazione struttura
    2) Importa la tabella
    3) Nella griglia trascina i campi che ti servono per creare la combinazione codificata che hai detto tu, cioè NUM_DIS, VERSIONE, REVISIONE, NUM_PROG
    4) In una colonna vuota della griglia, in corrispondenza di Campo, scrivi così:

    CODICE: [nome tabella]!NUM_DIS & "-" & [nome tabella]!VERSIONE & "-" & [nome tabella]!REVISIONE & "-" & [nome tabella]!NUM_PROG

    per ottenere quello che ho scritto, clicca dentro una colonna vuota della griglia, in corrispondenza di Campo, poi fai clic sul tasto in alto Genera. Si aprirà una finestra Generatore di espressioni. Nel primo riquadro in basso, fai doppio-clic su Tabelle, poi clicca sulla tabella che ti interessa. Vedrai apparire nei riquadri centrale e destro rispettivamente la lista dei campi e <Valore>. Ogni volta che selezioni un campo e fai doppio clic su <Valore> vedrai apparire
    [nome tabella]![nome campo]
    la & serve come carattere di concatenazione
    "-" è il testo che deve aggiungere fra ogni valore di ogni campo (qualsiasi testo personalizzato va racchiuso sempre fra virgolette).
    CODICE scritto a sinistra dei due punti, significa la parola che vedrai scritta come intestazione di colonna.

    Ora tutto questo è stato creato in una query, ma tu desideri che sia memorizzato in una tabella.
    Io eliminerei il campo CODICE dalla tabella. Poi creerei una nuova tabella con il campo CODICE e tutti gli stessi altri campi. Poi creerei una query di accodamento (oppure la stessa che abbiamo creato possiamo tramutarla in query di accodamento) che accoda tutti i campi nella nuova tabella.
  • Re: Generare codice in modo automatico ed impostarlo come PK

    Salve.
    In realtà, si tratterebbe solo di scrivere una riga di codice, tipo quella suggerita da 'Osvaldo...', in un evento.
    La riga va messa in un 'evento' che cambia a seconda di come memorizzi i tuoi record.
    Usi una Maschera con la barra in fondo che ti fornisce Access per default (quella classica, Primo record, Avanti/Indietro di 1 record, Aggiungi Record) o hai aggiunto un Pulsante a cui hai collegato l'azione 'Salva Record' ?
    Saluti.
Devi accedere o registrarti per scrivere nel forum
2 risposte