Requete sql en vb

bonjour a tous et a toute

j'ai un petit probleme en vb vu que je debute dans ce langage

je vous explique le problème

j'ai recuperer dans une variable un mot d'un fichier texte
disons que cette variable s'appelle deuxiememot

je voudrai in clure dans mon code la requete sql

select * from serveur where nom_serveur like '*deuxiememot'
et me renvoi l'affichage de la requete

merci pour vos reponses

26 réponses

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

La problématique concerne la construction d'une requête SQL dynamique en VB utilisant une valeur lue dans une variable et intégrée avec LIKE. Des réponses soulignent qu'il faut déclencher la requête via un événement (bouton ou choix dans une liste) plutôt que d'exécuter immédiatement. Plusieurs propositions montrent comment concaténer correctement la chaîne, par exemple select * from serveur where nom_serveur like '*' & deuxiememot & '*' selon le contexte, ou en utilisant le joker '%', selon le SGBD. Enfin, des échanges évoquent des détails pratiques comme la gestion des guillemets, le rôle de l'événement et la pertinence d'adapter le code à la zone d'affichage et au formulaire.

Bobot (l’IA à votre service)
  1. Modérateur
    Salut,

    en fait, ce qui manque, c'est de savoir QUAND il faut exécuter ta requête. Car là, tu n'as fait que remplir une variable avec un texte de requête.

    VB et VBA sont des langages évenementiels : ils exécutent du code lors de la survenue d'un évènement (d'où leur nom)

    Doit-on la lancer quand on appuie sur un bouton, quand on choisit quelque chose dans une liste... ?

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    1. str = "select * from serveur where nom_serveur like '*" & deuxiememot & "'" 


      --------------------------------------------------------
      L'informatique est un long fleuve pas tranquille !!!
      1. str = "select * from serveur where nom_serveur like ('"&* deuxiememot & "')"
        au lieu de celle la je pense bon courage j'espre que s'amarche
        str = "select * from serveur where nom_serveur like '*" & deuxiememot & "'"
    2. bon desole je comprend rien donc si tu pouvais ecrir quel code je dois mettre pour que ca fonctionne

      merci!!
      1. Modérateur
        Pour éviter la complication, voici ce que je te propose :

        Tu crées un formulaire avec un bouton et une zone de liste
        Sur le bouton, tu rattaches le code qui permet de remplir le contenu de la liste :
        dim str as string
        str = "select * from serveur where nom_serveur like '*" & deuxiememot & "';"
        [lenomdelazonedeliste].rowsource = str

        Et c'est tout...

        Si tout va bien, tu dois voir s'afficher dans la zone, l'ensemble des données renvoyées par ta requête. Mais n'oublie pas de renseigner dans les propriétés de ta zone le nombre de colonnes (nombre de champs renvoyés par la requête) ainsi que la largeur des colonnes...

        A+ Blux
         "Les cons, ça ose tout.
        C'est même à ça qu'on les reconnait"
        1. merci de ta reponse

          mais lorsque j'execute ce code
          rien ne se passe

          sub test ()
          dim str as string
          str = "select * from serveur where nom_serveur like '*" & deuxiememot & "'"
          end sub

          merci!
          1. Il faut appeler ta procedure sub aussi. Et declarer deuxiememot.

            --------------------------------------------------------
            L'informatique est un long fleuve pas tranquille !!!
            1. salut

              sub test ()
              dim str as string
              str = "select * from serveur where nom_serveur like '*" & deuxiememot & "'"
              end sub

              j'ai appele sub ma procedure et deuxieme mot est un variable qui vient d'une autre procedure
              est ce qui il ya autre chose a mettre genre recordset?
              merci
              1. str = "select * from serveur where nom_serveur like '" & deuxiememot & "%' "
              2. Modérateur
                problème résolu depuis plus de 7 ans, merci de ne pas relancer le débat...
            2. Ben nan là c'est test le nom de la sub.

              --------------------------------------------------------
              L'informatique est un long fleuve pas tranquille !!!
              1. ca ne mache pas quand je met sub sub ()
                et pour deuxieme mot qui est une variable d'une autre procedure
                1. Pour appeler une procedure c'est
                  nom_de_la_sub();
                  ou
                  call nom_de_la_sub();

                  --------------------------------------------------------
                  L'informatique est un long fleuve pas tranquille !!!
                  1. Tu as jamais appris le langage Basic ?

                    --------------------------------------------------------
                    L'informatique est un long fleuve pas tranquille !!!
                    1. poof je suis debutant en vb c'est pour ca que je demande

                      merci blux pour ta reponse
                      en fait ce que je voudrais c'est que la requete s'affiche a l'execution du code

                      le resultat de cette requete contient deux ligne et je dois realiser du code pour modifier ces lignes

                      donc pas besoin d'un clique sur un bouton (mais je suiis toujours preneur pour savoir comment on fait pour l'afficher en appyant sur un bouton)

                      merci!!
                      1. Modérateur
                        c'est que la requete s'affiche a l'execution du code

                        Quand le code doit-il être exécuté ?
                        Où doit-on afficher le résultat ?
                        Comment doit-on le modifier ?

                        A+ Blux
                         "Les cons, ça ose tout.
                        C'est même à ça qu'on les reconnait"
                        1. lorsque je compile le code
                          et je voudrai que la requete s'affiche dans une fenetre de table access et apres
                          il faudrait qu'un compteur compte les champs de la ligne de resultat
                          et si elle contient des données les copier dans la ligne d'en dessous

                          merci
                          1. Modérateur
                            Je crois que tu confonds certains termes.

                            'Compiler' n'a pas de valeur dans ACCESS.

                            Comme je l'ai indiqué, VBA est un langage évènementiel, donc lorsque tu écris du code, il faut indiquer QUAND on doit l'exécuter : ouverture de la base, ouverture d'un formulaire, passage au champ suivant, appui sur un bouton...

                            Puisque 'deuxièmemot' est une variable, il faut donc exécuter le code après que sa valeur ait été choisie. Deux solutions : dès qu'une valeur est remplie, on exécute, ou alors, dès que l'utilisateur le souhaite (en appuyant sur un bouton), on l'exécute.

                            Il faut donc ouvrir un formulaire dont la source de données sera la requête.

                            Pour la suite, je n'ai pas tout compris :-(

                            A+ Blux
                             "Les cons, ça ose tout.
                            C'est même à ça qu'on les reconnait"
                            1. ce qui serait bien c'est a l'ouverture de la base
                              afficher le resultat de la requete
                              1. Modérateur
                                Euh oui, mais quand est-ce qu'on remplit 'deuxièmemot' ?

                                S'il n'a pas de valeur à l'ouverture de la base, ça va aller beaucoup moins bien...

                                A+ Blux
                                 "Les cons, ça ose tout.
                                C'est même à ça qu'on les reconnait"
                                1. Modérateur
                                  Quel programme ?
                                  Un module général ?
                                  Car attention, les données ne sont pas visibles par toutes les procédures (déclaration en Public ou Private)...

                                  A+ Blux
                                   "Les cons, ça ose tout.
                                  C'est même à ça qu'on les reconnait"
                                  1. non non dans la meme procedure
                                    je recupere le mot et j'affiche une requete sql
                                    • 1
                                    • 2