Questione : Generazione dei IDs su ordinazione

Abbiamo IDs come segue: 20090001, 20090002 (basicamente l'esercizio fiscale più 4 cifre)

When che un il nuovo anno vengo intorno (2011), hanno bisogno dei IDs di cominciare automaticamente ancora sopra ad uno in modo da la prima identificazione dell'anno sarà 20100001, l'anno prossimo sarà 20110001 etc.

ora ho il codice come segue: il

Dim maxIncident come maxIncidentID di Variant
Dim come Variant

If Me.intIncidentID.Value = 0 Then

'ottiene il table
di avvenimenti # di avvenimento maxIncident =

di DMax (“[intIncidentID]„, “tblIncidents„) 'se l'anno nel numero massimo di caso non è l'anno in corso allora ripristinasse il numbers
se CInt (lasciato (maxIncident, 4)) il maxIncidentID = CInt di Then
di anno del <> (data) (lasciati (anno (data), 4)) + di 1

'dello stesso anno aumento altro così dal maxIncidentID = da DMax di 1
(„ [intIncidentID] “, “tblIncidents„, lasciati (maxIncident, 4)) + l'estremità If

di 1

'ha fissato i valori di difetto su form
Me.intIncidentID.Value = linea del maxIncidentID

End If

Problem di codice è GRASSETTO.  Di che cosa ho bisogno è affinchè l'identificazione abbia 3 zeri principali prima che il 1… ora il nuovo anno + il 1 così ora il relativo 2011 ma io lo abbia bisogno così allora che dice 20100001
class= del

Risposta : Generazione dei IDs su ordinazione

provare questo codici


Oscurare newVal come stringa, curVal come stringa, seguente come stringa, maxIncidentID
Se DMax (“[intIncidentID]„, “tblIncidents„) > 0 allora
    curVal = DMax (“[intIncidentID]„, “tblIncidents„)
 'provare se il giorno è lo stesso
    Se andato (curVal, 4) = Cstr (anno (data)) Allora
    seguente = disposizione (di destra (curVal, 4) + 1, “0000„)
    newVal = anno (data) & seguente
        Altrimenti
    newVal = anno (data) & “0001„
    Concluder se
    Altrimenti
    newVal = anno (data) & “0001„
Concluder se
    maxIncidentID=newVal
Altre soluzioni  
 
programming4us programming4us