Excel Query from Access Query

Le
Bruno Campanini
I have an Access query that looks like this:

SELECT [1_GEN].F1,
Sum([1_GEN].[F2]+[2_FEB].[F2]) AS FF2,
Sum([1_GEN].[F3]+[2_FEB].[F4]) AS FF3,
Sum([1_GEN].[F4]+[2_FEB].[F4]) AS FF4,
Sum([1_GEN].[F5]+[2_FEB].[F5]) AS FF5,
Sum([1_GEN].[F6]+[2_FEB].[F6]) AS FF6,
[FF2]+[FF3]+[FF4]+[FF5]+[FF6] AS S
FROM 1_GEN
INNER JOIN 2_FEB ON [1_GEN].F1 = [2_FEB].F1
GROUP BY [1_GEN].F1;


I have transformed to Excel in this way:
SQL = "SELECT [GEN$A1:A100].F1,"
SQL = SQL & "Sum([GEN$A1:A100].F2 + [FEB$A1:A100].F2) AS FF2, "
SQL = SQL & "Sum([GEN$A1:A100].F3 + [FEB$A1:A100].F3) AS FF3,"
SQL = SQL & "Sum([GEN$A1:A100].F4 + [FEB$A1:A100].F4) AS FF4,"
SQL = SQL & "Sum([GEN$A1:A100].F5 + [FEB$A1:A100].F3) AS FF5,"
SQL = SQL & "Sum([GEN$A1:A100].F6 + [FEB$A1:A100].F4) AS FF6,"
SQL = SQL & "FF2+FF3+FF4+FF5+FF6 AS S "
SQL = SQL & "FROM [GEN$A1:A100] "
SQL = SQL & "INNER JOIN [FEB$A1:A100] ON [GEN$A1:A100].F1 [FEB$A1:A100].F1 "
SQL = SQL & "GROUP BY [GEN$A1:A100].F1;"

in order to run it, from Excel, with:
Set RS = xlDB.OpenRecordset(SQL, dbOpenDynaset)
Destination(2, 1).CopyFromRecordset RS

But it does'n work!
Eoor:
Two few parameters, expected 8.

The error seems to be in the four "Sum( expression.

Any suggestion?

Bruno
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
MichD
Le #26560770
Bonjour,
Regarde Í  cette adresse :
https://myengineeringworld.net/2013/10/access-queries-excel-vba.html
2 Méthodes : Importer le tout avec une requête dans la macro d'Excel ou
importer le résultat d'une requête déjÍ  existante dans Access.
Dans le bas de la page, tu peux télécharger un fichier exemple (excel +
access).
MichD
MichD
Le #26560771
Si ta requête fonctionne bien dans Access, pourquoi ne pas créer une
requête dans Access avec ton code et d'importer dans Excel le résultat
de cette requête. Tu as un exemple (2e code) de code sur le site suggéré.
MichD
Bruno Campanini
Le #26560788
MichD formulated the question :
Si ta requête fonctionne bien dans Access, pourquoi ne pas créer une requête
dans Access avec ton code et d'importer dans Excel le résultat de cette
requête. Tu as un exemple (2e code) de code sur le site suggéré.
MichD

I don't want ti import data from Access, I would get the result
of operation (with the data already in Excel) from Excel, using
a query, which is much speedier than a series of Loop.
The code for Excel is very simple as I have already written:
Set RS = xlDB.OpenRecordset(SQL, dbOpenDynaset)
Destination(2, 1).CopyFromRecordset RS
But I get error on the 5 line "Sum(..." of SQL sentence.
Bruno
MichD
Le #26560794
Le 24/11/20 Í  15:30, Bruno Campanini a écrit :
MichD formulated the question :
Si ta requête fonctionne bien dans Access, pourquoi ne pas créer une
requête dans Access avec ton code et d'importer dans Excel le résultat
de cette requête. Tu as un exemple (2e code) de code sur le site suggéré.
MichD

I don't want ti import data from Access, I would get the result
of operation (with the data already in Excel) from Excel, using
a query, which is much speedier than a series of Loop.
The code for Excel is very simple as I have already written:
Set RS = xlDB.OpenRecordset(SQL, dbOpenDynaset)
Destination(2, 1).CopyFromRecordset RS
But I get error on the 5 line "Sum(..." of SQL sentence.
Bruno

À cette adresse, tu as un exemple qui ressemble Í  ce que tu cherches.
https://stackoverflow.com/questions/44289124/excel-vba-adodb-sql-sum-if-data-matches
Mon expérience en SQL n'est pas assez grande pour pouvoir effectuer la
correction.
MichD
Poster une réponse
Anonyme