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 :

Code VBA fonction du resultat d'une requête


Sujet :

VBA Access

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut Code VBA fonction du resultat d'une requête
    Bonsoir,

    J'ai un sous-form basé sur la requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Iif(Count(AFFAIRES.Réfaffaires)=0,"-",Count(AFFAIRES.Réfaffaires))
    FROM AFFAIRES
    WHERE Month([Signature définitive prévue le])=Month(Date())
    HAVING (((AFFAIRES.[Transaction en cours])=True));
    J'ai le bouton de commande de l'ouverture de l'état correspondant et je voudrais, s'il n'y a rien à afficher (donc resultat de ma requête ="-") avoir un message d'info. j'ai tenté ça (en tatonnant, ne connaissant pas tous les rouages d'access) :
    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
    Private Sub Commande251_Click()
    If Me.Nbrencours="-" then
    Msgbox "Il n'y a rien à afficher",vbInformation+vbOkonly,"INFORMATION"
    Else
    On Error GoTo Err_Commande251_Click
        Dim stDocName As String
     
        stDocName = "ENCOURS DU MOIS"
        DoCmd.OpenReport stDocName, acPreview
     
    Exit_Commande251_Click:
        Exit Sub
     
    Err_Commande251_Click:
        MsgBox Err.Description
        Resume Exit_Commande251_Click
    End If
    End Sub
    Vous vous doutez bien que ça ne marche pas...

    Help

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonsoir,

    c'est quoi le problème en faite ?

    Me.Nbrencours est-il dans le sous-form ?

    le bouton <Commande251> est-il dans le sous-form ?

    cordialement,

    Philippe

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    En fait la requête "nbrencours" a attéri dans mon form en tant que sous-form.

    La commande 251 (qui ouvre un état) est dans le form. Je souhaiterais que lorsque le résultat de ma requête= "-", avoir un message d'info quand je clique sur l'aperçu (commande 251).

    Je ne sais pas comment mettre en rapport un résultat de requête avec un code évènement.

  4. #4
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    En VBA, fais une requête qui interroge la requête source du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim compte as integer
    Dim req as string
    req = "nbrencours not like '-'"
    compte = DCount("*", SousForm.recordsource, req)
    ' à la place de SousForm.recordsource, si ça ne fonctionne pas, entre le nom de ta requête à la main, entre guillemets
    If compte > 0 then
    'Création de l'état
    End If
    J'espère que ça répond à ta question
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Bonjour et merci à toi mouaa !

    J'ai essayé le code mais il bogue, sur le nom de la requête (comprends pas trop pourquoi mais je creuse).
    En attendant, où interviendrait mon msgbox ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 34
    Points : 31
    Points
    31
    Par défaut
    Bonjour,

    Ta MsgBox interviendrait dans le cas où compte =0 si j'ai bien suivi le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim compte as integer
    Dim req as string
    req = "nbrencours not like '-'"
    compte = DCount("*", SousForm.recordsource, req)
    ' à la place de SousForm.recordsource, si ça ne fonctionne pas, entre le nom de ta requête à la main, entre guillemets
    If compte > 0 then
    'Création de l'état
    else : 
      msgbox "Rien à afficher !"
    End If

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Bonsoir Atom41,

    Ok, je tenterai ça.

    Si j'ai bien compris, je mettrai le code d'ouverture de l'état après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If compte > 0 then
    'Création de l'état

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Bonjour,

    J'ai toujours le même problème de nom de requête. Je ne comprends pas.

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Voici le code que j'ai
    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
    24
    Private Sub Commande251_Click()
    Dim compte As Integer
    Dim req As String
    req = "TRANSAC__Nbrencours not like '-'"
    compte = DCount("*", "TRANSAC__Nbrencours", req)
    ' à la place de SousForm.recordsource, si ça ne fonctionne pas, entre le nom de ta requête à la main, entre guillemets
    If compte > 0 Then
    On Error GoTo Err_Commande251_Click
        Dim stDocName As String
    
        stDocName = "ENCOURS DU MOIS"
        DoCmd.OpenReport stDocName, acPreview
    
    Exit_Commande251_Click:
        Exit Sub
    
    Err_Commande251_Click:
        MsgBox Err.Description
        Resume Exit_Commande251_Click
    Else:
      MsgBox "Il n'y a rien à afficher !"
    
    End If
    End Sub
    Debogage sur ce que j'ai mis en gras

  10. #10
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Help

  11. #11
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    re !

    question sur ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    req = "TRANSAC__Nbrencours not like '-'"
    compte = DCount("*", "TRANSAC__Nbrencours", req)
    ton "TRANSAC__Nbrencours", c'est le nom d'une requête ou le nom d'un champ ?
    (ou les 2)

    parce que ton code me paraît un peu bizarre.

    si je retranscrits ton dcount en sql, voilà ce que ça fait:
    SELECT * FROM TRANSAC__Nbrencours WHERE TRANSAC__Nbrencours not like '-';

    si tu essayes cette requête dans le requêteur SQL (QBE), elle fonctionne ?

    vérifie bien ton Dcount :
    Dcount("nom_du_champ ou * pour tous","table_ou requête","critère")
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/02/2015, 16h59
  2. [code VBA]passage de variable pour une requête paramétrée
    Par christrabin dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/04/2007, 14h30
  3. Resultat d'une requête dans TEdit
    Par the watcher dans le forum Connexion aux bases de données
    Réponses: 5
    Dernier message: 08/09/2005, 18h00
  4. [SQL Server] Limiter le resultat d'une requête
    Par obiwan dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/06/2004, 11h25
  5. Proposer le resultat d'une requête en téléchargement
    Par Lux interior dans le forum XMLRAD
    Réponses: 5
    Dernier message: 17/02/2003, 15h44

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