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

Requêtes et SQL. Discussion :

Instruction SQL dans un bouton pour filtrer info formulaire


Sujet :

Requêtes et SQL.

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Instruction SQL dans un bouton pour filtrer info formulaire
    Bonjour le forum,

    J’espère que vous passez un bon dimanche.

    Voici ce que j’aimerais faire :

    J’ai un formulaire qui reprend par étudiant, le cursus complet pour ces 5 années d’études.

    Par exemple :

    Dupont Valérie

    Eco1 Eco 2 Eco 3 Eco 4 Eco 5
    Succ Succ Succ Succ Succ

    Le problème est que j’ai 800 étudiants (parcours) dans mon formulaire.

    J’aurais aimé que mon formulaire me donne que les étudiant qui ont terminé leur Eco5 en 2004-2005.

    Pour cela, j’ai été dans la requête de ce formulaire, j’y ai indiqué dans Eco52004-2005 <> « « désolé mais mon Word ne veut pas faire des guillemets droit.

    Là, le résultat est celui que j’attendais, j’obtiens bien les cursus des étudiants diplômés cette année.

    Je copie le code SQL de la requête.

    Maintenant j’aimerais simplement créer un bouton ou j’insérerai ce code sql mais là ça plante car le code SQL est rouge (donc erroné) ce qui est normal car c’est du VBA et non du SQL.

    Je vous demande donc comment je peux créer ce bouton qui comporterait mon code SQL et lorsque je cliquerai dessus, le formulaire filtrera les étudiants diplômés en 2004-2005.

    Si je n’ai pas été assez claire, n’hésiter pas à me contacter.

    D’avance, un grand merci !
    bgs

  2. #2
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 125
    Points : 128
    Points
    128
    Par défaut
    crée un bouton (monbouton)et insere ce code
    sqlstring represente ton code sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub monbouton_Click()
    sqlstring="select .........."
    Me.RecordSource = sqlstring
     
    End Sub

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par medkarim
    crée un bouton (monbouton)et insere ce code
    sqlstring represente ton code sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub monbouton_Click()
    sqlstring="select .........."
    Me.RecordSource = sqlstring
     
    End Sub
    Bonjour Medkarim,

    Merci pour ta réponse.

    J'ai donc créer un bouton et j'ai associé à l'évènement onclick ceci :

    Private Sub Commande863_Click()
    SQLString ="Select rqt All matricules].Matricule, [rqt All matricules].Nom, [rqt All matricules].Prénom, [rqt Cursus 1996-2000].[AnAcad1996(P1s1)], [rqt Cursus 1996-2000].[Session1996(P1s1)], [rqt Cursus 1996-2000].[Decision1996(P1s1)], [rqt Cursus 1996-2000].[Session1996(P1s2)], [rqt Cursus 1996-2000].[Decision1996(P1s2)], [rqt Cursus 1996-2000].[Anacad1997(P2s1)], [rqt Cursus 1996-2000].[Session1997(P2s1)], [rqt Cursus 1996-2000].[Decision1997(P2s1)], [rqt Cursus 1996-2000].[Session1997(P2s2)], [rqt Cursus 1996-2000].[Decision1997(P2s2)], [rqt Cursus 1996-2000].[AnAcad1998(P3s1)], [rqt Cursus 1996-2000].[Session1998(P3s1)], [rqt Cursus 1996-2000].[Decision1998(P3s1)], [rqt Cursus 1996-2000].[Session1998(P3s2)], [rqt Cursus 1996-2000].[Decision1998(P3s2)], [rqt Cursus 1996-2000].[AnAcad1999(P4s1)], [rqt Cursus 1996-2000].[Session1999(P4s1)], [rqt Cursus 1996-2000].[Decision1999(P4s1)], [rqt Cursus 1996-2000].[Session1999(P4s2)], [rqt Cursus 1996-2000].[Decision1999(P4s2)], _
    [rqt Cursus 1996-2000].[AnAcad2000(P5s1)] _
    [rqt Cursus 1996-2000].[Session2000(P5s1)] , [rqt Cursus 1996-2000].[Decision2000(P5s1)], [rqt Cursus 1996-2000].[Session2000(P5s2)], [rqt Cursus 1996-2000].[Decision2000(P5s2)], [rqt Cursus 1997-2001].[AnAcad1997(P1s1)], [rqt Cursus 1997-2001].[Mnemonic1997(P1s1)], [rqt Cursus 1997-2001].[Session1997(P1s1)], [rqt Cursus 1997-2001].[Decision1997(P1s1)], [rqt Cursus 1997-2001].[Session1997(P1s2)], [rqt Cursus 1997-2001].[DECISION1997(P1s2)], [rqt Cursus 1997-2001].[Anacad1998(P2S1)], [rqt Cursus 1997-2001].[Session 1998(P2S1)], [rqt Cursus 1997-2001].[Decision1998(P2S1)], [rqt Cursus 1997-2001].[Session1998(P2s2)], [rqt Cursus 1997-2001].[DECISION1998(P2s2)], [rqt Cursus 1997-2001].[AnAcad1999(P3s1)], [rqt Cursus 1997-2001].Session, [rqt Cursus 1997-2001].[Decision1999(P3s1)], [rqt Cursus 1997-2001].[Session1999(P3s2)], [rqt Cursus 1997-2001].[DECISION1999(P3s2)], [rqt Cursus 1997-2001].[AnAcad2000(P4s1)], [rqt Cursus 1997-2001].[Session2000(P4s1)], [rqt Cursus 1997-2001].[Decision2000(P4s1)], _
    [rqt Cursus 1997-2001].[Session2000(P4s2)], [rqt Cursus 1997-2001].[DECISION2000(P4s2)], [rqt Cursus 1997-2001].[Anacad2001(P5s1)], [rqt Cursus 1997-2001].[Session2001(P5s1)], [rqt Cursus 1997-2001].[Decision2001(P5s1)], [rqt Cursus 1997-2001].Sessoion, [rqt Cursus 1997-2001].DECISION, [rqt Cursus].[AnAcad1998(P1s1)], [rqt Cursus].[Session1998(P1s1)], [rqt Cursus].[Decision1998(P1s1)], [rqt Cursus].[SESSion1998(P1s2)], [rqt Cursus].[RESULTAT1998(P1s2)], [rqt Cursus].[Pharma 2 Cote 1999].ANACAD, [rqt Cursus].[Pharma 2 Cote 1999].Session, [rqt Cursus].[Pharma 2 Cote 1999].DECISION, [rqt Cursus].[Pharma 2 cote Sess2 1999].Session, [rqt Cursus].[Pharma 2 cote Sess2 1999].DECISION, [rqt Cursus].[Pharma 3 Cote 2000].ANACAD, [rqt Cursus].[Pharma 3 Cote 2000].Session, [rqt Cursus].[Pharma 3 Cote 2000].DECISION, [rqt Cursus].[Pharma 3 Cote 2000 Sess 2].Session, [rqt Cursus].[Pharma 3 Cote 2000 Sess 2].DECISION, [rqt Cursus].[Pharma 4 cote 2001].ANACAD, [rqt Cursus].[Pharma 4 cote 2001].Session, _
    [rqt Cursus].[Pharma 4 cote 2001].DECISION, [rqt Cursus].[Pharma 4 cote 2001 SESS 2].Session, [rqt Cursus].[Pharma 4 cote 2001 SESS 2].DECISION, _
    [rqt Cursus].[Pharma 5 cote 2002].ANACAD, [rqt Cursus].[Pharma 5 cote 2002].Session, [rqt Cursus].[Pharma 5 cote 2002].DECISION, [rqt Cursus].[Pharma 5 COTE SESS 2 2002].Session, [rqt Cursus].[Pharma 5 COTE SESS 2 2002].DECISION, [cursus 1999-2004].[Anacad1999(P1s1)], [cursus 1999-2004].[Session1999(P1s1)], [cursus 1999-2004].[Decision1999(P1s1)], [cursus 1999-2004].[Session1999(P1s2)], [cursus 1999-2004].[Decision1999(P1s2)], [cursus 1999-2004].[Anacad2000(P2s1)], [cursus 1999-2004].[Session2000(P2s1)], [cursus 1999-2004].[Decision2000(P2s1)], [cursus 1999-2004].Session, [cursus 1999-2004].[Decision2000(P2s2)], [cursus 1999-2004].[Anacad2001(P3s1)], [cursus 1999-2004].[Session2001(P3s1)], [cursus 1999-2004].[Decision2001(P3s1)], [cursus 1999-2004].[Session2001(P3s2)], [cursus 1999-2004].[Decision2001(P3s2)], [cursus 1999-2004].[Anacad2002(P4s1)], [cursus 1999-2004].[Session2002(P4s1)], _
    [cursus 1999-2004].[Decision2002(P4s1)], [cursus 1999-2004].[SESSION2002(P4s2)], [cursus 1999-2004].[DECISION2002(P4s2)], [rqt Cursus 1995-1999].[AnAcad1995(P1s1)], [rqt Cursus 1995-1999].[Session1995(P1s1)], [rqt Cursus 1995-1999].[Decision1995(P1s1)], [rqt Cursus 1995-1999].[Session 1995(P1s2)], [rqt Cursus 1995-1999].[Decision1995(P1s2)], [rqt Cursus 1995-1999].[Anacad1996(P2s1)], [rqt Cursus 1995-1999].[Session1996(P2s1)], [rqt Cursus 1995-1999].[Decision1996(P2s1)], [rqt Cursus 1995-1999].[Session1996(P2s2)], [rqt Cursus 1995-1999].[Decision1996(P2s2)], [rqt Cursus 1995-1999].[AnAcad1997(P3s1)], [rqt Cursus 1995-1999].[Session1997(P3s1)], [rqt Cursus 1995-1999].[Decision1997(P3s1)], [rqt Cursus 1995-1999].[Session1997(P3s2)], [rqt Cursus 1995-1999].[DECISION1997(P3s2)], [rqt Cursus 1995-1999].[AnAcad1998(P4s1)], [rqt Cursus 1995-1999].[Session1998(P4s1)], [rqt Cursus 1995-1999].[Decision1998(P4s1)], [rqt Cursus 1995-1999].[Session1998(P4s2)], [rqt Cursus 1995-1999].[Decision1998(P4s2)], _
    [rqt Cursus 1995-1999].[AnAcad1999(P5s1)], [rqt Cursus 1995-1999].[Session1999(P5s1)], [rqt Cursus 1995-1999].[Decision1999(P5s1)], [rqt Cursus 1995-1999].[Session1999(P5s2)], [rqt Cursus 1995-1999].[Decision1999(P5s2)], Historique.Historique, [cursus 1999-2004].[AnAcad2003(P5s1)], [cursus 1999-2004].[Session2003(P5s1)], [cursus 1999-2004].[Decision2003(P5s1)], [cursus 1999-2004].[Session2003(P5s2)], [cursus 1999-2004].[DECISION2003(P5s2)], [rqt Cursus 2000-2004].[AnAcad2000(P1s1)], [rqt Cursus 2000-2004].[Session2000(P1s1)], [rqt Cursus 2000-2004].[Decision2000(P1s1)], [rqt Cursus 2000-2004].[Session2000(P1s2)], [rqt Cursus 2000-2004].[Decision2000(P1s2)], [rqt Cursus 2000-2004].[AnAcad2001(P2s1)], [rqt Cursus 2000-2004].[Session2001(P2s1)], [rqt Cursus 2000-2004].[DECISION2001(P2s1)], [rqt Cursus 2000-2004].[Session2001(P2s2)], [rqt Cursus 2000-2004].[Decision2001(P2s2)], [rqt Cursus 2000-2004].[AnAcad2002(P3s1)], [rqt Cursus 2000-2004].[Session2002(P3s1)], [rqt Cursus 2000-2004].[DECISION2002(P3s1)], _
    [rqt Cursus 2000-2004].[Session2002(P3s2)], [rqt Cursus 2000-2004].[Decision2002(P3s2)], [rqt Cursus 2000-2004].[Session2003(P4s1)], [rqt Cursus 2000-2004].[Anacad2003(P4s1)], [rqt Cursus 2000-2004].[DECISION2003(P4s1)], [rqt Cursus 2000-2004].[Anacad2003(P4s2)], [rqt Cursus 2000-2004].[Session2003(P4s2)], [rqt Cursus 2000-2004].[DECISION2003(P4s2)], [rqt Cursus 2001-2005].[AnAcad2001(P1s1)], [rqt Cursus 2001-2005].[Session2001(P1s1)], [rqt Cursus 2001-2005].[Decision2001(P1s1)], [rqt Cursus 2001-2005].[Session2001(P1s2)], [rqt Cursus 2001-2005].[Decision2001(P1s2)], [rqt Cursus 2001-2005].[AnAcad2002(P2s1)], [rqt Cursus 2001-2005].[Session2002(P2s1)], [rqt Cursus 2001-2005].[DECISION2002(P2s1)], [rqt Cursus 2001-2005].[Session2002(P2s2)], [rqt Cursus 2001-2005].[DECISION2002(P2s2)], [rqt Cursus 2002-2006].[AnAcad2002(P1s1)], [rqt Cursus 2002-2006].[Session2002(1s1)], [rqt Cursus 2002-2006].[Decision2002(P1s1)], [rqt Cursus 2002-2006].[Session2002(P1s2)], [rqt Cursus 2002-2006].[RESULT2002(P1s2)], _
    [rqt Cursus 2002-2006].[AnAcad2003(P2s1)][rqt Cursus 2002-2006].[Session2003(P2s1)], [rqt Cursus 2002-2006].[DECISION2003(P2s1)], [rqt Cursus 2002-2006].[Session2003(P2s2)], [rqt Cursus 2002-2006].[DECISION2003(P2s2)], [rqt Cursus 2001-2005].[AnAcad2003(P3s1)], [rqt Cursus 2001-2005].[Session2003(P3s1)], [rqt Cursus 2001-2005].[Decision2003(P3s1)], [rqt Cursus 2001-2005].[Session2003(P3s2)], [rqt Cursus 2001-2005].[DECISION2003(P3s2)] _
    FROM (([rqt Cursus 2000-2004] RIGHT JOIN (((((([rqt All matricules] LEFT JOIN [rqt Cursus 1996-2000] ON [rqt All matricules].Matricule=[rqt Cursus 1996-2000].[Matricule1996-1997]) LEFT JOIN [rqt Cursus 1997-2001] ON [rqt All matricules].Matricule=[rqt Cursus 1997-2001].[AllMatricules1997-2001]) LEFT JOIN [cursus 1999-2004] ON [rqt All matricules].Matricule=[cursus 1999-2004].[Matricule 1999-2004]) LEFT JOIN [rqt Cursus] ON [rqt All matricules].Matricule=[rqt Cursus].Matricule) LEFT JOIN [rqt Cursus 1995-1999] ON [rqt All matricules].Matricule=[rqt Cursus 1995-1999].[Matricule1995-1999]) LEFT JOIN Historique ON [rqt All matricules].Matricule=Historique.Matricule) ON [rqt Cursus 2000-2004].[AllMatricule2000-2004Cursus]=[rqt All matricules].Matricule) LEFT JOIN [rqt Cursus 2001-2005] ON [rqt All matricules].Matricule=[rqt Cursus 2001-2005].[MatriculeCursus2001-2005]) LEFT JOIN [rqt Cursus 2002-2006] ON [rqt All matricules].Matricule=[rqt Cursus 2002-2006].[MatriculeCursus2002-2006] _
    WHERE ((([rqt Cursus 2000-2004].[Anacad2003(P4s1)])<>""));"
    Me.RecordSource = SQLString

    End Sub
    et cela me donne ce message d'erreur :

    Erreur de compilation : Attendu : fin d'instruction
    Je n'ai pas changé la chaîne SQL sauf que j'ai mis des _ (espace + underscore) pour éviter de très longue ligne.

    Qu'en penses(z)-tu(vous) ?

    Merci !

    bgs

  4. #4
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re-bonjour,

    Pour être plus claire, voici ce que j'aimerais faire :

    Ce que j’aimerais donc faire c’est simplement d’afficher les étudiants où une information est présente dans le champs [Anacad2003(P4s1)]

    Mais je n’y arrive pas.

    J’avais pensé à cela :

    ValSQL = "SELECT * FROM [rqt All Cursus New] where [Anacad2003(P4s1)] <> """

    mais cela ne fonctionne pas.

    Qu’en pensez-vous ?

    Merci beaucoup.

    Bgs

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re-bonjour le forum,

    J’ai trouvé une bonne partie de la solution mais le résultat n’est pas parfait à 100%.

    Voici comment j’ai fais :

    J’ai créé un bouton, dans l’évènement click, j’ai lié une macro « appliquer le filtre » et j’ai mis ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [rqt All Cursus New]![Anacad2003(P4s1)] Comme "2003-2004"
    Il y’a quand même un problème :

    Lorsque j’appuie sur le bouton, il me dit « Le moteur de base de données Microsoft Jet n’a pas pu trouver l’objet ‘Diplôme 2005’. Assurez-vous que l’objet existe et que vous avez correctement saisi son nom et son chemin d’accès.

    Quand je clique sur OK, le filtre se fait correctement.

    C’est vrai que c’est minime comme problème mais c’est mon supérieur hiérarchique qui devra utiliser ma base de donnée et je ne voudrais pas qu’il voit se message.

    J’aimerais aussi créer une liste déroulante avec comme éléments dans cette liste :

    Diplômés 2005
    Diplômés 2006…

    Si je clique sur Diplômés 2005, c’est ce filtre qui se fait, si c’est diplômés 2006, c’est l’autre filtre qui se fait…

    Possible ça ? C’est surtout pour éviter de créer un bouton pour 2005, un autre pour 2006…..

    Merci d’avance pour votre précieuse aide.

    Bgs

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Je ne veux pas entrer dans le détail du sql, mais en gros voici ce qu'il faut faire (la démarche) :

    1) Tester le sql à l'aide d'une requête jusqu'à obtention du résultat souhaité (en modulant les critères)

    2) Editer le sql de cette requête et récupérer la partie située après WHERE (copier / coller)

    3) Dans le code du bouton du formulaire, initialiser une variable (MonWhere par exemple) de type string avec le contenu précédent (coller) et adapter pour que ça passe en compile (paramétrage des critères, encadrement des valeurs de critère de type string par des cotes), concaténation, etc.

    3) Appliquer la méthode docmd.applyfilter MonWhere

    Bon courage

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par MOYSAN
    Je ne veux pas entrer dans le détail du sql, mais en gros voici ce qu'il faut faire (la démarche) :

    1) Tester le sql à l'aide d'une requête jusqu'à obtention du résultat souhaité (en modulant les critères)

    2) Editer le sql de cette requête et récupérer la partie située après WHERE (copier / coller)

    3) Dans le code du bouton du formulaire, initialiser une variable (MonWhere par exemple) de type string avec le contenu précédent (coller) et adapter pour que ça passe en compile (paramétrage des critères, encadrement des valeurs de critère de type string par des cotes), concaténation, etc.

    3) Appliquer la méthode docmd.applyfilter MonWhere

    Bon courage
    Bonjour Moysay,

    Merci pour ta réponse.

    Comme dis plus haut, le résultat que j'attendais est atteind sauf que quand je clique sur le bouton, j'ai un message d'erreur.

    Le fait de cliquer sur OK me permet d'actionner le filtre.

    Je suivrai tes recommandations pour le future.

    Merci encore.

    bgs

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/04/2012, 17h03
  2. [AC-2003] Bouton pour filtrer formulaire sur une valeur
    Par yonnel dans le forum IHM
    Réponses: 0
    Dernier message: 01/09/2011, 09h14
  3. Réponses: 13
    Dernier message: 30/11/2010, 17h31
  4. Syntaxe requête SQL dans JCL MVS pour lire sous AIX
    Par Claire de Morsang dans le forum DB2
    Réponses: 2
    Dernier message: 18/03/2008, 17h14
  5. Réponses: 2
    Dernier message: 08/09/2006, 21h32

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