Personalizzazione ed automazione campo numerico progressivo

di il
6 risposte

Personalizzazione ed automazione campo numerico progressivo

Salve a tutti!
Sono al battesimo del Forum e spero di darvi tutti gli elementi per provare a risolvere un problema che da giorni mi da il tormento.

Ho costruito un DB con le segueti caratteristiche ma non riesco a fagli fare l'operazione che ora provo a spiegare.

Partendo da una tabella così strutturata:

FORNITORI
ID |NOME
XXX|Pippo
YYY|Pluto
ZZZ|Gastone

dovrei procedere a popolare un'altra tabella (CONTENITORI) dove ad ogni fornitore corrisponda un contenitore a numerazione automatica il cui numero sia formato per una parte dal proprio ID e per il resto da un numero che parta,per esempio, da 100.

Il tutto dovrebbe restituire per ogni forrnitore dei numeri di contenitori del tipo sotto riportato:


CONTENITORI
Fornitore|Contenitore
Pippo|XXX100;
Pippo |XXX101;
Pippo |XXX102

e così via per tutti gli altri fornitori.

Grazie a quanti vorranno darmi delle preziose indicazioni.

Spadino

6 Risposte

  • Re: Personalizzazione ed automazione campo numerico progressivo

    Buonasera.
    Alle limitate informazioni che ho esposto, aggiungo che il campo ID della tabella FORNITORI è di tipo numerico e non è un Contatore come il nome stesso potrebbe lasciare intendere.

    Aggiungo, inoltre, che la numerazione che deve assumere il contenitore per ogni fiornitore deve essere a progressione automatica.

    Grazie
  • Re: Personalizzazione ed automazione campo numerico progressivo

    Concettualmente quello che hai ipotizzato è errato, nella Tabella CONTENITORI non devi avere il Fornitore, ma ID(relativo alla tabella Fornitori) come Chiave Esterna della Tabella.
    Manca tuttavia una ChiavePrimaria, che ti consiglio definire sempre come COUNTER per comodità.

    Fai attenzione a non chiamare ID tutte le PK delle tabelle altrimenti in Query JOIN non ci capirai più nulla...!

    Strutturata bene la cosa poi dovrai scrivere una formuletta che usando DMAX vada a comporre il codice aggregato usando come Criterio di estrazione ID(Fornitore) sulla parte Numerica progressiva del CODICE.
    
    NUOVO CODICE=ID & NZ(DMAX(Val(Right$(CODICE)),"NomeTabella","Id=" & TuoID)+1)
    se invece del ID per comporre il CODICE vuoi proprio il Nome Fornitore(cosa che io non farei mai in quanto sarebbe un peso inutile) devi estrarre con DLOOKUP il campo della Tabella FORNITORI passando come Criterio il campo ID.

    Ora leggi bene quello che ti ho spiegato, fai qualche prova e vedi dove arrivi, mostraci eventuali stralci di codice e gli errori che ne derivano nel caso ci siano...
  • Re: Personalizzazione ed automazione campo numerico progressivo

    Ciao Alex ho provato a seguire le tue indicazioni ma senza l'esito sperato.
    Una volta fatte le modifiche alle tabelle ed alle relative chiavi, ho creato la maschera GESTIONE_CONTENITORI ed ho inserito nel valore predefinito del campo "CONTENITORE" (leggasi NUOVO CODICE), la formuletta da te suggerrita ma ricevo il seguente errore: Numero errato di argomenti in una funzione nell'espressione immessa.

    Posto che sicuramente ho fatto degli errori nell'adattare la tua formula ai nomi dei campi delle mie tabelle, è corretto utilizzare la tua formula come ho fatto, oppure avrei dovuto utilizzarla in VBA con evento Befor_update?

    Ritornando all'errore, sicuramente la presenza di diversi ID nella formula mi deve aver tratto in inganno. Potresti essere più esplicito?

    Grazie infinite

    Spadino

    PS: porta pazienza ma sono un autodidatta di Excel e questo di certo non mi aiuta.
  • Re: Personalizzazione ed automazione campo numerico progressivo

    Ciao scusami posso chiederti approssimativamente quali saranno le query che vorrai fare al db?

    Comunque sono daccordo con la precedente risposta.

    Potresti avere la tabella : FORNITORE(id,nome) con id chiave primaria

    e la tabella CONTENITORE(idContenitore,idFornitore) con idContenitore chiave primaria e idFornitore chiave esterna che referenzia FORNITORE.

    In questo modo memorizzerai ogni contenitore a quale Fornitore appartiene.
    In seguito, se volessi avere un dato espositivo del tipo XXX100 come hai scritto tu, se è solo per uso espositivo lo potrai ottenere all'interno di una query (creandola in visualizzazione struttura) mettendo una formuletta xke no anche quella che ti è stata suggerita prima.
  • Re: Personalizzazione ed automazione campo numerico progressivo

    Buongiorno a tutti!!
    Mi scuso per l'assenza dal forum ma, purtroppo, con il nuovo computer non riesco più ad accedere neppure alla Home page del sito (lancio questo appello da un cell con tutte le difficoltà del caso). Penso che il problema che mi impedisce di consultare il sito ed il relativo forum sia dovuto al fatto che attualmente utilizzo la versione 9 di Explorer (prima utilizzavo la 8 e non avevo nessun tipo di problema).
    Qualcuno mi sa dare qualche dritta o girare il mio appello a chi possa risolverlo?

    Grazie infinite

    PS:sono pienamente cosciente che il problema che sto riscontrando non ha niente a che vedere con il titolo del mio post, ma non so proprio come fare a "comunicare" con il sito.
  • Re: Personalizzazione ed automazione campo numerico progressivo

    Buona giornata, Spadino;
    ... non riesco più ad accedere neppure alla Home page del sito ...
    forse sarà banale, hai provato a collegarti con un altro Browser tipo Mozilla o altro?

    Giuseppe
Devi accedere o registrarti per scrivere nel forum
6 risposte