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 :

problème Clause where d'un OpenRepoRt


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de Milyshyn76
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 440
    Points : 158
    Points
    158
    Par défaut problème Clause where d'un OpenRepoRt
    Bonjour à tous,
    Voilà j'ai un petit soucis de rien du tout qui me bouffe la majeur partie de mon temps...

    Je gère actuellement une base de donnée de formation de l'entreprise, soit les stages, formations pédagogiques, etc...

    J'ai effectuer un petit module qui me permet de mettre à jour les taux de participations des stagiaires...

    J'ai créer dans un formulaire, un sous formulaire qui permet de selectionner des stages et donc de sortir un état avec les stages selectionnés (par des cases à cochés)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set rst = CurrentDb.OpenRecordset("select NumStag from StageSSFormTaux where SelectStag=true")
    DoCmd.OpenReport "RQ_tauxParticipationBispouretat", acViewPreview, , "NumStag = " & rst!NumStag & ""
    Voici mon code qui me permet d'ouvir l'état..avec la clause where, mais elle ne me resort qu'un stage et nn les stage selectionnés...

    merci de votre aide...
    Mon TWITTER : Ici Mon Instragam :
    ---- BTS Informatique de Gestion ---- ---- Etudiante Responsable Ingénieries Logiciels ----

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 257
    Points
    34 257
    Par défaut
    Bonjour,
    si ton champ SelectTag est type oui/non, la clause s'écrira de la sorte :
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre habitué Avatar de Milyshyn76
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 440
    Points : 158
    Points
    158
    Par défaut
    Non
    Cela me resort toujours un seul stage sur 3 stages selectionnés...
    Mon TWITTER : Ici Mon Instragam :
    ---- BTS Informatique de Gestion ---- ---- Etudiante Responsable Ingénieries Logiciels ----

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 257
    Points
    34 257
    Par défaut
    Tu ne parcours pas ton recordset, et avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set rst = CurrentDb.OpenRecordset("select NumStag from StageSSFormTaux where SelectStag=true")
    if not rst.EOF Then
    strCriteria = "NumStag=" & rst!NumStag
    rst.MoveNext
    Do until rst.EOF
    strCriteria = strCriteria & " OR NumStag=" & rst!NumStag
    rst.MoveNext
    End if
     
    DoCmd.OpenReport "RQ_tauxParticipationBispouretat", acViewPreview, , strCriteria
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

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

    Cela est normal, car avec ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "NumStag = " & rst!NumStag & ""
    tu récupères la valeur du premier enregistrement et non des 3 que dois à priori te retourner ta requête.

    Starec

  6. #6
    Membre habitué Avatar de Milyshyn76
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 440
    Points : 158
    Points
    158
    Par défaut
    Oui ma le soucis est que la syntaxe me dit qu'il manque un bloc de if

    voici mon code entier :

    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
    Private Sub bt_apercut_Click()
    If Me.selection.Value = -1 Then
    DoCmd.OpenReport "RQ_tauxParticipationBispouretat", acViewPreview, , "NumStag = " & ChoixStag & ""
    Else
        Set rst = CurrentDb.OpenRecordset("select NumStag from StageSSFormTaux where SelectStag=true")
        If Not rst.EOF Then
        strCriteria = "NumStag=" & rst!NumStag
        rst.MoveNext
        Do Until rst.EOF
        strCriteria = strCriteria & " OR NumStag=" & rst!NumStag
        rst.MoveNext
        End If
     
    DoCmd.OpenReport "RQ_tauxParticipationBispouretat", acViewPreview, , strCriteria
    'Set rst = CurrentDb.OpenRecordset("select NumStag from StageSSFormTaux where SelectStag=-1")
    'DoCmd.OpenReport "RQ_tauxParticipationBispouretat", acViewPreview, , "NumStag = " & rst!NumStag & ""
    'DoCmd.OpenReport "RQ_tauxParticipationBispouretat", acViewPreview, "rst"
    End If
    End Sub
    Voilà, pendant ce temps, je cherche de cherche de mon coté ...

    Merci quand même...
    Mon TWITTER : Ici Mon Instragam :
    ---- BTS Informatique de Gestion ---- ---- Etudiante Responsable Ingénieries Logiciels ----

  7. #7
    Membre habitué Avatar de Milyshyn76
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 440
    Points : 158
    Points
    158
    Par défaut
    Citation Envoyé par Starec Voir le message
    Bonjour

    Cela est normal, car avec ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "NumStag = " & rst!NumStag & ""
    tu récupères la valeur du premier enregistrement et non des 3 que dois à priori te retourner ta requête.

    Starec
    Comment faire alors pour récuperer les trois champs selectionnés ???
    Mon TWITTER : Ici Mon Instragam :
    ---- BTS Informatique de Gestion ---- ---- Etudiante Responsable Ingénieries Logiciels ----

  8. #8
    Membre habitué Avatar de Milyshyn76
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 440
    Points : 158
    Points
    158
    Par défaut
    Voici ce que j'ai essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set rst = CurrentDb.OpenRecordset("select NumStag from StageSSFormTaux where SelectStag=true")
        Do While Not rst.EOF
        strCriteria = strCriteria & "AND NumStag=" & rst!NumStag
        rst.MoveNext
        Loop
        Set rst = Nothing
    ET

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set rst = CurrentDb.OpenRecordset("select NumStag from StageSSFormTaux where SelectStag=true")
        Do While Not rst.EOF
        strCriteria = strCriteria & "OR NumStag=" & rst!NumStag
        rst.MoveNext
        Loop
        Set rst = Nothing

    Me ressort une erreur me disant qu'un opérateur était absent..

    ENSUITE j'ai repris le code de jpcheck mais j'ai modifier la syntaxte pour parcourir les enregistrements ===>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set rst = CurrentDb.OpenRecordset("select NumStag from StageSSFormTaux where SelectStag=true")
    If Not rst.EOF Then
        strCriteria = "NumStag=" & rst!NumStag
        rst.MoveNext
        ElseIf rst.EOF Then
        strCriteria = strCriteria & " OR NumStag=" & rst!NumStag
        rst.MoveNext
        End If
    celle la ne me génère pas d'erreur, en revanche elle resort comme même un enregistrement....
    Mon TWITTER : Ici Mon Instragam :
    ---- BTS Informatique de Gestion ---- ---- Etudiante Responsable Ingénieries Logiciels ----

  9. #9
    Membre habitué Avatar de Milyshyn76
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 440
    Points : 158
    Points
    158
    Par défaut
    Encore une autre solution, mais cela ne me retourne même plus d'enregistrement .... :-(

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Set rst = CurrentDb.OpenRecordset("select NumStag from StageSSFormTaux where SelectStag=true")
        strcriteria = ""
        Do While Not rst.EOF
        strcriteria = strcriteria & " AND NumStag=" & rst!NumStag & ""
        rst.MoveNext
        Loop
        Set rst = Nothing
    strcriteria = Mid(strcriteria, 5) ' suppression du premier AND
    MsgBox strcriteria

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    debug.Print strcriteria
    NumStag=2 AND NumStag=3 AND NumStag=4 AND NumStag=5 AND NumStag=65 AND NumStag=66 AND NumStag=69 AND NumStag=70 AND NumStag=71 AND NumStag=683 AND NumStag=684
    Mon TWITTER : Ici Mon Instragam :
    ---- BTS Informatique de Gestion ---- ---- Etudiante Responsable Ingénieries Logiciels ----

  10. #10
    Membre habitué Avatar de Milyshyn76
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 440
    Points : 158
    Points
    158
    Par défaut
    WOOOOOOOOW CA MARCHE !!!!

    Voici la syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set rst = CurrentDb.OpenRecordset("select NumStag from StageSSFormTaux where SelectStag=true")
        strcriteria = ""
        Do While Not rst.EOF
        strcriteria = strcriteria & " OR NumStag=" & rst!NumStag & ""
        rst.MoveNext
        Loop
        Set rst = Nothing
    strcriteria = Mid(strcriteria, 5)
    MsgBox strcriteria
    Parce que têtue comme je suis, je n'avais pas remplacé le AND par OR ....


    MERCIIIIIIIIIIIIIIII
    Mon TWITTER : Ici Mon Instragam :
    ---- BTS Informatique de Gestion ---- ---- Etudiante Responsable Ingénieries Logiciels ----

  11. #11
    Membre habitué Avatar de Milyshyn76
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 440
    Points : 158
    Points
    158
    Par défaut
    Trop beau pour être vrai il me resort tout les enregistrements sauf le dernier ???? Etrange Non ???
    Mon TWITTER : Ici Mon Instragam :
    ---- BTS Informatique de Gestion ---- ---- Etudiante Responsable Ingénieries Logiciels ----

  12. #12
    Invité
    Invité(e)
    Par défaut
    Re

    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Do While Not rst.EOF
        strcriteria = strcriteria & " OR NumStag=" & rst!NumStag & ""
        rst.MoveNext
        Loop
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    While Not rst.EOF
        strcriteria = strcriteria & " OR NumStag=" & rst!NumStag & ""
        rst.MoveNext
    Wend
    pour voir.

    Starec

  13. #13
    Membre habitué Avatar de Milyshyn76
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 440
    Points : 158
    Points
    158
    Par défaut
    Non, non c'est gentil, mais il me retourne bien les bon enregistrements, certain qu'il ne retourne pas sont en fait des taux de participation non calculés....

    Je te remercie ......
    Mon TWITTER : Ici Mon Instragam :
    ---- BTS Informatique de Gestion ---- ---- Etudiante Responsable Ingénieries Logiciels ----

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 06/05/2011, 15h34
  2. [SQL] problème clause where
    Par salirose dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/09/2006, 14h15
  3. problème clause WHERE
    Par Manu0086 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/03/2006, 19h09
  4. [requete] Mysql problème de clause where
    Par Raideman dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/07/2005, 18h00
  5. Problème clause WHERE
    Par nesbla dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/06/2004, 15h07

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