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 :

OpenQuery, Select/Case, et paramètres


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 97
    Par défaut OpenQuery, Select/Case, et paramètres
    Bonjour,

    Je souhaiterais combiner les 3 :
    - avoir dans un formulaire un groupe d'option (1,2,3)
    - avoir une requête paramétrée (respectivement en valeur 1 et 2; 0;1,2et0)
    - le tout executable en VBA. Le nom de la requête est un recordset.

    ce qui me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Select Case ChoixTypeEcriture
     
    Case 1
        DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value, , , "TypeEcriture = 1 Or 2"
    Case 2
        DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value, , , "TypeEcriture = 0"
    Case 3
        DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value
     
    End Select
    je sèche !

    merci beaucoup

  2. #2
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    On peut faire simple avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     sql = "SELECT ......  WHERE  TypeEcriture = " & ChoixTypeEcriture
     DoCmd.RunSQL s
    par exemple

  3. #3
    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,
    ou alors garder cette méthodo mais en écrivant convenablement la partie critère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Select Case ChoixTypeEcriture
     
    Case 1
        DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value, , , "TypeEcriture = 1 Or TypeEcriture = 2"
    Case 2
        DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value, , , "TypeEcriture = 0"
    Case 3
        DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value
     
    End Select
    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

  4. #4
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    d'autant plus que runsql ne fonctionne qu'avec des requêtes actions

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 97
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    salut,
    ou alors garder cette méthodo mais en écrivant convenablement la partie critère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Select Case ChoixTypeEcriture
     
    Case 1
        DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value, , , "TypeEcriture = 1 Or TypeEcriture = 2"
    Case 2
        DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value, , , "TypeEcriture = 0"
    Case 3
        DoCmd.OpenQuery Monrecordset1!RqBrouillardCG.Value
     
    End Select
    Salut,

    Ca ne marche pas

    "Nombre d'arguments incorrects ou affectation de propriété incorrecte"

    Je précise que c'est une requête ajout, et que derrière il y a deux requetes sélection dont un possède ce fameux champ "typeEcriture", champ qui est bien sûr récupéré au niveau de la requête ajout

    je vais devenir chèvre...

  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
    ok,
    et si tu nous donnais le code sql de la requete que tu comptes ouvrir stp ?

    Ca fait un peu jeu de devinettes sinon
    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
    Juin 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 97
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    ok,
    et si tu nous donnais le code sql de la requete que tu comptes ouvrir stp ?

    Ca fait un peu jeu de devinettes sinon
    oui Chef !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO DONNEES_CG ( oidPIECE, [date], comptegen, montant, société, référence, referenceOrigine, typeEcriture )
    SELECT SOCIETEX_VUE_COMPTEGEN.oid, SOCIETEX_VUE_COMPTEGEN.dateReference, SOCIETEX_VUE_COMPTEGEN.codeCompte, SOCIETEX_VUE_COMPTEGEN.Solde, SOCIETEX_dbo_TETABLISSEMENT.code AS codeE, SOCIETEX_VUE_COMPTEGEN.reference, SOCIETEX_VUE_COMPTEGEN.referenceOrigine, SOCIETEX_VUE_COMPTEGEN.typeEcriture
    FROM SOCIETEX_dbo_TETABLISSEMENT INNER JOIN SOCIETEX_VUE_COMPTEGEN ON SOCIETEX_dbo_TETABLISSEMENT.oid = SOCIETEX_VUE_COMPTEGEN.oidEtablissement
    GROUP BY SOCIETEX_VUE_COMPTEGEN.oid, SOCIETEX_VUE_COMPTEGEN.dateReference, SOCIETEX_VUE_COMPTEGEN.codeCompte, SOCIETEX_VUE_COMPTEGEN.Solde, SOCIETEX_dbo_TETABLISSEMENT.code, SOCIETEX_VUE_COMPTEGEN.reference, SOCIETEX_VUE_COMPTEGEN.referenceOrigine, SOCIETEX_VUE_COMPTEGEN.typeEcriture;
    l'est-y pas joli mon sql ?

  8. #8
    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
    ok,
    donc là tu demandes à ouvrir une requête action

    pourquoi ne pas passer par une chaine de caractères ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Dim strSQL As String
    Dim Criteria As String
     
    Select Case ChoixTypeEcriture
     
    Case 1
        Criteria = "TypeEcriture = 1 Or TypeEcriture = 2"
    Case 2
         Criteria = "TypeEcriture = 0"
    Case 3
        Criteria = "1"
     
    End Select
     
    strSQL = "INSERT INTO DONNEES_CG ( oidPIECE, [date], comptegen, montant, société, référence, referenceOrigine, typeEcriture ) "  & _
    "SELECT SOCIETEX_VUE_COMPTEGEN.oid, SOCIETEX_VUE_COMPTEGEN.dateReference, " & _ 
    "SOCIETEX_VUE_COMPTEGEN.codeCompte, SOCIETEX_VUE_COMPTEGEN.Solde, SOCIETEX_dbo_TETABLISSEMENT.code " & _ 
    "AS codeE, SOCIETEX_VUE_COMPTEGEN.reference, SOCIETEX_VUE_COMPTEGEN.referenceOrigine, SOCIETEX_VUE_COMPTEGEN.typeEcriture " & _
    "FROM SOCIETEX_dbo_TETABLISSEMENT INNER JOIN SOCIETEX_VUE_COMPTEGEN ON SOCIETEX_dbo_TETABLISSEMENT.oid = SOCIETEX_VUE_COMPTEGEN.oidEtablissement " & _
    " WHERE " & Criteria & " " & _
    "GROUP BY SOCIETEX_VUE_COMPTEGEN.oid, SOCIETEX_VUE_COMPTEGEN.dateReference, SOCIETEX_VUE_COMPTEGEN.codeCompte, " & _
    "SOCIETEX_VUE_COMPTEGEN.Solde, SOCIETEX_dbo_TETABLISSEMENT.code, SOCIETEX_VUE_COMPTEGEN.reference, " & _
    "SOCIETEX_VUE_COMPTEGEN.referenceOrigine, SOCIETEX_VUE_COMPTEGEN.typeEcriture;"
     
    CurrentDb.Execute strSQL
    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

Discussions similaires

  1. Problème SELECT, CASE et Group by
    Par Royd938 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 03/10/2014, 07h41
  2. erreur select case
    Par maximedrouet dans le forum ASP
    Réponses: 4
    Dernier message: 15/05/2006, 14h40
  3. Probleme avec Select Case
    Par GeffD dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 07/03/2005, 15h28
  4. erreur select case
    Par maximedrouet dans le forum ASP
    Réponses: 12
    Dernier message: 06/01/2005, 15h33
  5. vérification de passage dans un select case
    Par arsgunner dans le forum ASP
    Réponses: 5
    Dernier message: 14/06/2004, 10h05

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