Nombre enregistrement requete

cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007 - 25 juin 2007 à 11:20
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007 - 25 juin 2007 à 14:40
Bonjour,
je voudrais savoir comment récupérer le nombre d'enregistrement retourné par ma requete dans mon code VBA
je vous donne ce que j'ai fait pour le moment pour que vous m'aidiez :D :






ma requete









SELECT *
FROM agence
WHERE date_ouverture BETWEEN formulaires![nb ouv ag entre date]!dateDeb AND formulaires![nb ouv ag entre date]!dateFin;









mon code VBA


Private Sub valider_Click()
Dim nbResultat As Integer




    'initialisation pour le test

    nbResultat = 5
    'conversion de dateTime en date simple
    Me.dateDeb = FormatDateTime(Me.dateDeb, vbShortDate)
    Me.dateFin = FormatDateTime(Me.dateFin, vbShortDate)
   
'je vérifie que la date de deb est inférieure a la date de fin
If Me.dateDeb <= Me.dateFin Then
    'je compte le nombre d'enregistrement trouvé
    formule de calcul a intégrer ICI
    'si ce n'est nombre est égal a zéro message sinon affichage des informations
    If nbResultat = 0 Then
        MsgBox "Aucune ouverture réalisée durant cette période", vbInformation, "Ouverture d'agence"
    Else
        'mise à jour des données du sous formulaire
        Me.sousForm.Requery
        Me.sousForm.Visible = True
    End If
Else
    MsgBox "Veuillez choisir une date de fin supérieure à la date de début!", vbCritical + vbOKOnly, "Intervale de temps incohérent"
End If
End Sub

j'attend vos aide avec hate.
Merci a tous d'avance

19 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
25 juin 2007 à 11:22
TonObjetRecordset.RecordCount

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
25 juin 2007 à 11:22
Salut,
tu peux peu être récupérer le résultat de ta requête dans un Recordset et te servir de sa propriété RecordCount.

@+: Ju£i?n
Pensez: Réponse acceptée
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
25 juin 2007 à 11:23
Salut,
Le cheval est encore plus rapide.....

@+: Ju£i?n
Pensez: Réponse acceptée
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
25 juin 2007 à 12:26
Donc mon code devrait donner ca :

        'je compte le nombre d'enregistrement trouvé
        Req = "SELECT * FROM agence WHERE date_ouverture BETWEEN formulaires![nb ouv ag entre date]!dateDeb AND formulaires![nb ouv ag entre date]!dateFin"
        Set MaTable = CurrentDb.OpenRecordset(Req, dbOpenDynaset)
        nbResultat = MaTable.RecordCount
   
        'si ce n'est nombre est égal a zéro message sinon affichage des informations
        If nbResultat = 0 Then
            MsgBox "Aucune ouverture réalisée durant cette période", vbInformation, "Ouverture d'agence"
        Else
            'mise à jour des données du sous formulaire
            Me.sousForm.Requery
            Me.sousForm.Visible = True
        End If

mais j'ai une erreur. il me dit qu'im me manque des paramètres au niveau de cette ligne la :
Set MaTable = CurrentDb.OpenRecordset(Req, dbOpenDynaset)

merci pour votre aide ca fait plaisir de savoir qu'il y a des gens pour me repondre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
25 juin 2007 à 12:30
Salut,
Essaie peu être
Req = "SELECT * FROM agence WHERE date_ouverture BETWEEN " & dateDeb & " AND " & dateFin
Set MaTable = CurrentDb.OpenRecordset(Req, dbOpenDynaset)
nbResultat = MaTable.RecordCount
 
'si ce n'est nombre est égal a zéro message sinon affichage des informations
If nbResultat = 0 Then
   MsgBox "Aucune ouverture réalisée durant cette période", vbInformation, "Ouverture d'agence"
Else
   'mise à jour des données du sous formulaire
   Me.sousForm.Requery
   Me.sousForm.Visible = True
End If
, ----
[code.aspx?ID=41455 By Renfield]

