Bonjour,
mon probleme est le suivant : j'ai tapé le code suivant qui va dans ma base dans le dernier enregistrement le trouve (ici des matricules ex REC1, REC2, . . .RECn), si le recorset n'est pas vide, renvoie sa longueur et en fonction de la longueur donné lui attribue (incremente) un nouveau numéro et l'affiche dans le textbox à l'ouverture de la feuille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
Form Activate()
'Instanciation de variable
Set rst = New ADODB.Recordset
Set cnx = New ADODB.Connection
'Procédure de connection
Call Connexion(cnx)
rst.Open "SELECT * FROM recu", cnx, adOpenKeyset, adLockOptimistic, adCmdText
If rst.RecordCount <> 0 Then
        rst.MoveLast
        Num = Len(rst!mat_rec)
        Select Case Num
        Case 4
        i = Right(rst!mat_rec, 1)
        i = i + 1
        txtrec(0).Text = "REC" & i
        i = rst!num_rec + 1
        txtrec(1).Text = i
        Case 5
        i = Right(rst!mat_rec, 2)
        i = i + 1
        txtrec(0).Text = "REC" & i
        i = rst!num_rec + 1
        txtrec(1).Text = i
        .
	.
	.
	. 
        Case 14
        i = Right(rst!mat_rec, 11)
        i = i + 1
        txtrec(0).Text = "REC" & i
        i = rst!num_rec + 1
        txtrec(1).Text = i
        End Select
.
.
Le truc c'est que ça marche jusqu'au N°9 et s'arrete au N°10. J'ai regardé dans la base et je me suis rendu compte que le matricule REC10 se trouve juste apres REC1 (en 2eme position). J'utilise access 2003 et j'aimerais savoir comment faire pour que REC10 revienne en dernier position pour que mon code s'execute correctement ou sinon comment faire pour continuer d'incrementer mes matricules et resoudre ce probleme.
Merci d'avance