Impostare automaticamente chiave primaria multicampo

di
Anonimizzato15850
il
28 risposte

Impostare automaticamente chiave primaria multicampo

Ciao a tutti,
premetto che è da poco che utilizzo Access e non sono molto pratica..per questo ho bisogno del vostro aiuto per risolvere un problemino: come posso fare ad impostare automaticamente una chiave primaria multicampo in una tabella importata da Excel?
In pratica ad inizio di ogni stagione importo il file degli articoli (subfornitore-cod.articolo-colore-descrizione- classe merceologica -fornitore diretto- UM- Ordinato - Evaso) con una macro cliccando un pulsante da un menu creato in Access. Questa tabella serve come punto di partenza in quanto ogni settimana mi arrivano compilate dai subfornitori altre tabelle in Excel con la situazione aggiornata dell'ordinato/spedito e che importo tramite una macro nel DB di Access. Tramite una query di aggiornamento e una di accodamento vado ad aggiornare il DB e visualizzo i Report che mi servono.
Il problema è quando effettuo il 1° import, in quanto per impostare la chiave primaria multicampo (subfornitore-cod.articolo-colore-fornitore diretto) che mi permette di far funzionare correttamente le successive query di aggiornamento e accodamento devo entrare per forza in visualizzazione struttura tabella e farlo manualmente. Esiste un alternativa per evitare questo?

Grazie!

