2009-09-04 6 views
2

Je fais des recherches sur la viabilité d'un projet planifié qui consiste à consommer certaines données d'un serveur Web.Pouvez-vous consommer XML à partir de l'accès?

Ne pas être moi-même un développeur d'accès que je voulais savoir:

  1. Est-il possible de consommer XML à partir d'une base de données d'accès?
  2. Est-ce que xml peut être consommé via une connexion authentifiée?
  3. Est-ce que xml peut être consommé via une connexion cryptée (https)?
  4. Quels sont les 'getchas' de ce processus?
+0

Quelles distinctions (le cas échéant) impliquez-vous entre une base de données Access * * et VBA en général? – onedaywhen

+0

N'étant pas un développeur professionnel dans l'un ou l'autre, je ne suis pas sûr. Le projet est construit sur l'accès (pas mon idée), et est de consommer des données qui sont stockées sur un serveur web. Je suis sûr qu'il y a quelques composants dans VBA/.Net qui exécutent cette fonctionnalité, mais est-ce que ces composants fonctionnent bien avec l'accès? Est-ce qu'un développeur serait mieux d'éviter l'accès parce que ce n'est pas le bon outil pour le travail? – Josiah

Répondre

3

Tout d'abord, vous pouvez utiliser les services Web ajouter (trousse d'outils de savon). Dispite commentaires stupides ici, ce complément Web pour le bureau a reçu une changement 12 Décembre, 2007

http://support.microsoft.com/kb/937961

Cependant, vraiment, pour saisir XML à partir d'un site web, vous pouvez écrire quelques lignes de code pour faire ceci en ms accès si vous utilisez la bibliothèque MS-XML

Public Sub GetQuote2() 

    Dim objXML   As Object 
    Dim strSymbol  As String 
    Dim strURL   As String 
    Dim strWFormat  As String 

    Set objXML = CreateObject("MSXML2.XMLHTTP") 

    strURL = "http://ca.finance.yahoo.com/d/quotes.csv?s=" 
    strWFormat = "&f=sl1d1t1c1ohgv&e=.csv" 


    strSymbol = "MSFT" 

    objXML.Open "GET", strURL & strSymbol & strWFormat, False 
    objXML.Send 

    Debug.Print "Symbol = " & Split(objXML.ResponseText, ",")(0) 
    Debug.Print "Trade = " & Split(objXML.ResponseText, ",")(1) 
    Debug.Print "Date = " & Split(objXML.ResponseText, ",")(2) 

    End Sub 

Output when above run: 

Symbol = "MSFT" 
Trade = 24.62 
Date = "9/4/2009" 

l'exemple de code ci-dessus arrive à « GET » un fichier CSV, mais dans la plupart des cas que le service web vous donnera un fichier xml ou même document. L'utilisation de la bibliothèque MSXML signifie également que vous disposez d'une analyse XML complète à portée de main.

Vous pouvez/pouvez également écrire la chaîne de texte xml dans un fichier local et utiliser les fonctions d'importation XML que nous avons dans ms-access.

L'accès a donc une capacité d'importation xml. Avec le support d'importation xml + la bibliothèque MSXML cela prend TRÈS PEU de lignes de code pour récupérer xml à partir d'un site web. Access 2010 bénéficiera d'un support supplémentaire pour les services Web. Pour tout usage intensif, je ne recommande vraiment pas d'utiliser le kit d'outils web de savon (le 2003 ajouter le code) pour le bureau puisque le code ci-dessus est beaucoup plus simple, et beaucoup moins de tracas et de code.

+0

@Albert D Kallal merci pour votre réponse détaillée, certainement le genre de chose que je cherchais. Pouvez-vous faire la même chose avec une connexion authentifiée et cryptée, ou avez-vous besoin d'invoquer la boîte à outils de savon complète pour cela? – Josiah

+0

MSXML prend en charge l'authentification. L'utilisation d'une connexion cryptée telle que SSL n'affecte pas ce problème. L'utilisation de MSXML ou du kit d'outils de savon ne modifierait pas ce problème de sécurité. Donc, non, vous ne gagnez rien en essayant d'utiliser le kit d'outils de savon à la place de la bibliothèque XML. –

0

L'accès à partir de la version 2003 bénéficie du support complet des services Web. Il existe un assistant que vous pouvez utiliser pour pointer vers une définition de service Web et générer une base de données d'accès et des formulaires pour y accéder.

Voici un tutoriel pour consuming web services

+1

Ce tutoriel a sept ans. Je remarque qu'Access 2007 n'a toujours pas de support de service Web. Je pense que je resterais loin. –

+0

John, l'article est daté du 16 décembre 2005 qui date de quatre ans. Pourriez-vous être un peu plus précis quant à vos objections? –

+0

@Tony, 4 ans et 7 ans lui sont équivalents je suppose. De toute façon, c'est un point discutable quand le tutoriel a été écrit parce qu'il indique à l'OP comment faire ce qu'il veut faire. –

Questions connexes