generare codice a quattro cifre

Anonimo
2018-09-15T16:18:22+00:00

ciao a tutti, 

grazie al codice di Sandro Peruz diverso tempo fa sono riuscito a creare un file per catalogare i documenti nei raccoglitori, generando un codice a due cifre.

Adesso torno ad invocare un aiuto prezioso in quanto dovrei apportare delle modifiche:

cioè generare un codice a 4 cifre al posto di due.

in pratica il problema che non riesco a risolvere è il seguente:

premendo sul pulsante Inserisci si dovrebbe verificare:

  • inserimento all'interno della tbl_Documenti_Archiviati dei valori
  • generazione del codice a 4 cifre e cioè:

N°raccoglitore

N°Anno

N°tipo Intervento

N° Interno scheda

Qualcuno potrebbe essere gentile ad aiutarmi a riscrivere questa parte di codice?

Grazi infinite a tutti

allego il file

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2018-09-18T23:24:13+00:00

Grazie Vladimiro,

perfettamente funzionante finora, continuo a testare...

sto provando a cercare di inserire in automatico il nome del nuovo file caricato se si seleziona SI a seguito di carica file.

Ho inserito il codice Me.txtNuovoNomeFile = Me.txtCategoria & "-" & Me.txtSottocategoria & "-" & Me.txtArgomento ed a seguito della scelta SI di modificare il nome del file caricato, viene inserito nel controllo txtNuovoNomeFile, ma senza estensione

Successivamente quando clicco su COPIA mi riscrive il nome del vecchio file.

Se invece mi dopo il messaggio: vuoi modificare il nome del file, e scelgo SI, trovo il nuovo nome del file senza estensione e se clicco nella casella e si attiva, funziona, ma un po in maniera scomoda

Cosa si dovrebbe modificare?

Grazie ancora a tutti per la vostra professionalità

Ciao peppino38,

al seguente link puoi scaricare il tuo db modificato.

Vladimiro

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

37 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2018-10-09T06:40:14+00:00

    Ciao peppino,

    allora, partendo dal secondo record il campo che si ripete rispetto al record precedente è il mese di gennaio ed infatti il campo N_Interno_Sheda aumenta di 1 rispetto al valore più alto che trova in tabella passando al valore 2

    terzo record, tutti i valori dei campi sono diversi da quelli del secondo record, per cui il campo N_Interno_Scheda rimane con il valore 1

    quarto record, il campo che si ripete rispetto al record precedente, è l'anno 2020, per cui il campo N_Interno_Scheda aumenta di 1 rispetto al valore più alto che trova in tabella passando al valore 3

    Detto ciò, tu mi evidenzi il campo Codice_Documento e non ho capito perché, in quanto io vedo allineati gli stessi numeri presenti nel record di appartenenza.

    Ci sentiamo eventualmente questa sera.

    Intanto fammi capire dove sbaglio nel ragionamento su esposto.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-10-09T05:36:16+00:00

    Ciao Vladimiro,

    Ho aggiunto e modificato il codice con gli Or 

    ho inserito  campo "Numero_Mese" nella tabella ed anche rs!Numero_Mese = Me.Numero_Mese al fine di essere inserito in tabella

    ho iniziato a testare e succede questo

    forse perchè come affermi tu occorra che dovrebbero essere essere citati tutti e cinque i campi in gioco.

    ho provato ad inserire cosi:

    Me!N_Interno_Scheda = CStr(Nz(DMax("val([N_Interno_Scheda])", "tbl_Documenti_Archiviati", "Argomento='" & Me!NSchedaArgomento & "' Or Categoria_Scheda='" & "' Or Numero_Mese='" & Me!Numero_Mese & "' Or Raccoglitore='" & Me!Numero_Raccoglitore & "'"), 0)

    ma sembra ancora non funzionare.

    il CodiceDocumento viene creato cronologicamente in questo modo

    Me.CodiceDocumento = Me.Numero_Raccoglitore & "-" & Me.Numero_Scheda_Categoria & "-" & Me.Numero_Mese & "-" & Me.NSchedaArgomento & "-" & Me.N_Interno_Scheda

    Grazie ancora per la tua disponibilità

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-10-08T22:56:07+00:00

    Ciao Vladimiro,

    Provo a riscrivere lo scenario

    Il codice del documento inizialmente a 4 cifre veniva generato con questa logica con il codice funzionante

    N°raccoglitore

    N°Anno

    N°tipo Intervento

    N° Interno scheda

    Ad esempio

    1-1-1-1

    1-1-1-2

    2-1-1-1

    2-1-1-2

    1-2-1-1

    1-2-1-2

    Inserendo il mese diventa

    N°raccoglitore

    N°Anno

    N°Mese

    N°tipo Intervento

    N° Interno scheda

    Dovrebbe uscire

    1-1-1-1-1

    1-1-1-1-2

    1-1-1-1-n

    2-1-1-1-1

    2-1-1-1-2

    2-1-1-1-n

    2-2-1-1-1

    2-2-1-1-2

    E così via

    Il numero finale, non c'entra nulla con il mese, deve incrementarsi prendendo in considerazione i valori precedenti.

    Grazie ancora

    Ciao peppino,

    a fatica cr edo di aver capito a cosa ti riferisci quando citi l'incremento del campo  "N_Interno_Scheda" della tabella "tbl_Documenti_Archiviati".

    Solo che, secondo me, dovrebbero essere citati tutti e cinque i campi in gioco.

    Per il momento ho aggiunto solo il parametro del mese come da te richiesto.

    In più ho modificato in tutto il codice la "And" con la "Or" per far sì che scatti l'incremento anche quando è solo un campo ad essere ripetuto in tabella.

    Quello che devi fare, è aggiungere il campo "Numero_Mese" nella tabella "tbl_Documenti_Archiviati"

    e sostituire il codice con quest'altro:

    Me!N_Interno_Scheda = CStr(Nz(DMax("val([N_Interno_Scheda])", "tbl_Documenti_Archiviati", "Argomento='" & _

    Me!NSchedaArgomento & "' Or Categoria_Scheda='" & "' Or Numero_Mese='" & _

    Me!Numero_Mese & "'"), 0) + 1)

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2018-10-08T19:41:52+00:00

    ciao Vladimiro,

    con il codice funzionante per generare il CodiceDocumento a 4 cifre:

    Me.N_Interno_Scheda = CStr(Nz(DMax("val([N_Interno_Scheda])", "tbl_Documenti_Archiviati", "Argomento='" & Me.NSchedaArgomento & "' and Categoria_Scheda='" & Me.Numero_Scheda_Categoria & "'"), 0) + 1)

    dopo aver aggiunto un ulteriore controllo (Mese) si verfica questo come in figura

    al posto di creare 2-1-1-3-1 il valore finale (N_Interno_Scheda)  continua a salire...

    Grazie ancora

    La risposta è stata utile?

    0 commenti Nessun commento