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
Partager