Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/03/2011, 22h40   #1
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
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 : 499
Points : 360
Points : 360
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.
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 06h13   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 613
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 613
Points : 30 968
Points : 30 968
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Tu parles de valeurs Nulles ou égales à 0 ?

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

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 08h13   #3
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
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 :
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
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 08h50   #4
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
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 : 499
Points : 360
Points : 360
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 :
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 :
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
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h05.


 
 
 
 
Partenaires

Hébergement Web