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

Macros et VBA Excel Discussion :

Lien Excel et base de données SQL sous vba [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Septembre 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 77
    Par défaut Lien Excel et base de données SQL sous vba
    Bonjour à tous,

    J'ai créé une macro qui me permet d'exécuter une requête SQL et d'importer les données sur Excel.
    Tout fonctionne bien sauf que lors de l'importation, les entetes ne sont pas importées.
    Connaissez vous la commande qui permet ça ?

    Je vous remercie par avance.


    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
    Sub Requête()
     
    Dim Login As String
    Dim pass As String
     
    Sheets("Extract").UsedRange.ClearContents
    Sheets("CPN1").Activate
     
    Login = Sheets("CPN1").Range("B1").Value
    pass = Sheets("CPN1").Range("B2").Value
     
     
    Dim x As ADODB.Connection
    Set x = New ADODB.Connection
     
    Dim r As ADODB.Recordset
    Set r = New ADODB.Recordset
     
    Dim Sql As String
     
    x.Open ("DRIVER={Sybase IQ}; CommLinks=TCPIP{host=" + "sybhost_iqdwfmtb" + ";port=" + "9000" + "}; DBN=; UID=" + _
            Login + "; PWD=" + pass + "; ENG=IX_DW_MO")
     
    Sql = "SELECT A.*, B.Nomenclature FROM vu_D1_Structure A, dim_TradeAsset B WHERE A.StructureId = B.StructureId"
     
    r.Open Sql, x
     
    Sheets("Extract").Range("A2").CopyFromRecordset r
     
    r.Close
    x.Close
     
    Set r = Nothing
    Set x = Nothing
     
    End Sub


    Cordialement,
    Freudsw

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Bonjour,

    Peut être que ceci pourrait aider :
    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
    37
    38
    39
    40
    41
    42
    Sub Requête()
     
    Dim Login As String
    Dim pass As String
    Dim Col_index As Integer
     
     
    Sheets("Extract").UsedRange.ClearContents
    Sheets("CPN1").Activate
     
    Login = Sheets("CPN1").Range("B1").Value
    pass = Sheets("CPN1").Range("B2").Value
     
     
    Dim x As ADODB.Connection
    Set x = New ADODB.Connection
     
    Dim r As ADODB.Recordset
    Set r = New ADODB.Recordset
     
    Dim Sql As String
     
    x.Open ("DRIVER={Sybase IQ}; CommLinks=TCPIP{host=" + "sybhost_iqdwfmtb" + ";port=" + "9000" + "}; DBN=; UID=" + _
            Login + "; PWD=" + pass + "; ENG=IX_DW_MO")
     
    Sql = "SELECT A.*, B.Nomenclature FROM vu_D1_Structure A, dim_TradeAsset B WHERE A.StructureId = B.StructureId"
     
    r.Open Sql, x
     
    Sheets("Extract").Range("A2").CopyFromRecordset r
     
    For Col_index = 0 To r.Fields.Count - 1
        Range("A1").Offset(0, Col_index).Value =r.Fields(Col_index).Name
    Next
     
    r.Close
    x.Close
     
    Set r = Nothing
    Set x = Nothing
     
    End Sub
    Bien cordialement,

    Poulpe

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Septembre 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 77
    Par défaut Parfait! Merci Mr Poulpe
    Re-Bonjour,

    Merci pour ta réponse rapide, cela fonctionne parfaitement.
    Il faut juste specifier au code dans quelle feuille coler les entêtes.

    Merci encore
    Cordialement,
    Freudsw

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/02/2009, 10h16
  2. importer feuille excel dans une base de données sql server
    Par abdelmajid_daosabah dans le forum ASP.NET
    Réponses: 5
    Dernier message: 05/05/2008, 13h37
  3. doc sur l'utilisation de bases de données SQL sous python
    Par moon93 dans le forum Général Python
    Réponses: 2
    Dernier message: 03/08/2007, 15h09
  4. base de donnée sql server vers excel
    Par yucf_miagiste dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/07/2007, 12h38
  5. perte focus lien base de données sql serveur
    Par prodi_64 dans le forum ASP
    Réponses: 1
    Dernier message: 13/05/2006, 00h20

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