IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

gerer le null dans une boucle while/wend


Sujet :

VBA Access

  1. #1
    Membre averti Avatar de @rkane
    Homme Profil pro
    developpeur amateur dans mon cadre professionnel
    Inscrit en
    Juin 2006
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : developpeur amateur dans mon cadre professionnel
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 521
    Points : 403
    Points
    403
    Par défaut gerer le null dans une boucle while/wend
    bonsoir à tous
    j'ai une boucle while/wend placée dans un module dans laquelle j'aurais besoin de coder la gestion du null, mais je ne sais comment l'ecrire.
    En attendant pour pallier cela j'ai utilisé dans le code du formulaire un comptage d'enregistrements assorti d'une requete en cas de DCount < 1.
    Je mets en PJ un fichier de test, car pas aussi simple que ça d'expliquer le fonctionnement.
    Ill s'agit d'enregistrer les arrets de travail du jour d'une part dans une table dediee d'autre part dans une autre table, concaténés par journee.
    Je pense qu'on doit pouvoir simplifier le systeme mais ça je voudrais auparavant solutionner le probleme ci dessus.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tu parles de valeurs Nulles ou égales à 0 ?

    Pour les valeurs nulles, regardes du coté de la fonction Nz.

    Philippe

  3. #3
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Sinon, il y a un truc amusant à faire ...
    C'est une boucle infinie, à l'intérieure de laquelle tu fais tous les tests nécessaires à la sortie.

    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
     
    Do
        If premièreCondition then
            'actions à faire dans ce cas
            'et sortie de la boucle
            Exit Do
        ElseIf deuxièmeCondition Then
            'actions à faire dans ce cas
            'et sortie de la boucle
            Exit Do
        '[... etc.]
        Else
            'actions à faire si aucune raison de sortir de la boucle
        End If
    Loop

  4. #4
    Membre averti Avatar de @rkane
    Homme Profil pro
    developpeur amateur dans mon cadre professionnel
    Inscrit en
    Juin 2006
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : developpeur amateur dans mon cadre professionnel
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 521
    Points : 403
    Points
    403
    Par défaut
    voilà j'ai trouvé la combine, je gere le null dans le module au lieu de le gerer dans le code du formulaire ce qui donne :
    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
    Option Compare Database
    Public Function RegroupMalades(Vacation As Date) As String
    Dim res As DAO.Recordset
    Dim Sql As String
    Sql = "SELECT Malade FROM Malades where vacation = #" & Format(Vacation, "mm/dd/yyyy") & "#;"
    Set res = CurrentDb.OpenRecordset(Sql)
    If DCount("nom", "Malades", "Vacation = forms!FormSaisie!Vacation") < 1 Then
    RegroupMalades = ""
    Else
    While Not res.EOF
    RegroupMalades = RegroupMalades & res.Fields(0).Value & " "
    res.MoveNext
    Wend
    RegroupMalades = Left(RegroupMalades, Len(RegroupMalades) - 1)
    End If
    'libere la mémoire
    Set res = Nothing
    End Function
    et pour le formulaire :
    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
    Private Sub AjoutMalade_Click()
    Dim Sql As String
    If Not IsNull(AdArret) Then
    Sql = "INSERT INTO Malades ( Vacation, Malade ) SELECT  forms!FormSaisie!Vacation as expr1, forms!FormSaisie!AdArret as expr2;"
    DoCmd.RunSQL Sql
    End If
    Sql = "UPDATE Rotation SET Rotation.Arrets = RegroupMalades([Vacation]);"
    DoCmd.RunSQL Sql
    Arrets.Requery
    AdArret = ""
    End Sub
     
    Private Sub SupprimeMalade_Click()
    Dim Sql As String
    If Not IsNull(AdArret) Then
    Sql = "Delete * from Malades where Malade = forms!FormSaisie!AdArret and Vacation = forms!FormSaisie!Vacation;"
    DoCmd.RunSQL Sql
    End If
    Sql = "UPDATE Rotation SET Rotation.Arrets = RegroupMalades([Vacation]) ;"
    DoCmd.RunSQL Sql
    Arrets.Requery
    AdArret = ""
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tkinter] Méthode get() dans une boucle while
    Par Thundie dans le forum Tkinter
    Réponses: 2
    Dernier message: 04/02/2006, 01h06
  2. Problème de SCANF dans une boucle WHILE
    Par FidoDido® dans le forum C
    Réponses: 4
    Dernier message: 30/12/2005, 18h42
  3. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 19h07
  4. Réponses: 6
    Dernier message: 17/06/2005, 17h51
  5. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 23h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo