2009-09-04 5 views
2

Я изучаю жизнеспособность запланированного проекта, который должен потреблять некоторые данные с веб-сервера.Можете ли вы использовать xml для доступа?

Не будучи разработчиком доступа сам я хотел бы знать:

  1. Можно ли потреблять XML из базы данных доступа?
  2. Можно ли использовать xml через аутентифицированное соединение?
  3. Можно ли использовать xml по зашифрованному соединению (https)?
  4. Что такое «gotchas» этого процесса?
+0

Какие отличия (если есть) подразумевают между базой данных Access * и VBA в целом? – onedaywhen

+0

Не будучи профессиональным разработчиком, я не уверен. Проект строится на доступе (не моя идея) и должен потреблять данные, которые хранятся на веб-сервере. Я уверен, что в VBA/.Net есть некоторые компоненты, которые выполняют эту функцию, но работают ли эти компоненты с доступом? Будет ли разработчик лучше избегать доступа, потому что это не правильный инструмент для работы? – Josiah

ответ

3

Прежде всего, вы можете использовать веб-службы добавить (мыло набор инструментов). Dispite глупые комментарии здесь, что веб-надстройка для офиса получил обновление 12 декабря 2007

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

Однако, на самом деле, для захвата XML с веб-сайта вы можете написать лишь несколько строк кода, чтобы сделать это в MS-Access, если вы используете библиотеку 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" 

в приведенном выше примере кода происходит с «GET» файл CSV, но в большинстве случаев это веб-сервис даст вам файл XML или даже документ. Использование библиотеки MSXML также означает, что у вас есть полный анализ xml у вас под рукой.

Вы также можете записать текстовую строку xml в локальный файл и использовать функции импорта XML, которые у нас есть в ms-access.

Таким образом, доступ имеет возможность импорта xml. С поддержкой импорта xml + в библиотеке MSXML это занимает ОЧЕНЬ НЕСКОЛЬКО строк кода, чтобы захватить xml с веб-сайта. Access 2010 будет иметь дополнительную поддержку веб-сервисов.

Для всех интенсивных целей я действительно не рекомендую использовать набор инструментов для мыльных инструментов (код добавления в 2003 году) для офиса, поскольку вышеуказанный код намного проще, а LOT - меньше проблем и кода.

+0

@Albert D Kallal благодарит за ваш подробный ответ, определенно то, что я искал. Можете ли вы сделать то же самое по аутентифицированному и зашифрованному соединению, или вам нужно вызвать полный набор инструментов для мыла? – Josiah

+0

MSXML поддерживает аутентификацию. Использование зашифрованного соединения, такого как SSL, не влияет на эту проблему. Использование MSXML или набора инструментов для мыла не изменит эту проблему безопасности. Итак, нет, вы ничего не получаете, пытаясь использовать набор инструментов для мыла вместо библиотеки XML. –

0

Доступ к версии 2003 года имеет полную поддержку веб-сервисов. Существует мастер, который вы можете использовать для определения определения веб-службы и создания базы данных доступа и форм для доступа к ней.

Вот учебник для consuming web services

+1

Это учебное пособие - семь лет. Я заметил, что Access 2007 по-прежнему не поддерживает веб-службу. Думаю, я бы держался подальше. –

+0

John, статья от 16 декабря 2005 года, которой исполнилось четыре года. Не могли бы вы быть более конкретными в отношении своих возражений? –

+0

@ Тони, 4 года и 7 лет эквивалентны ему, я думаю. В любом случае, это спорный момент, когда учебник был написан, потому что он говорит OP, как делать то, что он хочет делать. –

Смежные вопросы