2009-09-04 44 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