Bonjour à tous;
Voici mon problème que je vais essayer d'expliquer simplement.
J'ai un userform avec:
Mon objectif est de créer une chaine SQL afin de filtrer des données dans un classeur fermé et d'insérer ces données dans une listbox.
J'ai une procédure pour compter le nombre de checkbox sélectionnées et en suite concatener les noms pour obtenir ma chaine de nom à rechercher dans ma requete SQL
Dans une seconde procédure je récupère ma chaine SQL (strsql) et le nombre de checkbox sélectionnées
Mon problème vient de
Je ne sais pas comment insérer ma variable strsql afin de remonter les valeurs correspondantes.
Lorsque je remplace strsql par un nom de champs il n'y a pas de problème je remonte bien des valeurs par contre en mettant le nom de ma variable j'ai des erreurs.
Si quelqu'un peut me donner des explications sur la syntaxe cela serai super.
En vous remerciant par avance.
Voici mon problème que je vais essayer d'expliquer simplement.
J'ai un userform avec:
un treeview
18 checkbox
une listbox
Mon objectif est de créer une chaine SQL afin de filtrer des données dans un classeur fermé et d'insérer ces données dans une listbox.
J'ai une procédure pour compter le nombre de checkbox sélectionnées et en suite concatener les noms pour obtenir ma chaine de nom à rechercher dans ma requete SQL
Code:
j = Empty
champs_valides = Empty
'compte les cases cochées
For Each ctrl In consultation.Controls
If TypeName(ctrl) = "CheckBox" _
Then
If ctrl.Value = True Then
champs_valides = champs_valides + 1
'crée la chaine de caractaire pour l'extraction sql
strsql = strsql & ctrl.Name & ", "
End If
End If
Next
'supprime le ' et l'espace en fin de chaine
strsql = Left(strsql, Len(strsql) - 2)
strsql = strsql & " "
Dans une seconde procédure je récupère ma chaine SQL (strsql) et le nombre de checkbox sélectionnées
Code:
BDD = ThisWorkbook.Path & "\BDD_devis.xls"
feuille = "BDD"
metier = tw.SelectedItem.parent.Text & " - " & tw.SelectedItem.Text
i = Empty
nbrenrg = Empty
liste.Clear
liste.ColumnCount = champs_valides
'connexion au classeur
Set cn = New ADODB.Connection
With cn
.Provider = "MSDASQL"
.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & "DBQ=" & BDD & ";ReadOnly=False;"
.Open
End With
recherche = ("SELECT " & strsql & " FROM [BDD$] WHERE lot = '" & metier & "'")
Set rsc = cn.Execute(recherche)
champs = Split(strsql, ", ")
n = 1
rsc.MoveFirst
While Not rsc.EOF
While champs(n) <> ""
liste.AddItem rsc!champs(n)
Wend
n = n + 1
Wend
cn.Close
Mon problème vient de
Code:
recherche = ("SELECT " & strsql & " FROM [BDD$] WHERE lot = '" & metier & "'")
Je ne sais pas comment insérer ma variable strsql afin de remonter les valeurs correspondantes.
Lorsque je remplace strsql par un nom de champs il n'y a pas de problème je remonte bien des valeurs par contre en mettant le nom de ma variable j'ai des erreurs.
Si quelqu'un peut me donner des explications sur la syntaxe cela serai super.
En vous remerciant par avance.
Dernière édition: