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

Résolu
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 - Modifié le 15 déc. 2023 à 21:32
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 - 18 déc. 2023 à 20:38

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

Whismeril Messages postés 19032 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 avril 2024 931
15 déc. 2023 à 22:26

Bonsoir

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


0
Whismeril Messages postés 19032 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 avril 2024 931
16 déc. 2023 à 10:28

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 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
16 déc. 2023 à 17:21

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
Whismeril Messages postés 19032 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 avril 2024 931 > yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024
16 déc. 2023 à 23:50

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

1
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 1 > Whismeril Messages postés 19032 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 avril 2024
18 déc. 2023 à 13:58

Bonjour Whismeril,

J'ai tester et ça fonctionne parfaitement!

Merci beaucoup pour ton aide!

0
Whismeril Messages postés 19032 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 avril 2024 931 > bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023
18 déc. 2023 à 19:12

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

0
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 1 > Whismeril Messages postés 19032 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 avril 2024
18 déc. 2023 à 20:38

Ah ben oui! 

Merci yg_be pour le coup!

0

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