2009-09-04 47 views
2

我正在研究一個計劃項目的可行性,即消耗來自Web服務器的一些數據。你可以從訪問中使用xml嗎?

並非是接入開發商自己,我想知道:

  1. 是否有可能從Access數據庫中使用XML?
  2. xml是否可以在通過身份驗證的連接上使用?
  3. 可以通過加密連接(https)使用xml嗎?
  4. 這個過程的'陷阱'是什麼?
+0

您在Access *數據庫*和VBA之間隱含着什麼區別(如果有的話)? – onedaywhen 2009-09-04 10:17:38

+0

不是一個專業的開發者,我不確定。該項目是建立在訪問(而不是我的想法)上,並且是消費存儲在Web服務器上的數據。我確信在VBA/.Net中有一些組件可以執行這個功能,但是這些組件在訪問方面有很好的表現嗎?開發者是否會避免訪問,因爲它不適合工作? – Josiah 2009-09-05 06:45:03

回答

3

首先的教程,你可以使用Web服務中添加(SOAP工具包)。這裏Dispite愚蠢的評論,即web插件的辦公室收到了更新2007年12月12日

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

但是,真的,從一個網站抓取XML您可以編寫代碼來做到這幾行這在MS-訪問,如果您使用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文件,但在大多數情況下,該Web服務會給你一個XML文件,甚至文件。使用MSXML庫也意味着您可以在您的指尖進行完整的xml解析。

您可以/也可以將xml文本字符串寫出到本地文件中,並使用我們在ms-access中使用的XML導入功能。

因此,訪問具有xml導入功能。使用xml導入支持+ MSXML庫,這需要很少的代碼行來從網站抓取xml。 Access 2010將提供其他Web服務支持。

對於所有密集的目的,我真的不建議使用soap web工具包(2003年代碼)辦公室,因爲上面的代碼更簡單,而且很少麻煩和代碼。

+0

@Albert D Kallal感謝您的詳細回覆,絕對是我一直在尋找的東西。你可以通過驗證和加密的連接來做同樣的事嗎?或者你需要爲此調用完整的soap工具包嗎? – Josiah 2009-09-06 01:15:40

+0

MSXML支持認證。使用SSL等加密連接不會影響此問題。使用MSXML或soap工具包不會改變這個安全問題。所以,不,你不會嘗試使用soap工具包來代替XML庫。 – 2009-09-06 02:47:01

0

從2003年開始的訪問全面支持Web服務。有一個嚮導,您可以使用它指向Web服務定義並生成訪問數據庫和表單以訪問它。

這裏是consuming web services

+1

該教程已有七年曆史。我注意到Access 2007仍然沒有Web服務支持。我想我會遠離。 – 2009-09-04 05:48:19

+0

約翰,這篇文章的日期是2005年12月16日,這是四歲。對於您的反對意見,您能否更具體一些? – 2009-09-04 08:46:20

+0

@Tony,4年7年與他相當我猜。無論哪種方式,編寫教程都是一個有爭議的問題,因爲它告訴OP如何去做他想做的事情。 – 2009-09-04 12:57:36

相關問題