Fonction VBA
Bonjour
Je souhaite crée une fonction qui prend en paramètre une requetés , une destination de stockage de résultat de requeté et qui permet de remplir directement une Listbox , mon problème est dans le troisième paramètre ,
Si vous pouvez résoudre mon problème ou me proposer autre chose je vous serai reconnaissant
mon objectif est avoir une fonction qui prend en paramètre une requeté et une liste box et qui place le résultat de la requeté dans la lisBox
Merci
Ma Fonction :
Function RequetSelectDEX(Requet As String, Destination As MSForms.ListBox, Cherched As Variant)
Dim recTmp As Recordset
Dim cnn As Connection
Dim strSQL As String
Set cnn = New Connection
' Définition de la connexion
cnn.Provider = "Microsoft.ACE.OLEDB.12.0"
' Ouverture
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\pcfj672\Desktop\Tableau de bord\tbd.accdb;;Persist Security Info=False" 'Je defini un chêne de texte qui contient les information de ma connection
' Définition de la source
strSQL = Requet
' Ouverture de la source
Set recTmp = New Recordset
recTmp.Open strSQL, cnn
' Lecture de la source jusqu'à la fin
Do While Not recTmp.EOF
Destination.AddItem recTmp!Cherched
recTmp.MoveNext
Loop
recTmp.Close
Set recTmp = Nothing
End Function
L'appel de fonction :
Call RequetSelectDEX("SELECT DISTINCT DEX FROM Table1", Setting.ListBox1, DEX)
Bonjour
Pourquoi ne pas mettre le résultat de votre requête dans un onglet dans un premier temps
Ensuite le VBA parcourt votre liste ( 1 colonne par ex ) ligne par ligne en l'ajoutant dans la list box
Exemple
Sub Alimenter_listbox
'Recherche derniere ligne de produite renseignée en colonne A
Derniere_cellule_A = Range("A65536").End(xlUp).Row
For Each d In Sheets("Feuil1").Range("A2:A" & Derniere_cellule_A)
If d <> "" then
Listbbox1.additem d.value
End if
Nextcdt,
Bonjour , je n'arrive pas a récuperer les résultats de la requet SQL que je lance depuis excel , pour récuperer le résultat d'un select
Bon but et de lancer une requet de excel pour récuperer des élement de access dans excel
Merci pour votre aide
Sub SelectDEX()
Chaine = "C:\Users\pcfj672\Desktop\Tableau de bord\tbd.accdb"
Dim recTmp As recordSet
Dim cnn As connection
Dim strSQL As String
Set cnn = New connection
' Définition de la connexion
cnn.Provider = "Microsoft.ACE.OLEDB.12.0"
' Ouverture
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Chaine & ";;Persist Security Info=False" 'Je defini un chêne de texte qui contient les information de ma connection
' Définition de la source
'strSQL = "SELECT DISTINCT DO FROM Table1 where DEX='Occitanie'"
strSQL = "SELECT DISTINCT DO FROM Table1"
' Ouverture de la source
Set recTmp = New recordSet
recTmp.Open strSQL, cnn
Derniere_cellule_A = Range("A65536").End(xlUp).Row
For Each d In Sheets("Feuil1").Range("A2:A" & Derniere_cellule_A)
If d <> "" Then
recTmp.AddItem d.Value
End If
Next
' Lecture de la source jusqu'à la fin
Do While Not recTmp.EOF
Setting.ListBox1.AddItem recTmp!DO
recTmp.MoveNext
Loop
recTmp.Close
Set recTmp = Nothing
End SubBonjour
En pas a pas a quelle etape bloque t il ?
Cdt
Bonjour
En fait il faudrait deverser le contenu de votre requete c est a dire les valeurs ds une feuille.
Ensuite vous parcourez votre feuille et pour chaque valeur vous l ajoutez ds la listbox
Essayez ds ce sens et je regarderais si vous bloquez
Cdt
