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 :

Export d'une Requête temporaire vers Excel


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut Export d'une Requête temporaire vers Excel
    Bonjour,

    Excel me résiste !
    Dans un formulaire, je dispose de plusieurs boîtes à texte qui me permettent de saisir des critères de recherche. Cette recherche porte sur les données d'une requête.
    En gros, sur les 5000 lignes de la table, par les critères (activés avec des cases à cocher), je peux parvenir à n'en sortir qu'une seule ou bien 4000 (par exemple). Ces lignes apparaissent dans ce même formulaire, dans un tableau listant les résultats. Voici le code propre menant à cette liste :

    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 Form_Load()
     
    Dim ctl As Control
     
    For Each ctl In Me.Controls
        Select Case Left(ctl.Name, 3)
            Case "chk"
                ctl.Value = -1
     
            Case "lbl"
                ctl.Caption = "- * - * -"
     
            Case "txt"
                ctl.Visible = False
     
            Case "cmb"
                ctl.Visible = False
     
        End Select
    Next ctl
     
    Me.lstResults.RowSource = "SELECT CP, SN, Ti, Au, Pa, Concat, Pp, Pe, Th FROM ConcatCo;"
     
    Me.lstResults.Requery
     
    End Sub
    Puis

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQLWhere As String
     
    SQL = "SELECT CP, SNT, Au, Pa, Concat, Pp, Pe, Th FROM ConcatCo Where ConcatCo!CP <> 0 And not ConcatCo!Concat like '    -' "
     
    If Not Me.chkTp Then
        SQL = SQL & "And ConcatCo!Th = '" & Me.cmbRechTp & "' "
    End If
    If Not Me.chkFa Then
        SQL = SQL & "And ConcatCo!Pe = '" & Me.cmbRechFa & "' "
    End If
    If Not Me.chkAn Then
        SQL = SQL & "And ConcatCo!Pa like '*" & Me.txtRechAn & "*' "
    End If
    If Not Me.chkAu Then
        SQL = SQL & "And ConcatCo!Au like '*" & Me.txtRechAu & "*' "
    End If
    If Not Me.chkTi Then
        SQL = SQL & "And ConcatCo!SNT like '*" & Me.txtRechTi & "*' "
    End If
    If Not Me.chkRe Then
        SQL = SQL & "And ConcatCo!Pp like '*" & Me.txtRechRe & "*' "
    End If
    If Not Me.chkCo Then
        SQL = SQL & "And ConcatCo!Concat like '*" & Me.txtRechCo & "*' "
    End If
     
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     
    SQL = SQL & "ORDER BY SNT, Au, Pa, Concat, Pp;"
     
    Me.lblStats.Caption = DCount("*", "ConcatCo", SQLWhere) & " occurences"
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery
    Comment exporter, s'il vous plaît, cette liste temporaire vers Excel ?


    Merci par avance,
    Bk

    End Sub

  2. #2
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 86
    Points : 85
    Points
    85
    Par défaut
    Bonjour,

    Ca relève plus d'Excel que d'Access.

    Mais déjà fait, donc je vais t'indiquer la bonne direction.

    Il y a un moyen, sur Excel, qui permet d'établir une requête SQL vers une base de données (testées et approuvées sur Sybase, ça se fait aussi très bien vers Access), au moyen d'une liaison ODBC ==> MSQUERY.

    L'astuce consiste à enregistrer une macro quand tu fais la manip.

    La macro enregistrera les différentes informations pour joindre la base de données en question.

    La beauté de la chose, c'est que l'enregistrement de la macro aura même enregistré où renvoyer les données donc ton code sera immédiatement utilisable.

    Il ne te reste plus qu'à trouver dans ce code l'endroit où la requête SQL est stockée.
    Tu la remplaces par une variable que tu passes en paramètre d'une fonction/procédure.

    Et après, tu te fais une fonction à part qui te créer la chaine de ta requête (histoire de rester lisible) => ce sera le paramètre quand tu appelles ta procédure de connexion à la base.

    Cordialement,
    Delioneras

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut Autre idée ?
    Merci Delioneras, pour ta rapide réponse. Seulement devant ta proposition, j'ai pour problème le fait de ne pouvoir rien installer sur mon pc puisqu'il s'agit de celui de l'entreprise (verrouillé).
    Une autre idée s'il vous plaît ?

  4. #4
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 86
    Points : 85
    Points
    85
    Par défaut
    Installation ?

    Quelle installation ?

    Je croyais que tu avais Excel et Access déjà sur ton poste.

    Cordialement,

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    Cf ton lien.

    Pour le reste, je suis en train de regarder pour monter une macro côté Excel, mais là, je suis une bille (qui roule, roule, roule)

  6. #6
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 86
    Points : 85
    Points
    85
    Par défaut
    Je viens de vérifier le lien que j'ai passé.

    Il propose de télécharger un fichier zip, dans lequel se trouve un fichier pdf (le tutoriel sur MSQUERY), et les deux fichiers Excel en exemple.

    En soi, il n'y a rien à installer.

    Mais c'est peut-être le téléchargement qui pose un problème de sécurité ?
    Je vais voir si je trouve un tutoriel web.

    ==> http://office.microsoft.com/fr-fr/ex...010099664.aspx
    En direct de Microsoft \o/

    Cordialement,

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/11/2010, 19h42
  2. export d'une table postrges vers excel
    Par YOYO1970 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/03/2010, 17h23
  3. Exporter une requête SQL vers excel
    Par Info_76 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/08/2007, 09h09
  4. Exportation d'une requete SQL vers excel
    Par snooopy007 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 27/07/2006, 17h00
  5. [Excel] Exportation d'une requête vers Excel via PHP
    Par Foudébois dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 17/05/2006, 16h46

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