Bonjour,

Je me suis inscrit il y a peu, notamment pour suivre les tutoriels Access et je suis confronté à un problème que je n'arrive pas à résoudre.

Je créé différentes requêtes dans Access, qui me permettent de calculer différents items pour arriver à une requête finale que j'enverrai dans un tableau.

Néanmoins, certaines de mes requêtes posent un problème. Je peux les créer en mode Création et les exécuter, mais une fois enregistrées, impossible de repasser au mode création, et j'obtiens l'erreur suivante :

"Le moteur de base de données ne peut pas trouver " ". Assurez-vous que le nom de paramètre ou d'alias est valide, qu'il ne comprend pas de caractère ou de ponctuation incorrect et qu'il n'est pas trop long." Soit l'erreur 3125 sur laquelle Microsoft ne dit rien, c'est dire s'ils sont compétents...

Je suis donc obligé de travailler en mode SQL, ce qui n'est franchement pas très pratique sous Access... Je m'en accommode car, d'un certain côté, ça me permet d'apprendre les rudiments mais j'aimerai bien résoudre cette histoire afin que cela n'arrive pas aux potentielles personnes qui utiliseraient mon travail.

Pour bien illustrer, voici un exemple de 4 requêtes qui se suivent et dont la 4ème pose le problème dont il est question.

Requête 1 : X-ABAN-099-41-KDAD_ABO_on_PAbo_by_ADV

Une simple requête qui sélectionne les données de départ dont j'ai besoin.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT [TB_DTB_ODS DATA].[Advance Purchase Group], 
[TB_DTB_ODS DATA].[Booking Class], [TB_DTB_ODS DATA].[Fare Basis Code], 
Sum([TB_DTB_ODS DATA].[SEG TOT]) AS [SommeDeSEG TOT]
 
FROM [TB_DTB_ODS DATA]
 
GROUP BY [TB_DTB_ODS DATA].[Advance Purchase Group], 
[TB_DTB_ODS DATA].[Booking Class], [TB_DTB_ODS DATA].[Fare Basis Code]
HAVING ((([TB_DTB_ODS DATA].[Advance Purchase Group])<>"unavailable") AND (([TB_DTB_ODS DATA].[Booking Class]) Like "S" Or ([TB_DTB_ODS DATA].[Booking Class])="W") AND (([TB_DTB_ODS DATA].[Fare Basis Code]) Like "*RP*"));

Requête 2 : X-ABAN-099-42-KDAD_ABO_on_PAbo_grouped_by_ADV

Cette requête regroupe les données et fait la somme afin d'avoir une vue synthétique.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT [X-ABAN-099-41-KDAD_ABO_on_PAbo_by_ADV].[Advance Purchase Group], 
Sum([X-ABAN-099-41-KDAD_ABO_on_PAbo_by_ADV].[SommeDeSEG TOT]) AS [SommeDeSommeDeSEG TOT]
 
FROM [X-ABAN-099-41-KDAD_ABO_on_PAbo_by_ADV]
 
GROUP BY [X-ABAN-099-41-KDAD_ABO_on_PAbo_by_ADV].[Advance Purchase Group];

Requête 3 : X-ABAN-099-43-KDAD_TOT_SEG_ABO_on_PAbo


Cette requête me donne uniquement la somme totale de la colonne SommeDeSommeDe SEG de la requête 2.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT Sum([X-ABAN-099-42-KDAD_ABO_on_PAbo_grouped_by_ADV].[SommeDeSommeDeSEG TOT]) AS Total_Segment
 
FROM [X-ABAN-099-42-KDAD_ABO_on_PAbo_grouped_by_ADV];

Requête 4 : X-ABAN-099-44-KDAD_REPART_ABO_on_PAbo

Enfin, dans cette dernière requête, je calcule un pourcentage en divisant par ligne mes totaux de la requête 2 par le total général de la requête 3.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SELECT [CA].[Advance Purchase Group], 
[CA].[SommeDeSommeDeSEG TOT], 
[CA].[SommeDeSommeDeSEG TOT]/[CB].[Total_Segment] AS Repart
 
FROM [X-ABAN-099-42-KDAD_ABO_on_PAbo_grouped_by_ADV] AS CA, 
[X-ABAN-099-43-KDAD_TOT_SEG_ABO_on_PAbo] AS CB
 
GROUP BY [CA].[Advance Purchase Group], 
[CA].[SommeDeSommeDeSEG TOT], 
[CA].[SommeDeSommeDeSEG TOT]/[CB].[Total_Segment];
Pour information, cette erreur se génère souvent dès que j'utilise plusieurs requêtes en tant que base de référence pour créer une requête ou dès que je créé une requête dont les bases de références sont liées.

Merci d'avance si vous pouvez m'aider à résoudre ça.