NOTE: il faudra peu être entourer la valeur des date de # # ou d'autre choses (m'en souvient jamais)

@+: Ju£i?n
Pensez: Réponse acceptée
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
25 juin 2007 à 12:31
j'ai résolu le problème de ce message d'erreur en fait ... j'ai demandé de l'aide trop vite sur ce point. Ca vient de ma requete.

par contre maintenant il me dit toujours que je n'ai aucun résultat alors que si j'en ai. Une aide ??
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
25 juin 2007 à 12:34
C'est probablement dû au format de tes dates

SQL recherche des dates au format MM JJ AAAA
Tes dates doivent avoir un format JJ MM AAAA
quelque soit le séparateur...

MPi
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
25 juin 2007 à 12:42
mais c trop bizare ca marche une fois sur deux et meme si je n'ai pas d'enregistrement.
non je pense pas que ca vienne du format de ma date car sans faire ce test là j'utilisé les dates et ca m'affiché les bonnes valeurs.
la je reprend les mêmes dates donc je trouve ca très bizare.
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
25 juin 2007 à 12:49
bon en fait ca marche que quand ca veut et ca m'enerve un ti peu la..
parfois avec une certaine date ca ne fonctionne pas
après avec la meme date ca fonction
ensuite quand il n'y a pas de valeur ca ne me met pas le message..

a n'y rien comprendre. si vous avez des petits conseil (sauf me dire d'abandonner) je suis prenneuse ;)
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
25 juin 2007 à 12:54
C'est certain que ça peut fonctionner dans certains cas.
Tout dépend de ta date
Si tu as un format comme je disais et que tu écrives 04/06/2007
SQL va rechercher 06/04/2007 qui peut tout à fait être bon et te retourner des valeurs. Ces valeurs, par contre, ou le nombre d'enregistrements risque d'être erroné

MPi
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
25 juin 2007 à 13:02
oui je comprend bien
mais quand je selectionne la date 16/04/2007 ca m'affiche des résultats. Or si je raisonne comme tu dit, la date recherché est le 04/16/2007. etant donné que le mois 16 n'existe pas je devrais rien avoir a l'écran tu es d'accord? et l'a j'ai mes resultats.
tu vois pourquoi je trouve ca bizare?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
25 juin 2007 à 13:11
04/16/2007

le mois 16 n'existe pas, SQL est plus fin, il comprend qu'il s'agit du 16/04/2007
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
25 juin 2007 à 13:20
roh la la..il met le format qu'il veut en fait. c'est comme ca lui chante

la je suis perdu complet car quand le choisi la date 05/04/2007 (en format anglais 04/05/2007) je vois des informations qui ont comme date 02/05/2007 donc ca n'est pas trop logique quand meme.
vous voyez ce que je veux dire?!?
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
25 juin 2007 à 13:20
comment je peux faire?
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
25 juin 2007 à 13:52
Essaie en laissant tomber le format Date et en utilisant des Long

"SELECT * FROM agence WHERE date_ouverture >= " & CLng (formulaires![nb ouv ag entre date]!dateDeb) & " AND
date_ouverture < = " & CLng(
formulaires![nb ouv ag entre date]!dateFin)

MPi
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
25 juin 2007 à 14:12
ya du mieux ya du mieux merci
le truc c que le format long va etre appliqué sur tt le reste du code (le code qui av suivre)?
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
25 juin 2007 à 14:16
Non, le Long va être appliqué à ta requête et pas ailleurs, à moins que tu ne spécifies encore le Long

MPi
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
25 juin 2007 à 14:18
oki alors il y a encore un problème
je vais jamais m'en sortir de mon truc la
il n'y a plus de message d'erreur mais il n'y a plus d'informations qui s'affiche non plus lol..
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
25 juin 2007 à 14:40
non pardonne moi
j'avais fais un gros oublie....
merci pour ton aide a présent ca marche tout comme il faut lol

MERCI A VOUS TOUS
ça fait plaisir de savoir que l'on peut compter sur des gens ;)
a bientot (le moin rapidement possible ce qui signifira qe je n'ai pas de problème :p)
0