Condividi tramite

[Access] Numerazione progressiva annuale con pulsante comando

Anonimo
2010-03-26T17:33:08+00:00

Ciao a tutti, voglio porre alla vostra attenzione uno dei tanti miei quesiti

Private Sub Form_BeforeUpdate(Cancel As Integer)

If Me.NewRecord = True Then

Me.Nr = Format(Nz(Mid(DMax("[Nr]", "[tabella1]", "[Nr] like '????/" & Format(Date, "yyyy") & "'"), 1, 4), 0) + 1, "0000") & "/" & Format(Date, "yyyy")

End If

End Sub

con questa routine ho un contatore annuale che risponde solo in parte alle mie esigenze in quanto giustamente inserisce il numero progressivo dopo l'aggiornnamento, ma io avrei l'esigenza di creare un pulsante comando che al suo click (alla fine della giornata) inserisse questi numeri progressivi per tutte le operazioni fatte nella data corrente Che comprendono diversi record.

qualcuno può aiutarmi? Grazie

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
2010-03-27T18:57:58+00:00

Ciao Cinzia, grazie mille per i tuoi preziosi consigli

ho risolto con questo evento su click che posto al fine possa essere utile a qualcun altro:

Private Sub Comando13_Click()

Dim retValue As Integer

Dim strTtl As String

strTtl = "CHIUSURA REGISTRO GIORNALIERO"

' gli spazi tra le parole della seguente Msgbox sono stati fatti con codice ashi "alt+032" necessario per formattare bene la MSGBOX.

strMsg = "  ATTENZIONE, QUESTA E' UN OPERAZIONE IRREVERSIBILE, " & vbCrLf & vbCrLf & "              STAI PER CHIUDERE I REGISTRI CONTABILI" & vbCrLf & vbCrLf & "ASSEGNANDO DEFINITAVAMENTE IL NUMERO DI OPERAZIONE . " & vbCrLf & vbCrLf & "                    SEI CERTO/A DI VOLER PROCEDERE?"

retValue = MsgBox(strMsg, vbCritical + vbYesNo, strTtl)

Select Case retValue

Case vbYes

Dim ss As DAO.Recordset

Set ss = CurrentDb.OpenRecordset("select * FROM Tabella1 where IsNull(Nr)")

DoCmd.GoToRecord , , acFirst

Do Until ss.EOF

ss.Edit

ss!Nr = Format(Nz(Mid(DMax("[Nr]", "[tabella1]", "[Nr] like '????/" & Format(Date, "yyyy") & "'"), 1, 4), 0) + 1, "0000") & "/" & Format(Date, "yyyy")

ss.Update

ss.MoveNext

Loop

Me.Requery

ss.Close

Set ss = Nothing

MsgBox "Registrazione Effettuata correttamente..", , "Autenticazione Registri"

Cancel = True

Case vbNo

End Select

End Sub

La risposta è stata utile?

0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-03-27T19:10:31+00:00

    Ciao Luca,

    che brutta!! 

    Per ogni record vai a rieseguire la Format(Nz(Mid(DMax("[Nr]", "[tabella1]", .....

    Ti conviene sistemare il suggerimento di Cinzia

     :-)

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-03-27T12:28:55+00:00

    Ciao Luca,

    ho detto che era "PSEUDOCODICE" l'ho buttato giù a memoria senza ricordarmi la sintassi precisa di Openrecordset  i ... stavano ad indicare che c'erano altrri parametri,  da inserire....

    Comunque F1 è tuo amico!, cerca Openrecordset e ti trovi una bella descrizione del comando!   Se proprio non riesci a metterla a posto richiedi appena o un attimo di tempo controllo!


    Cinzia


    Sito RIO

    Il mio Blog

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-03-26T20:54:48+00:00

    Ciao Cinzia,

    Ho provato il tuo codice ma da errore di sistassi in questa parte:

    set rs = currentDb.OpenRecordset("Select * From tabella1 Where Nr IS Null", ...)

    puoi aiutarmi? Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2010-03-26T19:17:22+00:00

    Ciao Luca,

    devi fare una routine in VB che cicla sui record della tabella e aggiorna il Nr con il progressivo:

    Qualcosa del tipo in "pseudoCodice" da controllare:

    set rs = currentDb.OpenRecordset("Select * From tabella1 Where Nr IS Null", ...)

    Nr = Nz(Mid(DMax("[Nr]", "[tabella1]", "[Nr] like '????/" & Format(Date, "yyyy") & "'"), 1, 4), 0) While not rs.eof

    rs.edit NR=NR+1 rs.Fields("Nr") = Format(NR, "0000") & "/" & Format(Date, "yyyy") rs.update

    rs.moveNext

    wend

    rs.close

    ATTENZIONE: Questo forum sta per essere chiuso e spostato qui http://social.answers.microsoft.com/Forums/it-IT/officebizit/threads  le prossime domande falle direttamente nel nuovo Forum, Grazie!


    Cinzia


    Sito RIO

    Il mio Blog

    La risposta è stata utile?

    0 commenti Nessun commento