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 :

Interroger un service Web (SOAP) en VBA


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 15
    Points : 19
    Points
    19
    Par défaut Interroger un service Web (SOAP) en VBA
    http://www.developpez.net/forums/ima...n_rolleyes.gif
    Bonjour à tous,

    Je débute en développement Visual studio mais j'ai réalisé un service web qui permet d'interroger les tables d'une base données via ADO .net sur un serveur.
    Il semble que ce service fonctionne convenable et me retourne un message XML (soap) d'une variable de type dataset.
    Sur un poste client dans mon application VBA, je ne parviens pas à initialiser une variable de type dataset pour récupérer les données du service web interrogé.

    Je vous présente le code VBA que j'utilise.

    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
    Private Sub TesteServ_Click()
        Dim WSClient As MSSOAPLib.SoapClient
        Dim TabRecep As DataSet '<= Type de variable inconnu
        Dim tempo As String
     
     
        Set WSClient = New MSSOAPLib.SoapClient
        WSClient.mssoapinit "http://172.20.6.5/ServiceDJA/DataGesCom.asmx?wsdl", "DataGesCom", ""
     
        TabRecep = WSClient.ReqGesCom("")
        'TabRecep = WSClient.HelloWorld()    '<= Class de teste du service Web
     
        '// Gestion de l'affichage des données récupérées //
        'Me.EtiqDegre.Caption = TabRecep
    End Sub

    Je vous remercie d'avance pour votre aide

  2. #2
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Bjr,

    Tu peux essayer un type object ou variant.
    Ensuite tu mets un point d'arrêt et tu regardes le type de données renvoyées dans la "fenêtre Variables locales".

    Si ça ne marche pas, regarde sur le support microsoft :
    http://support.microsoft.com/kb/307033/fr

  3. #3
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    En VBA, tu ne peux pas récupérer de DataSet, ni même de recordset.
    Il faut extraire directement les données du flux xml.
    Pour ça, il faut installer la librairie Microsoft XML v6.0.
    Le lien suivant peut t'aider:

    http://www.perfectxml.com/msxmlAnswers.asp?Row_ID=53

    Philippe

  4. #4
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 15
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Visiblement il n'y a pas de variable susceptible de recevoir un dataset et il faut donc intervenir dans le code XML.

    J'ai regardé le cite que tu m'indique mais je bute sur la propriété GetAll du client SOAP.
    J'ai le message suivant à l'exécution du code :
    "Erreur 438 . Propriété ou méthode non gérée par cet objet"

    Pas de problème à la compilation.

    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
    Private Sub TesteServ_Click()
        Dim objSOAP As New MSSOAPLib.SoapClient
        Dim vXMLNodeList As MSXML2.IXMLDOMNodeList
        Dim vXMLNode As MSXML2.IXMLDOMNode
        Dim objXMLDom As New MSXML2.DOMDocument40
        Dim vDocRoot As IXMLDOMElement
        
        
        objSOAP.mssoapinit _
           "http://172.20.6.5/ServiceDJA/DataGesCom.asmx?wsdl", "DataGesCom", ""
            
        Set vXMLNodeList = objSOAP.GetAll("0072223693")
        
        objXMLDom.async = False
        objXMLDom.validateOnParse = False
        objXMLDom.loadXML "<WebMethodResults />"
        
        Set vDocRoot = objXMLDom.documentElement
        
        For Each vXMLNode In vXMLNodeList
            vDocRoot.appendChild vXMLNode
        Next
        
        MsgBox objXMLDom.XML
    Exit Sub
    J'ai également essayé avec SOAP tootkit v3
    ( Dim objSOAP As New MSSOAPLib30.SoapClient30 )
    Idem !!!

    Merci pour l'aide

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 127
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par domija Voir le message
    Bonjour,

    Visiblement il n'y a pas de variable susceptible de recevoir un dataset et il faut donc intervenir dans le code XML.

    J'ai regardé le cite que tu m'indique mais je bute sur la propriété GetAll du client SOAP.
    J'ai le message suivant à l'exécution du code :
    "Erreur 438 . Propriété ou méthode non gérée par cet objet"

    Pas de problème à la compilation.

    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
    Private Sub TesteServ_Click()
        Dim objSOAP As New MSSOAPLib.SoapClient
        Dim vXMLNodeList As MSXML2.IXMLDOMNodeList
        Dim vXMLNode As MSXML2.IXMLDOMNode
        Dim objXMLDom As New MSXML2.DOMDocument40
        Dim vDocRoot As IXMLDOMElement
        
        
        objSOAP.mssoapinit _
           "http://172.20.6.5/ServiceDJA/DataGesCom.asmx?wsdl", "DataGesCom", ""
            
        Set vXMLNodeList = objSOAP.GetAll("0072223693")
        
        objXMLDom.async = False
        objXMLDom.validateOnParse = False
        objXMLDom.loadXML "<WebMethodResults />"
        
        Set vDocRoot = objXMLDom.documentElement
        
        For Each vXMLNode In vXMLNodeList
            vDocRoot.appendChild vXMLNode
        Next
        
        MsgBox objXMLDom.XML
    Exit Sub
    J'ai également essayé avec SOAP tootkit v3
    ( Dim objSOAP As New MSSOAPLib30.SoapClient30 )
    Idem !!!

    Merci pour l'aide
    Bonjour,

    As tu réussi à te connecter à ton sertvice WEB?

    merci

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

Discussions similaires

  1. [Web Service][SOAP] Récupérer un tableau d%u2019un service web SOAP ?
    Par lehic dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 04/05/2012, 02h37
  2. services web xml avec vba excel
    Par naim8622 dans le forum VB.NET
    Réponses: 0
    Dernier message: 15/01/2009, 16h21
  3. Service Web, SOAP ou XML-RPC
    Par mic79 dans le forum SOA
    Réponses: 2
    Dernier message: 28/05/2008, 10h07
  4. Fonctionnement services Web (SOAP/WSDL/UDDI)
    Par CIFQ_Drew dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 08/05/2008, 17h02
  5. je n'arrive pas à interroger mon service web
    Par karimspace dans le forum Services Web
    Réponses: 2
    Dernier message: 09/02/2007, 19h33

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