28 Risposte

  • Re: Impostare automaticamente chiave primaria multicampo

    A cosa ti serve impostare una "chiave primaria multicampo"...cosa alquanto scomoda in Access?
  • Re: Impostare automaticamente chiave primaria multicampo

    Il fatto è che se non la imposto non mi funziano le successive query di accodamento e aggiornamento..in quanto uno stesso cod.articolo può avere più colori, più fornitori diretti..ecc...Se sai indicarmi un altro metodo meno scomodo sono ben felice di imparare!
  • Re: Impostare automaticamente chiave primaria multicampo

    Secondo me non puoi gestire una tabella NON NORMALIZZATA di Excel allo stesso modo in Access che pretende una distribuzione di valori in campi di più tabelle relazionate e NORMALIZZATE. Spero di non aver travisato il problema.
  • Re: Impostare automaticamente chiave primaria multicampo

    Quindi cosa potrei fare? Purtoppo i dati che ho a disposizione sono quelli e io ogni settimana devo avere i report aggiornati..Impostando la chiave primaria multicampo funziona tutto correttamente..però come ho premesso è da poco che utilizzo Access e ho conoscenze molto basilari...Avresti qualche altra idea su come impostare il DB?
  • Re: Impostare automaticamente chiave primaria multicampo

    ElisabettaPisano ha scritto:


    è da poco che utilizzo Access e ho conoscenze molto basilari...Avresti qualche altra idea su come impostare il DB?
    Per essere più sicuro io al 100%, gradirei che tu mostrassi una immagine della tua finestra Relazioni in Access.
  • Re: Impostare automaticamente chiave primaria multicampo

    ElisabettaPisano ha scritto:


    Il fatto è che se non la imposto non mi funziano le successive query di accodamento e aggiornamento..in quanto uno stesso cod.articolo può avere più colori, più fornitori diretti..ecc...Se sai indicarmi un altro metodo meno scomodo sono ben felice di imparare!
    Basta semplicemente impostare la chiave primaria nella tabella PRIMA di fare l'importazione.
    Non capisco dove sia il problema, oppure non hai detto tutto quello che c'è da sapere.
  • Re: Impostare automaticamente chiave primaria multicampo

    ElisabettaPisano ha scritto:


    In pratica ad inizio di ogni stagione importo il file degli articoli (subfornitore-cod.articolo-colore-descrizione- classe merceologica -fornitore diretto- UM- Ordinato - Evaso) con una macro cliccando un pulsante da un menu creato in Access. Questa tabella serve come punto di partenza in quanto ogni settimana mi arrivano compilate dai subfornitori altre tabelle in Excel con la situazione aggiornata dell'ordinato/spedito e che importo tramite una macro nel DB di Access.
    Gibra, dopo aver letto questo, quanto possiamo stare tranquilli che si sta parlando di una tabella normalizzata? A me alcuni campi non sembrano omogenei e potrebbe trattarsi (in Access) di una query...mentre in Excel sei libero di scrivere quello che vuoi...
  • Re: Impostare automaticamente chiave primaria multicampo

    OsvaldoLaviosa ha scritto:


    Gibra, dopo aver letto questo, quanto possiamo stare tranquilli che si sta parlando di una tabella normalizzata?
    E cosa cambia? Qual'è il problema?
    Se ElisabettaPisano afferma che una volta creata la chiave primaria il tutto funziona, non vedo perché compicargli la vita.

    Tra l'altro, trovo strano che proprio tu parli di normalizzazione quando non più tardi di ieri in questa discussione:
    https://www.iprogrammatori.it/forum-programmazione/access/riempimento-automatico-t23000.html
    affermi (cito testualmente):
    La normalizzazione è un qualcosa che non vale la pena spiegare teoricamente. Prova a digitare su Google e leggi cosa ti dice Wikipedia. Lo troverai alquanto incomprensibile. Il miglior modo per affrontare la normalizzazione è quello di sbatterci la testa di fronte ai dati che vedi davanti al tuo computer, come li hai organizzati ecc... Esistono dalle 3 (quelle più usate) a 5 (più evolute e raramente utilizzate) forme di normalizzazione...non me le chiedere (non ci ho capito niente anche io) e non starti nemmeno a farne una malattia.
    Affermazione che comunque non mi trova d'accordo.
    Ma ognuno è libero di pensarla come vuole.

  • Re: Impostare automaticamente chiave primaria multicampo

    gibra ha scritto:


    E cosa cambia? Qual'è il problema?
    Se ElisabettaPisano afferma che una volta creata la chiave primaria il tutto funziona, non vedo perché compicargli la vita.
    Avrei potuto risponderle tranquillamente che bastava automatizzare con una macro o codice VBA esattamente quella impostazione che a lei APPARE FUNZIONANTE.
    Da parte mia, ho il sospetto che stia commettendo un classico grossolano errore di esportare e basta...ma senza rendersi conto che in Access è doveroso normalizzare.

    Su ciò che io penso della normalizzazione, temo tu abbia frainteso il mio pensiero. Io conosco la normalizzazione e la applico in maniera talmente istintiva e pratica che non sono in grado di spiegarla in maniera teorica. Il fatto di non farsene una malattia era (mi scuso se non si era capito) riferito al fatto di non tentare di capirci tutti i dettagli: SEMPRE QUELLI TEORICI.
    Sulla base di ciò, se rileggi il thread della vela ti accorgerai che sono evidenti tabelle non normalizzate. Su questo database, fin tanto che Elisabetta non ci dia dettagli più corposi e chiari, ho il sospetto che non sia normalizzato. Per questo motivo le ho chiesto di mostrare la finestra Relazioni. Credo che stiamo tutti in standby.
  • Re: Impostare automaticamente chiave primaria multicampo

    OsvaldoLaviosa ha scritto:


    .....
    Su ciò che io penso della normalizzazione, temo tu abbia frainteso il mio pensiero. Io conosco la normalizzazione e la applico in maniera talmente istintiva e pratica che non sono in grado di spiegarla in maniera teorica....
    Spero tu comprenda Osvaldo, senza sottovalutare la tua conoscenza, che la NORMALZIZZAZIONE è un tema estremamente complesso in realtà, ci sono Libri che la affrontano di oltre 1000 pagine sulla Teoria...
    Io sono sempre scettico su chi dice di conoscere bene l'argomento ma non la teoria... perchè questo non può essere, è piu possibile che ne conosca superficialmente qualche elemento di buonsenso che a livello Logico fa tornare i conti...

    Per non sconvolgerti, vorrei solo dirti che esiste una teoria di DENORMALIZZAZIONE dei Database... che guarda caso è usata con motivazioni tecniche differenti a livelli molto importanti... e non ha nulla da invidiare alla NORMALIZZAZIONE, sono 2 strade differenti ognuna con PRO e CONTRO... e conoscendole entrambe si possono gestire.

    Questo solo per darti uno spunto di ulteriore lettura.
  • Re: Impostare automaticamente chiave primaria multicampo

    @Alex ha scritto:


    piu possibile che ne conosca superficialmente qualche elemento di buonsenso che a livello Logico fa tornare i conti...
    Sono d'accordo da questo punto di vista. Credo di appartenere a questa "eventuale categoria" di programmatori, o, se più vi piace, di "semplici approcciatori ai problemi di organizzazione dati".
    Però se parliamo fra di noi (pubblicamente) di altre tematiche, rischiamo di andare fuori tema. Spero che Elisabetta non ne esca più confusa di prima.
  • Re: Impostare automaticamente chiave primaria multicampo

    ElisabettaPisano ha scritto:


    ...
    In pratica ad inizio di ogni stagione importo il file degli articoli (subfornitore-cod.articolo-colore-descrizione- classe merceologica -fornitore diretto- UM- Ordinato - Evaso) con una macro cliccando un pulsante da un menu creato in Access.
    ...
    Il problema è quando effettuo il 1° import, in quanto per impostare la chiave primaria multicampo (subfornitore-cod.articolo-colore-fornitore diretto) che mi permette di far funzionare correttamente le successive query di aggiornamento e accodamento devo entrare per forza in visualizzazione struttura tabella e farlo manualmente. Esiste un alternativa per evitare questo?
    Informazioni preliminari, visto che parli di macro:
    1) che versione di Access usi? (così mi faccio l'idea di dove-come capire come è strutturata quella macro, anche visivamente, visto che ad ogni versione cambia qualcosa con le macro)
    2) riesci a descrivere le azioni che compie quella macro? (se l'hai creata tu o se riesci a vederne il funzionamento) in particolare se devi selezionare ogni volta il file da cui importare i dati o se è sufficiente premere il pulsante e "fa tutto da solo"
    3) a titolo di "conferma", quando effettui l'importazione il contenuto precedente della tabella sparisce, vero?

    Credo che la macro altro non sia che un'importazione dati con creazione della tabella.

    Si può fare sicuramente, in vari modi, in particolare mettendo da parte la macro e scrivendo qualcosa in vba.

    Però prima di formulare "proposte concrete", se rispondi alle domande ho (abbiamo) un quadro più completo.
  • Re: Impostare automaticamente chiave primaria multicampo

    Philcattivocarattere ha scritto:


    Informazioni preliminari, visto che parli di macro:
    1) che versione di Access usi? (così mi faccio l'idea di dove-come capire come è strutturata quella macro, anche visivamente, visto che ad ogni versione cambia qualcosa con le macro)
    2) riesci a descrivere le azioni che compie quella macro? (se l'hai creata tu o se riesci a vederne il funzionamento) in particolare se devi selezionare ogni volta il file da cui importare i dati o se è sufficiente premere il pulsante e "fa tutto da solo"
    3) a titolo di "conferma", quando effettui l'importazione il contenuto precedente della tabella sparisce, vero?

    Credo che la macro altro non sia che un'importazione dati con creazione della tabella.

    Si può fare sicuramente, in vari modi, in particolare mettendo da parte la macro e scrivendo qualcosa in vba.

    Però prima di formulare "proposte concrete", se rispondi alle domande ho (abbiamo) un quadro più completo.
    Ciao! Allora:
    1) Uso Access 2007

    2) Io ho 2 pulsanti: il primo per importare la prima tabella ad inizio di ogni stagione con l'elenco di tutti i codici articolo presenti (quindi la macro collegata al pulsante importa da excel questa tabella che viene da un programma aziendale, ed è qui che devo impostare manualmente la chiave primaria), il secondo per importare ogni settimana la tabella con la situazione aggiornata (la macro importa questa tabella ed esegue in successione una query di accodamento e una di aggiornamento, in quanto ci possono essere codici non presenti nella tabella iniziale e poi devono essere aggiornati i campi di ordinato e spedito).

    3) Sì, quando eseguo l'importazione con il 1° pulsante sparisce e si ricrea una nuova tabella (anche perchè di stagione in stagione gli articoli cambiano).

    Spero di essere stata il più chiara possibile...Grazie mille!
  • Re: Impostare automaticamente chiave primaria multicampo

    OsvaldoLaviosa ha scritto:


    Però se parliamo fra di noi (pubblicamente) di altre tematiche, rischiamo di andare fuori tema. Spero che Elisabetta non ne esca più confusa di prima.
    Ciao e grazie per le vostre risposte..in effetti un po' confusa sono..essendo una principiante di Access mi sono un po' persa...
    Nella risposta precedente spiego forse un po' meglio cosa fanno le macro..in pratica ho una tabella totale con 2 campi inizialmente vuoti, ordinato e spedito, che vengono aggiornati settimanalmente con l'invio delle tabelle da parte dei subfornitori, cosa che mi permette con dei report di avere la situazione aggiornata ogni settimana.
    Forse oltre al problema di impostare manualmente la chiave primaria multicampo ci sono anche dei problemi strutturali da quanto ho capito dalle vostre risposte precedenti...ma questo è quanto di meglio sono riuscita a fare con le mie conoscenze basilari..se avete dei consigli sono ben felice di migliorare...

    gibra ha scritto:


    Basta semplicemente impostare la chiave primaria nella tabella PRIMA di fare l'importazione.
    Non capisco dove sia il problema, oppure non hai detto tutto quello che c'è da sapere.
    Come faccio a farlo? Da Excel?
Devi accedere o registrarti per scrivere nel forum
28 risposte