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

DB2 Discussion :

Connection à DB2 avec Macro Vba


Sujet :

DB2

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 115
    Points : 85
    Points
    85
    Par défaut Connection à DB2 avec Macro Vba
    Bonjour à tous,

    je suis entrain de devélopper une application de gestion clients sur excel 2003. Il se trouve q'il y a des données sur DB2 dont j'ai impérativement besoin.

    Ma question est la suivante : A l'aide d'une macro (codes vba), comment ce connecter à une base DB2 et extraire les données pour les insérer dans un tableau excel?

    Merci de m'aider.

    Bon dev...
    Ce n'est qu'une proposition. Et je n'ai pas dit en de hors d'elle point de salut..

    C'est en forgeant qu'on devient forgeron...
    Faut jamais lâcher le morceau, il n'y a jamais de problème sans solution..il suffit d'y croire....

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut Code VBA
    Si DB2/400, créer un onglet "DownLoad" dans une feuille de calcul et coller le module ci-dessous dans VBA

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Private Sub DownLoad_From_iSeries()
    
    Dim Con As New ADODB.Connection
    Dim Cmd As New ADODB.Command
    Dim rs As ADODB.Recordset
    
    Dim rowCount As Integer
    Dim colCount As Integer
    Dim text As String
    Dim Number As Long
    Dim val As Variant
    
    Con.Open "provider=IBMDA400;data source=MonDNS; USER ID=...; PASSWORD=...;"
    
    Set Cmd.ActiveConnection = Con
    Cmd.CommandText = "SELECT * FROM MaLib.MaTable Where ..."
    
    Set rs = Nothing
    Set rs = Cmd.Execute()
    Worksheets("Download").Activate
    
    rowCount = 10        ' Ligne début
    
    ' Libellés d'en-tête de colonne
    For colCount = 0 To rs.Fields.Count - 1  'colonne début = A
    Worksheets("Download").Cells(rowCount, colCount + 1).Value = rs.Fields(colCount).Name
    Next colCount
    
    ' Data
    While Not rs.EOF
        rowCount = rowCount + 1
        For colCount = 0 To rs.Fields.Count - 1
    
        If rs.Fields(colCount).ActualSize = -1 Then
            text = ""
        Else
            val = rs.Fields(colCount).Value
            If VarType(val) = vbNull Then
                text = ""
            Else
                text = val
            End If
        End If
    
        Worksheets("Download").Cells(rowCount, colCount + 1).Value = text
    
        Next colCount
        rs.MoveNext
    Wend
    
    Set rs = Nothing
    Con.Close
    End Sub

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 115
    Points : 85
    Points
    85
    Par défaut Mercure
    Merci....!!!! ça marche impécablement......
    Ce n'est qu'une proposition. Et je n'ai pas dit en de hors d'elle point de salut..

    C'est en forgeant qu'on devient forgeron...
    Faut jamais lâcher le morceau, il n'y a jamais de problème sans solution..il suffit d'y croire....

  4. #4
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 97
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    Je déterre ce sujet au lieu d'en créer un autre.
    J'aimerais pouvoir faire la même chose sur db2 SDK 7.2.
    Déjà, quelle est la différence avec db2 400 ?

    Par quoi la valeur MonDNS du code cité plus haut doit-elle être remplacée sachant que je me connecte à une base se trouvant sur un serveur distant pour lequel j'ai une adresse ip etc. ?

    Merci d'avance pour toute aide,

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Je ne connais pas db2 SDK 7.2 mais ça ne coûte rien d'essayer.

    A la place de "MONDNS", mets l'adresse IP et, si tu n'as pas Client Access installé sur ta machine client, indique également à la place de "IBMDA400" le nom du fournisseur de ton driver ODBC pour accéder à ta BDD DB2 SDK 7.2. Ceci sans aucune garantie que ça fonctionne. Aussi, tu peux aller voir également cette page, car je pense que ça pourrait t'aider.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 32
    Points : 20
    Points
    20
    Par défaut Question similaire pour une débutante
    Bonjour,

    Je tente de faire mon premier fichier excell connecté.
    J'ai pris le code indiqué ci-dessus.
    Je l'ai mis dans la feuille Download dans Microsoft Visual Basic.

    Et je me pose des questions :
    1- monDNS doit être remplacé par quoi ?
    Parce que je connait aps chaine de connexion
    -> jdbc:db2://monServeur:monPort/database
    2- comment tester ma connexion ?
    J'ai essayer de lancer une macro.
    Mais il ne me propose aucune macro.


    Bref, merci d'avance pour l'aide que vous pourriez m'apporter.
    P.S. J'utilise office 2003 sur win XP.
    Trycias

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/03/2008, 10h30
  2. se connecter à DB2 avec .NET (sans installer DB2)
    Par salihovic dans le forum DB2
    Réponses: 7
    Dernier message: 13/02/2008, 15h24
  3. Lien Delphi-Excel avec macro VBA
    Par sroge dans le forum Langage
    Réponses: 1
    Dernier message: 06/02/2008, 10h51
  4. [VA-E] trier des données avec macro VBA
    Par M@XflY dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 13/01/2007, 13h24
  5. probleme de selection aleatoire sur excel avec macro vba
    Par guillaume sors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2005, 10h51

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