OVH Cloud OVH Cloud

Gestion de la numerotation

2 réponses
Avatar
AKA
Je voudrais pouvoir gérer de façon automatique la numérotation sans utiliser
le type de donnée NuméroAuto. Je précise que je travaille sur Access 2000.

Merci d'avance pour votre aide qui est toujours assez util.

AKA

2 réponses

Avatar
Eric
Bonjour,

Regardes par là :
http://officesystem.access.free.fr/ex_numauto_personnel.htm
et sur les sites à visiter conseillés ici :http://www.mpfa.info/
Tu devrais trouver ce que tu cherches.

Je voudrais pouvoir gérer de façon automatique la numérotation sans utiliser
le type de donnée NuméroAuto. Je précise que je travaille sur Access 2000.

Merci d'avance pour votre aide qui est toujours assez util.

AKA


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Jessy Sempere [MVP]
Bonjour

Voici de fonction que j'utilisais à l'époque pour générer mes NumAuto
mais égalements les mettres à jour si on supprime une ligne afin d'éviter
des trous dans la numérotation...

(attention le fait de re-numéroté peut rendre l'application difficile à
suivre...)

*******************************************************
Public Function NumAuto(strTbl, strForm, strFldAuto)
'Génère une nouveau NumAuto
Dim rst As Recordset
Dim lngRecord As Long
lngRecord = 0
If Forms(strForm).Controls(strFldAuto) = 0 Then
Set rst = CurrentDb.OpenRecordset(strTbl, dbOpenDynaset)
With rst
If Not .BOF Then .MoveLast: lngRecord = .Fields(strFldAuto)
End With
Forms(strForm).Controls(strFldAuto) = lngRecord + 1
End If

End Function

Public Function UpDateNumAuto(strTbl, strFldAuto)

'Mise à jour des NumAuto
Dim rst As DAO.Recordset
Dim lngNbreRecord As Long
Dim lngNumAuto As Long
Dim lngTmpNumAuto As Long

Set rst = CurrentDb.OpenRecordset(strTbl, dbOpenDynaset)

With rst
If Not .BOF Then
.MoveLast
lngNumAuto = .Fields(strFldAuto)
lngNbreRecord = .RecordCount
If lngNumAuto = lngNbreRecord Then Exit Function
.MoveFirst
lngTmpNumAuto = 0
Do Until .EOF
lngNumAuto = .Fields(strFldAuto)
If lngNumAuto > lngTmpNumAuto + 1 Then
.Edit
.Fields(strFldAuto) = lngTmpNumAuto + 1
.Update
End If
lngTmpNumAuto = lngTmpNumAuto + 1
.MoveNext
Loop
End If
End With

End Function
*******************************************************

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Eric" a écrit dans le message de
news:Ofdcz8w%
Bonjour,

Regardes par là :
http://officesystem.access.free.fr/ex_numauto_personnel.htm
et sur les sites à visiter conseillés ici :http://www.mpfa.info/
Tu devrais trouver ce que tu cherches.

Je voudrais pouvoir gérer de façon automatique la numérotation sans
utiliser


le type de donnée NuméroAuto. Je précise que je travaille sur Access
2000.



Merci d'avance pour votre aide qui est toujours assez util.

AKA


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr