bonjour tout le monde
c pour la premiere fois que j'utilise vba pour excel,!!! j'ai utilser un bouton dans un userform: pour lire ensuite afficher les donnée une fois selectionnéés. mais j'ai probleme avec la syntaxe sql, j'ai essayé toutes les syntaxe que j'ai trouvé sur le net mais ça marche pas alors svp aidez moi je suis bloqué!!!
sans l'instruction where ça marche bien,,??????????????????????? merci
voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Private Sub CommandButton1_Click() Dim cn As ADODB.Connection Dim Fichier As String Dim leNom As String Dim NomFeuille As String, texte_SQL As String Dim rsT As ADODB.Recordset 'Initialization des variables leNom = "HABITAT" 'Définit le classeur fermé servant de base de données 'Fichier = "S:\LYNDAYAKOUBEN\DONNEES.xls" Fichier = Me.TextBox1.Text 'Nom de la feuille dans le classeur fermé NomFeuille = Me.TextBox2.Text Set cn = New ADODB.Connection '--- Connection --- With cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & Fichier & _ ";Extended Properties=""Excel 8.0;HDR=yes""" .Open End With '----------------- 'Définit la requête. '/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille. texte_SQL = " SELECT * FROM [" & NomFeuille & "$] " & _ " WHERE [" & NomFeuille & "$].MARCHE = '" & leNom & "' " Set rsT = New ADODB.Recordset Set rsT = cn.Execute(texte_SQL) '--- Boucle sur les entêtes pour récupérer les noms --- For i = 0 To rsT.Fields.Count - 1 Cells(1, i + 1) = rsT.Fields(i).Name Next i '----------------------------------------------------- 'Ecrit le résultat de la requête dans la cellule A2 Range("A2").CopyFromRecordset rsT '--- Fermeture connexion --- cn.Close Set cn = Nothing End Sub
Partager