Bonjour à tous,
J'utilise la méthode dite ADO trouvée sur le site de Boisgontier : Formation Excel VBA JB
J'arrive à afficher les données de ma table distante dans mes trois Combobox.
La première est bien triée et ne contient pas de doublon, par contre les deux autres ne le sont pas.
Je sais que c'est la fonction "Group By" qui permet cela mais je n'arrive pas à définir celle-ci dans mes autres combobox.
Je vous donne mon code, si quelqu'un aurait déjà rencontré ce cas ou aurait une idée.
Je vous remercie d'avance.
J'utilise la méthode dite ADO trouvée sur le site de Boisgontier : Formation Excel VBA JB
J'arrive à afficher les données de ma table distante dans mes trois Combobox.
La première est bien triée et ne contient pas de doublon, par contre les deux autres ne le sont pas.
Je sais que c'est la fonction "Group By" qui permet cela mais je n'arrive pas à définir celle-ci dans mes autres combobox.
Je vous donne mon code, si quelqu'un aurait déjà rencontré ce cas ou aurait une idée.
Je vous remercie d'avance.
Code:
Dim répertoire
Dim fichier
----------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
'Microsoft ActiveX Data Object 2.8 doit être activé
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
répertoire = "mon répertoire"
fichier = "mon fichier.xls"
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & répertoire & fichier
Set rs = cnn.Execute("SELECT client FROM BD WHERE client<>''Group By client")
Me.Client.List = Application.Transpose(rs.GetRows)
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
----------------------------------------------------------------------------------
Private Sub Client_Change()
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & répertoire & fichier
Set rs = cnn.Execute("SELECT Prestation FROM BD WHERE Client='" & Me.Client & "'")
Me.Prestation.List = Application.Transpose(rs.GetRows)
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
Me.Prestation.SetFocus
Me.Prestation.ListIndex = -1
Me.Dossier.ListIndex = -1
End Sub
----------------------------------------------------------------------------------
Private Sub Prestation_Change()
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & répertoire & fichier
Set rs = cnn.Execute("SELECT Dossier FROM BD WHERE Client='" & Me.Client & "'")
Me.Dossier.List = Application.Transpose(rs.GetRows)
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
Me.Dossier.SetFocus
Me.Dossier.ListIndex = -1
End Sub
Dernière édition: