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

AS/400 Discussion :

Liaison entre Excel(E03- VBA) & DB AS400 (ADO)


Sujet :

AS/400

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut Liaison entre Excel(E03- VBA) & DB AS400 (ADO)
    Bonjour,
    j'ai posé ma question sur le forum de VBA excel, mais comme c'est assez spécifique à l'AS400, je préfère également la poser ici.

    Dans excel, je souhaite effectuer une requête via ADO sur une database AS400.
    Pour cela j'ai constitué une DNS sur mon PC avec la librairie, le fichier, le user .... à utiliser pour la connection.

    Le problème se situe au niveau de l'établissement de la liaison dans Excel vers l'as400.

    Dans ADO, la méthode de connection est la suivante :
    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
    Function GetConnexion() As ADODB.Connection
        Dim cn As New ADODB.Connection
        
        ' Choisir une des deux lignes suivantes, selon que tu as créé un dsn ou pas
        ' Le dsn est plus simple à gérer lors du déploiement sur plusieurs postes qui
        ' pointent vers une même base
    
        cn.open = "Provider=MSDASQL; DSN='DSN_NAME'; Database='DBNAME'; " & _
          "UID='ODBC';PWD='ODBC';"
        cn.Open "dsn=DSN_NAME"
        
        Set GetConnexion = cn
        Set cn = Nothing
    End Function
    La syntaxe et les keywords à utiliser sont fonction du type de Provider Pour les données, et dans l'aide Microsoft Office (Platform SDK Collection for Windows Server 2003 Sp1" je ne trouve pas ce que je dois préciser comme provider pour ma DNS.

    Quand je travaille uniquement avec le nom DNS, cela ne suffit pas apparement.
    Ou alors il faut travailler au niveau de la définition DNS, mais je ne trouve pas quoi ajouter ni ou.

    A chaque tentative de connection, je reçois le message "ADODB.Connection--> provider cannot be found. It may not be proprely installed"

  2. #2
    Membre Expert

    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
    Par défaut
    Essaie le fournisseur "IBMDA400".

    Je suis loin d'être expert VB, mais voici un exemple en VBA que j'utilise et qui marche pour me connecter à DB2/400 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function DownLoad()
    Dim Con As New ADODB.Connection
    Dim Cmd As New ADODB.Command
    Dim rs As ADODB.Recordset
    Con.Open "provider=IBMDA400;data source=MyDSN; USER ID=MyUser; PASSWORD=MyPassword;"
    Set Cmd.ActiveConnection = Con
    Cmd.CommandText = "SELECT * FROM MyLib.MyTable"
    Set rs = Cmd.Execute()
    While Not rs.EOF
      ...

  3. #3
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    génial.

    Sais-tu s'il faut mettre des quotes ou des doubles quotes autour des paramètres car sans en mettre j'obtiens ceci :

    IBMDA400 Session-->CWBCO1004 - Remote adress could not be resolved
    NB : pour l'instant, la valeur de mes paramêtres est en dur dans le .OPEN. je passerai par des variables plus tard.

  4. #4
    Membre Expert

    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
    Par défaut
    Fais plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Open "Provider=IBMDA400;Data Source=xxx.xxx.xxx.xxx;", "user", "password"

  5. #5
    Membre Expert

    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
    Par défaut
    Sorry, je viens de modifier mon dernier post.

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Merci.

    Cela fonctionne effectivement pour la connection.
    Je regarde maintenant pour l'ouverture et la lecture du fichier car avec ce système d'open, on n'a pas accès au DNS.

    Je reviens.

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

Discussions similaires

  1. copie entre excel et VBA via variable tableau
    Par Alfred23 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 08/09/2011, 17h00
  2. [XL-2003] liaison entre cellule excel en vba
    Par tmaha dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/02/2010, 12h55
  3. liaison entre excel et access
    Par aghiad dans le forum Excel
    Réponses: 2
    Dernier message: 17/04/2007, 15h19
  4. Erreurs d'approximation entre Excel et VBA
    Par smassart dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/04/2007, 11h13
  5. [VBA-E] liaison entre Excel et Word
    Par fred bx dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 22/05/2006, 10h45

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