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 :

Appliquer une requete sql a une table


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut Appliquer une requete sql a une table
    Bonjour à tous.

    J'ai créé un formulaire qui permet de parcourir le disque pour allé chercher des fichiers textes et les importer sous forme de table.
    Jusque là tout se passe à merveille.
    Cependant j'aimerais que lorsque l'utilisateur pousse sur le bouton créant la table à partir du fichier texte une requete SQL s'execute sur cette table et renvoye cette table sous une autre forme.
    La requete SQL est un "SELECT ... FROM ... WHERE ... GROUP BY", elle fonctionne parfaitement en tant que query avec une table importée manuellement.

    Comment l'incorporer dans mon code VB afin qu'elle agisse directement sur le fichier texte transformé en table que l'utilisateur importe.

    Si j'ai bien compris il faut utiliser la bibliothèque DAO avec les Recordset, ca ne bloque pas lorsque je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oRst = CurrentDb.OpenRecordset(sSQL)
    Mais je ne sais pas comment tout retransférer sous forme d'une nouvelle table

    Merci pour tout.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 95
    Par défaut
    Il faut suivre où se déplace tes posts....

    Bon alors pour le vba ça doit être :
    à la place d'un docmd.execute... je ne suis pas sûr. mais tu peux essayer.

    Coin.

  3. #3
    Membre averti
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut
    Citation Envoyé par Coin Voir le message
    Il faut suivre où se déplace tes posts....

    Bon alors pour le vba ça doit être :
    à la place d'un docmd.execute... je ne suis pas sûr. mais tu peux essayer.

    Coin.
    De ce que j'ai lu la commande RunSQL ne s'utilise que pour Modify, Update, Insert dans la requete SQL. Je retest directement et j'update !
    EDIT:

    En effet il me fait une erreur du type :
    "
    Run-time error 2432 : A RunSQL Action requires an argument consisting of an sql statement

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 95
    Par défaut
    tu peux mettre ton code STP avec la valeur de ssql + runSQL + déclaration variable...,

    afin que se soit plus clair, et plus simple pour quelqu'un qui vient de rejoindre le post...

    Merci.

  5. #5
    Membre averti
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut
    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
    26
    Private Sub Toggle9_Click()
     
    DoCmd.TransferText acImportDelim, "iopi", Text10.Value, TextBox1.Value
     
     
    Dim oRst As DAO.Recordset
    Dim oDb As DAO.Database
    Dim fld As DAO.Field
    Dim sSQL As String
    Dim blop As QueryDef
     
    sSQL = "INSERT INTO maTable 
    SELECT t.AA, Sum(t.C) AS AAR, (SELECT Sum(t2.C) AS ABR
    			FROM Test t2
    			Where t.AA = t2.AB
    			GROUP BY AB) as AAB
    FROM Test t
    GROUP BY AA"
     
    Set oRst = db.OpenRecordset(sSQL)
     
    oRst.Close
     
    DoCmd.OpenTable Text10.Value
     
    End Sub
    La première ligne permet de créer une table à partir d'un fichier texte.
    Toutes les déclarations ne sont pas utiles.
    Le sSQL fonctionne parfaitement en requete sur une table donnée.
    Je pense que il faut utiliser les RecordSet.
    La dernière ligne permet d'afficher la table.

    Merci !

  6. #6
    Membre averti
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut
    J'ai réussi !

    Voici ce qu'il faut utiliser !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CurrentDb.CreateQueryDef "testerReq", sSQL
    DoCmd.OpenQuery "testerReq", acViewNormal, acReadOnly

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 11/08/2009, 14h43
  2. optimisé une requete SQl avec une requete imbriqués
    Par fabien14 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/01/2009, 10h01
  3. Mettre une condition if dans une requete sql
    Par Sardonnen dans le forum Oracle
    Réponses: 4
    Dernier message: 24/03/2006, 11h25
  4. Importer valeur requete SQL dans une Requete
    Par qbihlmaier dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/03/2006, 14h24
  5. [JDBC][SQL] Parser une requête SQL
    Par tomca dans le forum JDBC
    Réponses: 11
    Dernier message: 24/10/2005, 23h13

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