Auteur

MVP Office Access 2003, 2004, 2005 et 2006

Qui sont les MVP ?

 
 

Codes pour Access

+ Base de données
+ Administrateur
 -  Table
+ Requête
+ Formulaire
+ Dates & Heures
+ Nombre
+ Math
+ Fichier
+ Commandes externes
+ Automation
+ Equivalence
 
 

Tuto Access 2007

+ Base de données
 
 

Lettre d'information

Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
S'abonner
Se désabonner

captcha
Merci de recopier le code alphanumérique ci-dessus
117 Abonnés
 
 

Table - NumAuto Perso

Description 
Cette fonction permet de retourner une chaîne correspondant à un numéro automatique personnalisé constitué d'une chaîne de texte et d'une valeur numérique qui s'incrémente.
 
Synthaxe 

Expression = fNumAutoTxt(strTbl, strFldAuto, strTxtStart, intLenId)

Cette synthaxe doit être utilisé dans un formulaire de saisie sur le ou les événements "Après mise à jour" des contrôles qui constituent l'argument "strTxtStart".

La synthaxe de la fonction fNumAutoTxt comprend les éléments suivants :

ElémentsDescription
strTblExpression de chaîne correspondant au nom de la table qui doit contenir le numéro automatique.
strFldAutoExpression de chaîne correspondant au nom du champ du numéro automatique
strTxtStartExpression de chaîne correspondant à la valeur du texte qui doit constitué le numéro automatique
intLenIdExpression numérique correspondant au nombre de chiffres qui doivent constitués la valeur numérique du numéro automatique.

Exemple 

Une table "MaTable" avec les champs fldAuto1, fldAuto2, fldAuto3,  fldNom et fldPrenom.

Imaginons, 3 façons d'utiliser la fonction fNumAutoTxt() :

  • fldAuto1 : Sur les événements "après mise à jour" des contrôles "fldNom" et "fldPrenom", on mets :
    Me.fldAuto1 = fNumAutoTxt("MaTable", "fldAuto1", Me.fldNom & Me.fldPrenom, 5)

  • fldAuto2 : Sur l'événement "après mise à jour" du contrôle "fldNom", on mets :
    Me.fldAuto2 = fNumAutoTxt("MaTable", "fldAuto2", Me.fldNom, 5)

  • fldAuto3 : Sur l'événement "après mise à jour" du contrôle "fldPrenom", on mets :
    Me.fldAuto3 = fNumAutoTxt("MaTable", "fldAuto3", Me.fldPrenom, 5)


Voici le résultat qui aurait été alors obtenu avec ces 3 méthodes :

fldAutoNomPrenom

fldAutoNomfldAutoPrenom

fldNom

fldPrenom

DupondGerard00001Dupond00001Gerard00001DupondGerard
DurandJean00001Durand00001Jean00001DurandJean
DupondGerard00002Dupond00002Gerard00002DupondGerard
MartinMichel00001Martin00001Michel00001MartinMichel
DupondMichel00001Dupond00003Michel00002DupondMichel
DupontArthur00001Dupont00001Arthur00001DupontArthur


Code de la fonction 


Function fNumAutoTxt(strTbl$­­­­­­­­­­­­­­­, strFldAuto$­­­­­­­­­­­­­­­, strTxtStart$­­­­­­­­­­­­­­­, intLenId%) As String
'** La référence "Microsoft DAO x.x Object Library est nécessaire
'** sur l'événement "Après mise à jour" qui consitue "strTxtStart"

    Dim rst             As DAO.Recordset
    Dim strRst          As String
    Dim lngId           As Long

    strRst = "Select [" & strFldAuto & "] From [" & strTbl & "] ORDER BY [" & strFldAuto & "];"
    Set rst = CurrentDb.OpenRecordset(strRst, dbOpenDynaset)

    With rst
        If Not .BOF Then
            .FindLast "[" & strFldAuto & "] like """ & strTxtStart & "*"" " _
                & " AND Len([" & strFldAuto & "]) = " & Len(strTxtStart) + intLenId
            If .NoMatch = True Then
                lngId = 1
            Else
                lngId = CLng(Mid(.Fields(strFldAuto), Len(strTxtStart) + 1)) + 1
            End If
        Else
            lngId = 1
        End If
    End With

    rst.Close: Set rst = Nothing

    fNumAutoTxt = strTxtStart & Format(lngId, String(intLenId, "0"))

End Function

 


Date de création : 11/01/2007 @ 12:17
Dernière modification : 09/03/2007 @ 09:50
Catégorie : Table
Page lue 2444 fois


Prévisualiser la page Prévisualiser la page     Imprimer la page Imprimer la page

 
 

Réactions à cet article


Personne n'a encore laissé de commentaire.
Soyez donc le premier !


 
 

Recherche




Google

 
 

Préférences

Votre nom (ou pseudo) :

Votre mot de passe :

     


Membres 79 Membres

membres les 10 derniers :
CJ6774   monaker   Jerry   jujubegood   Rachid   fifimeyrou   MoxQwoidT   fof_alaz   bellemeche   Bruno   
Membre en ligne : Membre en ligne :
( personne )
Anonymes en ligne : Anonymes en ligne : 4

Total visites : Total visites : 174473  
hit Affluence record: 102
le 17/06/2007 @ 07:36

Ecrire à Jessy SEMPERE Ajouter aux favoris Recommander ce site à un ami Version mobile
 
 


Design Jessy © 2007 - Compatible IE6, IE7 et Mozilla 2.0.0.1

  Site créé avec GuppY v4.5.18 © 2004-2005 - Licence Libre CeCILL

Document généré en 0.21 seconde