Comment faire une requête VBA SQL à deux critères
Résolubassmart 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!
- Comment faire une requête VBA SQL à deux critères
- Comment faire deux colonnes sur word - Guide
- Deux ecran pc - Guide
- Nombre de jours entre deux dates excel - Guide
- Deux whatsapp sur un téléphone - Guide
- Comment connecter psp a deux - Forum PSP
3 réponses
Bonsoir
quand tu dis "critère Sondage", tu veux dire le champ NO_Sondage ou un autre champ qui s'appelle Sondage?
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
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%' "