IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Requête SQL- > VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Par défaut Requête SQL- > VBA
    Bonjour à tous,

    Je souhaiterais crééer parametrer une requête (notamment le nom de la table) en vba.
    Ci- dessous ma "sub":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Public Sub RunSplitMargeFI(nom_table1 As String)
     
    Dim bd As DAO.Database
    Set bd = CurrentDb
     
    Dim SigmaProvTech1 As DAO.QueryDef
     
     
    Set SigmaProvTech1 = bd.CreateQueryDef("SigmaProvTech1_VB", "SELECT DISTINCT " & nom_table1 & ".[Legal], " & nom_table1 & ".Reinsurance, " & nom_table1 & ".Partner, " & nom_table1 & ".Risk, Sum((" & nom_table1 & ".[Champ1] + " & nom_table1 & ".[Champ4] - " & nom_table1 & ".[Champ2] )/2) AS TotalReservesBase1" _
     
    & "FROM " & nom_table1 & "" _
    & "GROUP BY " & nom_table1 & ".[Legal], " & nom_table1 & "" _
    & ".Reinsurance, " & nom_table1 & ".Partner, " & nom_table1 & ".Risk")
    Lorsque j'appelle la procédure, l'erreur générée est la suivante : " Erreur 3141: Dans l'instruction SELECT, un mot reservé ou un argument est mal orthographié ou absent, ou la ponctuation est incorrecte. "

    Ce n'est pourtant pas la première requête de ce type que j'écris, mais je n'arrive toutefois pas à comprendre d'où vient le bug sachant que cette même requête a été préalablement testée en SQL avant de la retranscrire en VBA.

    Merci d'avance pour votre aide.

    Louis.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    peux-tu nous montrer ce qui ressort de la concaténation des variables avec un Debug.Print stp ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    salut,
    peux-tu nous montrer ce qui ressort de la concaténation des variables avec un Debug.Print stp ?

    Oui biensûr pour le log . en fait j'ai mis une version "agrégée" de la requête car celle-ci est plutôt longue, toutefois je te met le log des 2 versions (sachant que c'est sur la deuxième que ca plante) :

    V1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    SELECT DISTINCT Table.[Legal], Table.Reinsurance, Table.Partner, Table.Risk, Sum((Table.[Champ1] + Table.[Champ4] - Table.[Champ2] )/2) AS TotalReservesBase1 FROM Table GROUP BY Table.[Legal], Table.Reinsurance, Table.Partner, Table.Risk
    V2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT DISTINCT Table.[Legal], Table.Reinsurance, Table.Partner, Table.Risk, Sum((Table.[Champ1] + Table.[ChaSELECT DISTINCT Table.[Legal entity], Table.Reinsurance, Table.Partner, Table.Risk, Sum((Table.[IBNR bop] + Table.[IBNR eop] + Table.[RBNS bop] + Table.[RBNS eop] + Table.[Claim handling reserve bop] + Table.[Claim handling reserve eop] + Table.[UPR bop]+Table.[UPR eop]+Table.[Unexpired Risk Reserve bop] + Table.[Unexpired Risk Reserve eop] + Table.[Active Life Reserve bop]+Table.[Active Life Reserve eop] + Table.[Mathematical Reserve bop] + Table.[Mathematical Reserve eop]+Table.[Premium Accruals bop] + Table.[Premium Accruals eop] - Table.[Dac bop] - Table.[Dac eop])/2) AS TotalReservesBase1FROM TableGROUP BY Table.[Legal entity], Table.Reinsurance, Table.Partner, Table.Risk
    mp4] - Table.[Champ2] )/2) AS TotalReservesBase1 FROM Table GROUP BY Table.[Legal], Table.Reinsurance, Table.Partner, Table.Risk
    Merci pour ton aide !

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    bon ben faut revoir la V2, car IMO, elle ne passe pas même sous l'IHM Access
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Par défaut
    La "revoir", dans quel sens ? Et question sans doute bête mais c'est quoi "IMO" et "IHM" ???

    Merci encore !

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    la revoir ca signifie qu'elle est fausse, regarde le contenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Table.[ChaSELECT DISTINCT...
    qui me parait peu viable

    pour les noms, pardon, c'est du jargon :
    - IMO = "In My Opinion" en anglais, soit "A Mon Avis" (AMA)
    - IHM = "Interface Homme Machine", ton environnement utilisateur, les fenetres Access dans lesquelles tu évolues.


    edit : de plus, le nom table est un nom dédié et spécifique au langage SQL, tu ne peux pas l'utiliser comme nom de variable.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 72
    Par défaut
    & "FROM " & nom_table1 & "" _
    & "GROUP BY " & nom_table1 & ".[Legal], " & nom_table1 & "" _
    & ".Reinsurance, " & nom_table1 & ".Partner, " & nom_table1 & ".Risk")

    Ne manque t-il pas un ";" ici = ".Risk";)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête SQL en VBA
    Par taisherg dans le forum VBA Access
    Réponses: 1
    Dernier message: 08/06/2007, 15h36
  2. Requête SQL en VBA
    Par e040098k dans le forum VBA Access
    Réponses: 14
    Dernier message: 27/04/2007, 11h50
  3. Réponses: 6
    Dernier message: 15/02/2007, 13h46
  4. Récupérer la valeur des champs calculés dans une requète SQL dans vba
    Par FrédéricCM dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 28/06/2006, 16h29
  5. Conversion d'une requête SQL en VBA
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 26/10/2004, 17h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo