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!

A voir également:

3 réponses

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
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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 

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
Utilisateur anonyme > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 

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

1
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
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
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
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