2014-09-08 1 views
1

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:

+0

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 & "'" ' –

Répondre

0

Il me semble que tout ce que vous êtes besoin est: Si vous êtes désireux de créer une requête avec le nom de la requête comme le nom de la table

Dim qdf As QueryDef 
Set qdf = CurrentDb.CreateQueryDef("newQuery1", "SELECT * FROM [" & Me.Combo3 & "]") 

obtiendra une erreur, car vous ne pouvez pas avoir une table et une requête nommées identiques.

+0

Yup, ça l'a fait Merci La syntaxe était définitivement désactivée et on dirait que j'ai encore quelques lectures à faire pour la partie SQL VBA. . – user4020075

Questions connexes