3
J'essaie de créer une liste déroulante qui, en changeant la sélection de la liste d'options, lancera une requête qui insèrera les résultats de la requête dans la page. Voici ce que j'ai jusqu'à présent:Comment exécuter une requête SQL à partir d'Excel dans VBA lors de la modification d'une liste déroulante
Sub DropDown1_Change()
Dim dbConnect As String
Dim leagueCode As String
Dim leagueList As Range
Dim leagueVal As String
Dim TeamData As String
Set leagueList = Worksheets("Menu Choices").Range("A5:A10")
Set leagueVal = Worksheets("Menu Choices").Cell("B1").Value
leagueCode = Application.WorksheetFunction.Index(leagueList, leagueVal)
TeamData = "SELECT DISTINCT(Teams.teamID), name FROM Teams WHERE lgID = '" & leagueCode & "' & ORDER BY name ASC"
With Worksheets("Menu Choices").QueryTables.Add(Connection:=dbConnect, Destination:=Worksheets("Menu Choices").Range("D5"))
.CommandText = TeamData
.Name = "Team List Query"
.Refresh BackgroundQuery:=False
End With
End Sub
Qui a des suggestions pour le faire fonctionner? Merci d'avance!
Qu'est-ce que dbConnect? Avez-vous vu http://msdn.microsoft.com/en-us/library/bb178808(office.12).aspx? Vous devriez changer la ligne leagueval pour lire: 'leagueVal = Worksheets (" Menu Choices "). Range (" B1 "). Value': Set est seulement utilisé avec des objets, pas des chaînes. Votre instruction SQL est également incorrecte. – Fionnuala
Merci d'avoir saisi le numéro leagueVal, c'était juste un code de frustration et je ne l'ai pas remarqué quand je l'ai posté ici. dbConnect est utilisé pour transmettre la chaîne de connexion d'une autre fonction à la requête. Merci pour le lien - Je vais vérifier cela ce soir et voir si cela aide. Juste entrer dans ce genre de fonctionnalité avec VBA (et VBA en général) de sorte que vos commentaires sont très appréciés. – OpenDataAlex