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 :

Contenu d'une page Web XML lue depuis MS Access ?


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 13
    Points : 16
    Points
    16
    Par défaut Contenu d'une page Web XML lue depuis MS Access ?
    Bonjour,

    J'utilise pour l'instant un site qui me donne une information sur un vol (aérien). Je dois à chaque fois taper le numéro de vol pour avoir l'info. Je peux modifier l'URL (et y incruster le numéro) pour avoir un résultat plus rapide. J'ai plusieurs recherches à faire apr jour, et parfois un vol doit être interrogé plusieurs fois. Lorsque je lance la recherche, le site me renvoie un fichier XML basique contenant les résultats.

    Serait-il possible d'utiliser Access avec une base des numéros de vols, générer l'URL de recherche pour chaque requête et surtout de récupérer le fichier XML pour le décortiquer et afficher les résultats proprements. C'est surtout cette partie ; envoi de la requête et récupération/traitement du résultat sous forme de chaine que je n'arrive pas à solutionner.

    Merci pour vos conseils,

    L@urent

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    quelques pistes :

    Récuperer le code HTML d'une page Web en utilisant la référence Microsoft XML

    Comment lire un fichier XML

    Ci-dessous un exemple de code où je met à jour une table XRates (Devise de type Texte, EUR2DEV de type Décimal(18,4))
    à partir d'un fichier xml obtenu depuis l'url http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Function ImportXmlEurofXref()
    ' utilise ref VBA : Microsoft XML, version 2 ...\system32\msxml.dll
    Dim xmlDoc As MSXML.DOMDocument, xmlCube As MSXML.IXMLDOMNode, xmlNode As MSXML.IXMLDOMNode
    Dim db As DAO.Database, rXrates As DAO.Recordset
    Dim strCur As String, strRate As String, curRate As Currency
    Dim strDecCar As String, strThCar As String, strTstFmt As String
     
    strTstFmt = Format(1234.5678, "#,##0.0000")
    If Len(strTstFmt) = 10 Then
       strThCar = Mid(strTstFmt, 2, 1)
    Else
       strThCar = ""
    End If
    strDecCar = Mid(strTstFmt, Len(strTstFmt) - 4, 1)
     
    Set xmlDoc = New MSXML.DOMDocument
    ' Charger ficher xml
    xmlDoc.Load "http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml"
     
    ' Wait
    While (xmlDoc.parsed = False)
        DoEvents
    Wend
     
    ' Format fichier xml :
    ' ---------------------------------------------------
    '   <Cube>
    '       <Cube time="2009-03-05">
    '           <Cube currency="USD" rate="1.2555"/>
    '           ....
    '           <Cube currency="ZAR" rate="13.2079"/>
    '       </Cube>
    '   </Cube>
     
    ' Obtenir premier élément "Cube" dans le document
    Set xmlCube = xmlDoc.documentElement.SelectSingleNode("Cube")
     
    ' Elément "Cube" de niveau inférieur
    Set xmlCube = xmlCube.SelectSingleNode("Cube")
     
    Set db = CurrentDb
    Set rXrates = db.OpenRecordset("Xrates", dbOpenDynaset)
     
    ' Boucler sur les noeuds inférieurs (<Cube currency="CCC" rate="n.nnnn"/>)
    '  et récupérer les attributs "currency" et "rate".
    '  Le taux est EUR/DEVISE (1 EUR = n.nnnn CCC)
    For Each xmlNode In xmlCube.ChildNodes
        strCur = xmlNode.Attributes.getNamedItem("currency").NodeValue
        strRate = xmlNode.Attributes.getNamedItem("rate").NodeValue
        strRate = Replace(strRate, ".", strDecCar)
        curRate = CCur(strRate)    
     
        ' Rechercher la devise dans la table et la mettre à jour
        rXrates.FindFirst "Devise=""" & strCur & """"
        If Not rXrates.NoMatch And curRate <> 0 Then
           rXrates.Edit
           rXrates("EUR2DEV") = curRate
           rXrates.Update
        End If
     
    Next
     
    ENDP:
    rXrates.Close
    db.Close
     
    Set xmlCube = Nothing
    Set xmlDoc = Nothing
     
    End Function
    J'utilise une référence à la bibliothèque MSXML (référence "Microsoft XML, version 2.0").
    Une introduction en français au modèle objet de document XML.
    La doc sur msdn est ici : Program with DOM in Visual Basic

    A+

Discussions similaires

  1. Modifier le contenu d'une page web : modifier un fichier XML
    Par Linnya dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 06/02/2013, 08h33
  2. [JSP][WEB] recuperer le contenu d'une page web
    Par ypikahe dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 14/03/2008, 10h10
  3. copier le contenu d'une page web dans un fichier texte
    Par wassila dans le forum C++Builder
    Réponses: 30
    Dernier message: 28/08/2005, 22h27
  4. Réponses: 2
    Dernier message: 16/07/2004, 09h30

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