Condividi tramite

formare un campo per numerazione progressiva

Anonimo
2015-02-02T04:58:25+00:00

Amici e colleghi, vorrei formare un campo per numerazione progressiva "Fatture" il campo è di tipo testo del tipo "FV15/0001"- dove "15"  e anno in corso, "0001"- numero "Fattura". Nel campo NumeroFattura - valore predefinito - ho messo:

="FV" & Format(Date();"aa") & "/" & Format(IIf(IsNull(DMax("[NumeroFattura]";"[DatiLavoro]";"[NumeroFattura] like '????/" & Format(Date();"aa") & "'"));1;Mid(DMax("[NumeroFattura]";"[DatiLavoro]";"[NumeroFattura] like '????/" & Format(Date();"aa") & "'");1;4)+1);"0000") & ""

mi aiutate, dove e mio sbaglio? ,per che NON FUNZIONA, parte SI con numero "FV15/0001" ma non va avanti, torna sempre a questo numero. Grazie anticipatamente.

Microsoft 365 e Office | Accesso | 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

  1. Anonimo
    2015-02-02T07:52:37+00:00

    ciao Vladi :

    su corrente della tua form, prova nel seguente modo :

    ipotizzo : dipgr campo testo nella tabella2 che contiente il numero della fattura.

    Ovviamente modifica con i nomi corretti del tuo scenario.

    If Me.NewRecord Then

        Me.idpgr = "FV" & Right(CStr(year(Date)), 2) & Format(Val(Nz(DMax("right(idpgr,4)", "tabella2"), "0") + 1), "0000")

    End If

    buona giornata.

    Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento

20 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-02-03T21:40:01+00:00

    ciao Vladi,

    riprendo una risposta di Giorgio,

    per far ripartire la numerazione da 1 ad ogni anno  necessario avere un campo Anno e un campo Data.Il campo Anno potrebbe sembrare ridondante ma serve per poter creare un indice univoco composto dai campi Anno e NumeroProtocollo garantendo appunto l'univocità del protocollo nell'ambito dell'anno, poi servirebbe anche un vincolo che impedisca di modificare l'anno della data presente nei record esistenti.

    supponendo di creare una tabella con questi campi :

    id, contatore,

    idprgr, testo

    dataFattura, data/ora

    anno, testo:

    Private Sub Form_Current()

    If Me.NewRecord Then

        Me.dataFattura = Date

        Me.AnnoData = year(Me.dataFattura)

        Me.idpgr = "FV" & Right(CStr(year(Date)), 2) & Format(Val(Nz(DMax("right(idpgr,4)", "tabella2", "annoData='" & Me.AnnoData & "'"), "0") + 1), "0000")

    End If

    End Sub

    per semplicità ho testato il tutto su evento current, Giorgio suggeriva beforeupdate della form

    Direi visto la fonte di dare ascolto...!

    Pensandoci su è l'evento più proprio...!

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-02-03T20:50:53+00:00

    Ciao Vladi,

    devi condizionare la funzione DMax con l'anno (qualcosa di simile, non l'ho testata):

    DMax("right(idpgr,4)", "tabella2", "Mid(idpgr,3,2) = '" & Format(Date, "aa") & "'") + 1

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-02-03T15:24:17+00:00

    Ciao Sandro. numerazione progressiva delle fatture tutto Ok, però non azzera il conteggio con inizio del nuovo anno, ai qualche idea come fare azzeramento?

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-02-02T11:33:07+00:00

    Grazie mille  Sandro, funziona alla grande. cordialmente Vladi

    La risposta è stata utile?

    0 commenti Nessun commento