Comment faire une requête VBA SQL à deux critères

Résolu
bassmart Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   -  
bassmart Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

J'ai une macro qui ouvre un autre fichier Excel pour effectuer une recherche a l'intérieur par requête SQL. La valeur recherchée est assigné à une variable qui s'appelle "Sondage". Elle copie ensuite le ou les valeurs trouvées dans mon fichier actif.

Ce que je voudrais faire et je n'y arrive pas! C'est d'ajouter le critière que le "Sondage" doit aussi contenir le caractère "Z".

Voici une partie de ma requête:

 'Nom de la feuille dans le classeur fermé
        Table = "SONDAGE" & "$"
        plage = "B1:B100000"
        Champ = "NO_SONDAGE"
        '--- Connexion ---
        Set Cn = CreateObject("ADODB.connection")
        With Cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
             & Fichier2 & ";Extended Properties=""Excel 12.0;HDR=YES;"""
            .Open
        End With
        '-----------------
        '... la requête avec WHERE et LIKE
        Set Rst = CreateObject("ADODB.Recordset")
        texte_SQL = "SELECT " & Champ & " FROM [" & Table & "] WHERE " & Champ & " like '" & "%" & Sondage & "%' ;"
        
        Rst.Open texte_SQL, Cn, adOpenStatic

Merci pour votre aide!

3 réponses

  1. Utilisateur anonyme
     

    Bonsoir

    quand tu dis "critère Sondage", tu veux dire le champ NO_Sondage ou un autre champ qui s'appelle Sondage?


    0
  2. Utilisateur anonyme
     

    Bon sans réponse de ta part, je vais supposer que c'est dans NO_Sondage, alors ça devrait être un truc comme ça (je code très peu en VBA et son SQL est un peu différent de la version standard, pour peu que standard il y ait)

    texte_SQL = "SELECT " & Champ & " FROM [" & Table & "] WHERE " & Champ & " like '" & "%" & Sondage & "%' And " & Champ & " like 'Z';"

    D'ailleurs pour tes prochains, merci de choisir Basic comme langage à afficher, c'est beaucoup mieux comme tu peux le voir


    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      bonjour,

      Ici, le VBA ne fait que passer la requête SQL au moteur de base de données, c'est ce moteur (Microsoft Jet, donc Access), et non le VBA, qui aurait un SQL éventuellement non standard.

      Sans métacaractère, le "like" se comporte comme "=", je propose plutôt ceci:

      texte_SQL = _
          "SELECT " & Champ & " FROM [" & Table & "] WHERE " _
          & Champ & " like '%" & Sondage & "%' And " _
          & Champ & " like '%Z%' "
      0
      1. Utilisateur anonyme > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         

        Ha oui zut, j'ai oublié les %, au temps pour moi

        1
      2. bassmart Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   1 > Utilisateur anonyme
         

        Bonjour Whismeril,

        J'ai tester et ça fonctionne parfaitement!

        Merci beaucoup pour ton aide!

        0
      3. Utilisateur anonyme > bassmart Messages postés 281 Date d'inscription   Statut Membre Dernière intervention  
         

        Ben pour le coup, c'est yg_be qui a donné la bonne réponse ;)

        0
      4. bassmart Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   1 > Utilisateur anonyme
         

        Ah ben oui! 

        Merci yg_be pour le coup!

        0
  3. Martin
     

    Bonjour Whismeril,

    Désolé pour le délai de réponse, je n'avais pas vu ta question avant!

    Oui, c'est bien ça! Je vais tester ça lundi prochain et je te reviens.

    Merci beaucoup!

    0