Bonjour à tous,
voila j'ai un petit probléme de macro où je ne trouve pas la solution a mon probléme. Je fais quelques tests pour une futur macro pour vérifier si un enregistrement est deja présent dans la base de données Access. si je modifie les enregistrements, le movenext fonctionne correctement ( il y a une mgsbox qui demande une confirmation de update), par contre si je met "non" dans la msgbox, le movenext passe une ligne (de plus ) de l'enregistrement à chaque fois, en gros si je met non à "abc01", le movenext passe directement a "abc03" et ignore le "abc02" , c'est qui me pose probléme. Je ne suis pas très fort avec tout cela, si quelqu'un serait m'aider, ce serait super!!!! merci

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 
 
Sub doublons()
 
Dim ret As Integer
 
Dim MonFichierAccess As Database
 
Dim MaTableDansAccess As DAO.Recordset
 
 
Set MonFichierAccess = OpenDatabase("T:\essaie\Nouveau dossier (2)\dossier test macro\mdb\Serial number.mdb")
 
Set MaTableDansAccess = MonFichierAccess.openRecordset("N° séries", dbOpenTable)
 
'-----------------------------------------------------------------------------------------------------------------------------------------
 
With MaTableDansAccess
        If .RecordCount > 0 Then
            .MoveFirst ' positionne le pointeur en premiere position ( en principe!)
        While Not MaTableDansAccess.EOF 'on boucle jusqu'a la fin de la table
 
 
                ras = MaTableDansAccess.Fields("Numéro de série") 'on attrape les identifiants de access
                res = MaTableDansAccess.Fields("N° de plan WB")   ' on attrape les N°de pompe
 
 
 
             If res = "WB5000" Then 'si le N° de pompe est déja dans la DB, alors
 
             ret = MsgBox("Voulez-vous mettre à jour le N° de série: " & ras & "  ?", vbYesNo) 'on demande si on veut faire une mise à jour de la pompe
 
 
             If ret = vbNo Then 'Si c'est non alors on ignore la ligne et on passe à la pompe suivante
                .MoveNext          '??????
 
 
             Else 'sinon
 
             MaTableDansAccess.Edit ' on ouvre la methode d'edition
 
             MaTableDansAccess![N° de plan WB] = "WB1101" ' on remplace la donnée dans la table Access de la ligne
             MaTableDansAccess.Update ' on execute l'update, elle sera à insérer dans la base de donnée ' si oui, tout est ok pour cette partie 
 
 
             End If
 
 
 
 
                End If
 
                On Error Resume Next
                .MoveNext
            Wend
        Else
            MsgBox "Pas d'enregistrement trouvé"
        End If
    End With
 
 
End Sub