J'essaie de créer une base de données qui collecte simplement un tas d'autres tables liées sans lien, interrogeant chacune d'entre elles, puis créant une requête d'union. Pour accélérer le processus, je veux créer un formulaire qui permettra à l'utilisateur d'autoligner d'abord la table, une requête tirera la liste des tables qui seront ensuite sélectionnables dans un menu déroulant via une combobox . Maintenant, la prochaine partie du code devrait créer automatiquement une requête basée sur ce qui est sélectionné dans la liste déroulante, mais je ne suis pas sûr de savoir comment faire. IE:Créer une requête basée sur une zone de liste déroulante remplie de tables
Dim var1 As Object
Dim qdf As QueryDef
Dim sql As String
Dim db As Database
Set db = CurrentDb
Set var1 = Me.Combo3
Set qdf = db.CreateQueryDef("newQuery1", "SELECT * FROM var1")
Ce qui finit par se produire est qu'il crée la table appelée "Var1" qui n'existe évidemment pas. Je veux plutôt créer une requête du même nom de n'importe quelle table sélectionnée dans la liste déroulante. Je pense que c'est une question assez simple mais je suis très nouveau dans Access/VBA.
Dim qdf As QueryDef
Set qdf = CurrentDb.CreateQueryDef(Me.Combo3, "SELECT * FROM [" & Me.Combo3 & "]")
Cependant, vous:
Je n'ai jamais fait ce que vous essayez de faire, mais vous n'utilisez pas la variable 'var1' comme vous le pensez. Vous dites explicitement SELECT * FROM Var1. ** NOT ** SELECT * FROM myVariable. Si cela est possible, vous devrez concaténer votre variable dans votre chaîne SQL. Comme ceci: 'SELECT * FROM '" & var1 & "'" ' –