Mettre à jour un enregistrement apres un test

PATMAR83 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   -
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 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
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   Statut Membre Dernière intervention  
 
bien noté la remarque, que faudrait-il que je fasse ?
merci
0
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
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   Statut Membre Dernière intervention  
 
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 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
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