Mettre à jour un enregistrement apres un test

Fermé
PATMAR83 Messages postés 6 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 29 juin 2013 - 18 juin 2013 à 18:22
blux Messages postés 26703 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 4 mars 2025 - 19 juin 2013 à 12:38
Bonjour,

Bonjour,
Grâce aux réponses trouvées dans le forum, j'ai pu avancé dans mon projet. Mais je me heurte à une nouvelle difficulté
J'ai un formulaire issu de deux tables, je teste un champ "code plan", s'il est null je voudrais qu'il me mette non ok dans le champ catégorie (mise à jour de ce champ qui au départ est vide), s'il n'est pas vide je veux qu'il mette ok
J'ai donc créé le code ci-dessous mais j'ai un problème avec la boucle car celui-ci me met bien 'ok' ou 'non ok' mais pour tous les enregistrements, il ne tient pas compte du test si myvariant est nul ou pas
Dés qu'il arrive sur un premier test, il déroule tout le fichier
la table à mettre à jour s'apPelle T011FECX

Private Sub code_Plan_GotFocus()
    Dim db As DAO.Database: Set db = CurrentDb
    Dim r As DAO.Recordset: Set r = db.OpenRecordset("T011FECX")
    Dim myvariant As Variant
    myvariant = [code plan]
    Do While Not r.EOF                      'test si on se trouve en fin de fichier
        If IsNull(myvariant) Then           'si myvariant est nul on affiche un message d'info
            MsgBox "code plan vide"
            r.Edit
            r![Category] = "non ok"         'on met  non ok dans le champ category
            r.Update
        Else                                'si myvariant n'est pas nul, on affiche un message d'info
            MsgBox "code plan non vide"
            r.Edit
            r![Category] = "ok"             'on met ok dans le champ category
            r.Update
       End If
        r.MoveNext
    Loop
End Sub



MERCI

A voir également:

4 réponses

blux Messages postés 26703 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 4 mars 2025 3 328
18 juin 2013 à 21:05
Salut,

myvariant ne varie à aucun moment, il n'est dans aucune boucle, conservant sa valeur de départ (code plan).
Pas étonnant donc que la boucle ait tout le temps le même comportement.
0
PATMAR83 Messages postés 6 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 29 juin 2013
19 juin 2013 à 07:34
bien noté la remarque, que faudrait-il que je fasse ?
merci
0
blux Messages postés 26703 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 4 mars 2025 3 328
Modifié par blux le 19/06/2013 à 08:39
Comme dirait Jacques II de Chabannes, faire évoluer sa valeur, vraisemblablement en la mettant dans la boucle. Reste quand même une inconnue : où est stockée la valeur de [code plan] ?
0
PATMAR83 Messages postés 6 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 29 juin 2013
19 juin 2013 à 11:52
La valeur [code plan] se trouve dans une table, j'ai bien compris ou se trouvait le problème , mais je pense que le r.movenext n'agit pas comme je le pensais à savoir qu'il ne passe pas réellement à l'enregistrement suivant
0
blux Messages postés 26703 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 4 mars 2025 3 328
19 juin 2013 à 12:38
Si ta procédure se termine, c'est qu'on est allé au bout du recordset...
Si tu penses que ce n'est pas le cas, tu peux mettre des msgbox "toto" afin de savoir combien de fois on passe dans la boucle...
Quant à [code plan], je ne sais pas ce que tu dois en faire, seul toi sait ce qu'il contient et quelle importance il revêt...
0