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

Requêtes et SQL. Discussion :

Modifier SQL requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre émérite Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Par défaut Modifier SQL requête
    Bonjour,

    J'ai la demande utilisateur suivante :

    à partir d'un domaine de données (requête) soit 52 champs, l'utilisateur veut pouvoir sélectionner un nombre de champs qui peut varier selon ces besoins. Cela peut-être 2, 3, 10, 20 ou tout pour exporter vers Excel.

    Donc, à partir d'un formulaire indépendant, avec des chkbox, l'utilisateur choisit les champs qu'il veut pouvoir exporter dans la requête.
    Sur un btn de validation, le SQL de la requête initiale est modifié puis exporter.

    Mon problème tient au nbr de possibilités de cas à gérer.

    Qu'en pensez-vous ?

    Merci pour vos éclairages...

    SE

  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 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    bonjour,
    j'ai une proposition à te faire, mais il faut que les champs de la table soit effectivement numéroté d'une part, et que les nom des chckbox aussi.

    idée :
    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
     
    Dim strSQL As String
    Dim RS as DAO.recordSet
     
    strSQL ="SELECT "
     
    for i = 1 to 52
    if Me.Controls("checkbox_" & i).value Then
    if Len(StrSQL)>7 Then 
    strSQL = strSQL & ", champsnum " & i
    Else
    strSQL = strSQL & " champsnum " & i
    End if
    End if
    Next i
    StrSQL= " FROM MaTable;"
    Set RS= CurrentDb.Openrecordset(StrSQL)
    'utilisation de Range.CopyFromRecordset RS
    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 (3e édition)
    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 émérite Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Par défaut
    Je te remercie pour ta réponse.

    J'utilise une requête multitable.

    Alors je dois pouvoir créer une table temporaire avec tous les champs de la requête.
    Mais est-ce que j'associe à chaque champ de la table temp un numéro en relation avec le numéro de la chkbox ?

    Ai-je bien compris le sens de ta proposition ?

    SE

  4. #4
    Membre émérite Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Par défaut
    Je viens de faire des tests selon ce que j'avais compris à savoir création d'une table temporaire en redéfinissant les noms de champs et ça fonctionne bien.

    Merci beaucoup pour cette pertinente proposition.

    Un seul petit hic demeure, c'est le nom des champs dans la feuille Excel après export. J'ai comme en têtes de colonnes des noms peu explicites : champ1, champ2, etc...

    Est-il possible d'arranger ça ? Sinon encore merci...

    SE

  5. #5
    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 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    oui bien sur,
    dans ton fichier excel, tu sais que le champs1 va aller en colonne A, champs2 en B,etc. tu peux renommer les cellules A1,B1 etc. selon les noms des colonnes que tu veux
    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 (3e édition)
    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

  6. #6
    Membre émérite Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    tu peux renommer les cellules A1,B1 etc. selon les noms des colonnes que tu veux
    N'est-il pas possible de le faire directement sur la requête nouvellement créée ?
    Il est possible en DAO de modifier les noms de champs d'une table. Je n'ai rien trouvé pour une requête...

    SE

  7. #7
    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 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    bonjour, si tu peux, mais avec ton énoncé, ca va être très long, dans la mesure où tu a la possibilité de faire "champ1 AS Nom_voulu", mais tu devras àç nouveau traité au cas par cas...
    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 (3e édition)
    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

  8. #8
    Membre émérite Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Par défaut
    Bonjour,

    Ok, je vais voir cela directement sous Excel.
    Merci encore pour ton aide et bonne semaine.

    SE

  9. #9
    Membre émérite Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Par défaut
    Bonjour,

    Je reviens tardivement sur ce post pour donner la solution que j'ai trouvée (perfectible) :
    Un seul petit hic demeure, c'est le nom des champs dans la feuille Excel après export. J'ai comme en têtes de colonnes des noms peu explicites : champ1, champ2, etc...
    à partir du sql crée, on crée une table sur laquelle ont teste l'existence de chacun des champs ; si le champ existe on le renomme ; puis on exporte la table vers Excel.
    Le traitement est assez long mais cela fonctionne bien.

    SE

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

Discussions similaires

  1. modifier une requête en fonction de l'instruction SQL
    Par garsflo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 24/05/2007, 21h12
  2. Modifier une Requête SQL
    Par CharleLéo dans le forum Bases de données
    Réponses: 5
    Dernier message: 04/02/2007, 13h27
  3. Réponses: 13
    Dernier message: 03/01/2006, 10h56
  4. [Crystal Report 10]Modifier la requête SQL
    Par gwen-al dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 09/11/2004, 10h21
  5. [Crystal Reports 9] Modifier la requête SQL d'un état
    Par VVE dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 21/10/2003, 10h47

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