MVP Office Access 2003, 2004, 2005 et 2006
Base de données Base de données Administrateur Administrateur Table Table Requête Requête Formulaire Formulaire Dates & Heures Dates & Heures Nombre Nombre Math Math Fichier Fichier Commandes externes Commandes externes Automation Automation Equivalence Equivalence
Base de données Base de données
|
| | 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. | | | | | | | |
| | 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éments | Description | strTbl | Expression de chaîne correspondant au nom de la table qui doit contenir le numéro automatique. | strFldAuto | Expression de chaîne correspondant au nom du champ du numéro automatique | strTxtStart | Expression de chaîne correspondant à la valeur du texte qui doit constitué le numéro automatique | intLenId | Expression numérique correspondant au nombre de chiffres qui doivent constitués la valeur numérique du numéro automatique. |
| | | | | | | |
| | 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 | fldAutoNom | fldAutoPrenom | fldNom | fldPrenom | DupondGerard00001 | Dupond00001 | Gerard00001 | Dupond | Gerard | DurandJean00001 | Durand00001 | Jean00001 | Durand | Jean | DupondGerard00002 | Dupond00002 | Gerard00002 | Dupond | Gerard | MartinMichel00001 | Martin00001 | Michel00001 | Martin | Michel | DupondMichel00001 | Dupond00003 | Michel00002 | Dupond | Michel | DupontArthur00001 | Dupont00001 | Arthur00001 | Dupont | Arthur |
| | | | | | | |
| | 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
Imprimer la page
Personne n'a encore laissé de commentaire. Soyez donc le premier ! |
|
79 Membres
les 10 derniers :
Membre en ligne :
( personne ) Anonymes en ligne : 4
Total visites : 174473
Affluence record: 102
le 17/06/2007 @ 07:36
|