2010-08-05 10 views
0

J'ai une requête qui s'exécute dans une macro Excel qui a été modifiée et je n'arrive pas à comprendre comment modifier le code dans la macro. La requête originale est:Requête MSQuery modifiée dans Excel

Avec ActiveSheet.QueryTables.Add (connexion: = Array (Array (_ "ODBC; DSN = MS Access base de données; DBQ =" & strPath & « ; DriverID = 25; = MS Access FIL ; MaxBufferSize = 2048; PageTimeout "_ ), Array ("= 5;")), Destination: = Range ("A1")) .CommandText = Array (_ " SELECT 8MR Final .plan, 8MR Final .Superficie, 8MR Final .Track, 8MR Final. 1 MR Report .SEGMENT, 8MR Final. Seg Begin, 8MR Final. Seg End, 8MR Final. Track Category, 8MR Final .Composant, 8" _ , _ "MR Final .ID, 8MR Final. Defect Desc, 8MR Final .Mes, 8MR Final. Def Begin Sta, 8MR Final. Def End Sta, 8MR Final. Rail, 8MR Final .Standard, 8MR Final. Work Action, 8MR Final .Quanti "_ , _ " ty, 8MR Final .UM, 8MR Final. Unit Cost, 8MR Final. Ext Cost, 8MR Final .Commentaires "& Chr (13) &" "& Chr (10) &" FROM " & strpath & ". 8MR Final8MR Final "_ )

La nouvelle requête a rejoint en elle et un paramètre peut-il être exécuté dans une macro Comment puis-je changer pour exécuter dans la macro Nouvelle requête de l'accès est:.?.

SELECT [1 MR Report] .Plan AS PlanDesc, [1 MR Report] .Area, [1 MR Report] .Track, [1 MR Report] .Segment, [1 Rapport MR]. [Seg Begin], [1 MR Report ] [Seg End], [1 MR Report]. [Track Category], [1 MR Report] .Composant, [7Meas] .ID, [1 MR Report]. [Defect Desc], [7Meas] .Meas, [ 1 MR Report]. [Def Begin Sta], [1 MR Report]. [Def End Sta], [1 MR Report] .Rail, [1 MR Report] .Standard, [1 MR Report]. [Action de travail], [1 MR Report] .Quantité, [1 MR Report] .UM, [1 MR Report]. [Coût unitaire], [1 MR Report]. [Ext Cost], [7Mois] .Commentaires DE [1 MR Report] LEFT JOIN 7Mois ON ([1 MR Report] .Segment = [7Meas] .Segment) ET ([1 MR Report] .Defect = [7Meas] .Defect) ET ([1 MR Report]. [Def Begin Sta] = [7Mes] .Loc) OERE ((((([Rapport de 1 MR] .Key) = [userplankey])) ORDER BY [1 MR Report] .Plan, [1 Rapport MR] .Area, [1 MR Report] .Track, [1 Rapport MR] .Segment, [1 MR Report]. [Seg Begin], [1 MR Report] .Composant, [7Mes] .ID, [1 MR Report]. [Défaut Desc ], [1 MR Report]. [Def Begin Sta], [1 MR Report]. [Action de travail];

J'ai trouvé comment obtenir le paramètre de la feuille de calcul et le placer dans une variable globale, mais j'ai du mal à convertir la requête. J'en ai besoin pour courir de la même façon si possible. Merci d'avance pour toute aide et suggestions.

Lora

Répondre

0

Essayez de le faire en morceaux.

Commencez avec un champ dans la clause SELECT et la clause FROM. Voyez si vous pouvez le faire fonctionner. Si ce n'est pas le cas, réduisez les jointures dans la clause FROM jusqu'à ce que vous puissiez le faire fonctionner, puis ajoutez chaque jointure individuellement.

Ajoutez ensuite chaque champ dans la clause SELECT jusqu'à ce que vous ayez tous les éléments, puis ajoutez des conditions dans la clause WHERE et laissez la clause ORDER BY pour la fin.

En outre, pensez à aliaser les tables dans la clause FROM afin de faciliter la lecture.