设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 11460|回复: 21
打印 上一主题 下一主题

[Access本身] 【分享】在Access2003中使用Web Service

[复制链接]
跳转到指定楼层
1#
发表于 2007-10-5 14:44:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10楼有例子下载


Web Service是个时尚的话题,在很多领域都有应用,Access能否使用呢,回答是当然的,下面我就用新浪提供的短信发送Web Service来给大家做过介绍,相信你们会喜欢的。

1.下载并安装Microsoft Office 2003 Web Services Toolkit 2.01  下载地址:http://www.microsoft.com/downloa ... p;displaylang=zh-cn

2.添加对Microsoft Office Soap Type Library v3.0的引用,Microsoft Office Soap Type Library v3.0的dll文件位于:C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSSOAP30.DLL,随 Microsoft Office 2003 System 一起安装的。

3.打开Access至VBE,这时会在工具菜单的引用下面多一个Web服务引用。单击web引用,打开web服务引用对话框。

4.单击web服务URL单选钮,在URL中输入:http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl,单击搜索按钮,在搜索结果框中勾选SMSWS,然后单击下方的添加按钮。

5.这时Microsoft Office 2003 Web Services Toolkit会自动创建一个类模块。类模块内容如下:
  1. *****************************************************************
  2. '该类是由 Microsoft Office 2003 Web Services Toolkit 创建的。
  3. '
  4. '创建时间: 10/5/2007 12:41:01 AM
  5. '
  6. '说明:
  7. '该类是 Web 服务
  8. ' 的 Visual Basic for Applications 类表示形式,这是由 http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl 定义的。
  9. '
  10. '使用:
  11. '将变量声明为新的 clsws_SMSWS,然后编写代码以
  12. '使用该类所提供的方法。
  13. '示例:
  14. ' Dim ExampleVar as New clsws_SMSWS
  15. ' debug.print ExampleVar.wsm_sendXml(“示例输入”)
  16. '
  17. '有关更多信息,请参阅 Microsoft Office 2003
  18. 'Web Services Toolkit 帮助中的“复杂类型”。
  19. '
  20. '对此类中的代码所做的更改可能导致错误的行为。
  21. '
  22. '*****************************************************************
  23. '声明专用类变量。
  24. Private sc_SMSWS As SoapClient30
  25. Private Const c_WSDL_URL As String = "http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl"
  26. Private Const c_SERVICE As String = "SMSWS"
  27. Private Const c_PORT As String = "SMSWebServiceSoapPort"
  28. Private Const c_SERVICE_NAMESPACE As String = "http://outlook.microsoft.com/add-ins/SMS/wsdl/"
  29. Private Sub Class_Initialize()
  30. '*****************************************************************
  31. '每次实例化该类时都将调用此子例程。
  32. '将 sc_ComplexTypes 创建为新的 SoapClient30,然后
  33. '用在
  34. 'http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl 中找到的 WSDL 文件实例化 sc_ComplexTypes.mssoapinit2。
  35. '*****************************************************************
  36. Dim str_WSML As String
  37. str_WSML = ""
  38. Set sc_SMSWS = New SoapClient30
  39. sc_SMSWS.MSSoapInit2 c_WSDL_URL, str_WSML, c_SERVICE, c_PORT, c_SERVICE_NAMESPACE
  40. '使用 Internet Explorer 的 LAN 设置中定义的代理服务器,方法是
  41. '将 ProxyServer 设置为
  42. sc_SMSWS.ConnectorProperty("roxyServer") = ""
  43. '如果 Internet Explorer 被设置为自动检测,则自动检测代理设置,
  44. '方法是将 EnableAutoProxy 设置为真
  45. sc_SMSWS.ConnectorProperty("EnableAutoProxy") = True

  46. End Sub
  47. Private Sub Class_Terminate()
  48. '*****************************************************************
  49. '将在每次析构该类时调用此子例程。
  50. '将 sc_ComplexTypes 设置为 Nothing。
  51. '*****************************************************************
  52. '错误捕获
  53. On Error GoTo Class_TerminateTrap
  54. Set sc_SMSWS = Nothing
  55. Exit Sub
  56. Class_TerminateTrap:
  57. SMSWSErrorHandler ("Class_Terminate")
  58. End Sub
  59. Private Sub SMSWSErrorHandler(str_Function As String)
  60. '*****************************************************************
  61. '此子例程是类错误处理程序。当任何类子例程或函数
  62. '遇到错误时,都可以从该子例程或函数调用此子例程。然后,它将引发错误并提供
  63. '调用子例程或函数的名称。
  64. '*****************************************************************
  65. 'SOAP 错误
  66. If sc_SMSWS.FaultCode <> "" Then
  67. Err.Raise vbObjectError, str_Function, sc_SMSWS.FaultString
  68. '非 SOAP 错误
  69. Else
  70. Err.Raise Err.Number, str_Function, Err.Description
  71. End If
  72. End Sub
  73. Public Function wsm_sendXml(ByVal str_Carrier As String, ByVal str_Id As String, ByVal str_Password As String, ByVal str_ToMobile As String, ByVal str_Message As String, ByVal str_MsgType As String) As String
  74. '*****************************************************************
  75. '从 http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl 创建的代理函数。
  76. '*****************************************************************
  77. '错误捕获
  78. On Error GoTo wsm_sendXmlTrap
  79. wsm_sendXml = sc_SMSWS.sendXml(str_Carrier, str_Id, str_Password, str_ToMobile, str_Message, str_MsgType)
  80. Exit Function
  81. wsm_sendXmlTrap:
  82. SMSWSErrorHandler "wsm_sendXml"
  83. End Function
复制代码
从代码可以看出类模块提供了一个公共方法wsm_sendXml,这就是我们需要的。

5.我们就可以通过下面的方法使用了:
DiDim ws As New clsws_SMSWS
ws.wsm_sendXml      。。。参数省略

参数说明:
carrier:运营商名称,这里面可以随便输,不过似乎没有任何显示,不知道里面有没有其它奥秘。
userid:您在新浪无线上注册的手机ID,即http://sms.sina.com.cn
password:您在新浪无线上注册手机时所使用的密码。
mobilenumber:对方的手机号码;
content:发送短消息的内容;
msgtype:发送短消息的类型,目前仅使用文本短信方式,使用的是“Text”。


资费标准请参看新浪无线网站上的相关说明,应该是一条一角钱,不过也或者是一条两角线。由于其后台可能使用了消息队列机制,在繁忙的时候,可能会有几秒钟延迟。

[ 本帖最后由 fan0217 于 2007-10-6 12:09 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2007-10-5 14:45:11 | 只看该作者
通过对http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl 的web引用,我们可以获取你的QQ是否在线的状态。

Sub CheckOnline()
    Dim ws As New clsws_qqOnlineWebService
    Debug.Print ws.wsm_qqCheckOnline("370552091")
End Sub

输入参数:QQ号码 String,默认QQ号码:8698053。
返回数据:String,Y = 在线;N = 离线;E = QQ号码错误;A = 商业用户验证失败;V = 免费用户超过数量
3#
 楼主| 发表于 2007-10-5 14:45:29 | 只看该作者
中国股票行情数据 WEB 服务(支持深圳和上海股市的基金、债券和股票):http://www.webxml.com.cn/WebServ ... ebService.asmx?wsdl


即时外汇汇率数据 WEB 服务:http://www.webxml.com.cn/WebServ ... ebService.asmx?wsdl


火车时刻表 WEB 服务 (第六次提速最新列车时刻表):http://www.webxml.com.cn/WebServ ... ebService.asmx?wsdl


中文 <-> 英文双向翻译 WEB 服务:http://www.webxml.com.cn/WebServ ... ebService.asmx?wsdl


中文简体字<->繁体字转换 WEB 服务:http://www.webxml.com.cn/WebServ ... ebService.asmx?wsdl




等等等等
4#
发表于 2007-10-5 15:51:45 | 只看该作者
很强悍的应用~~~
现在还看不太懂,收藏先
5#
发表于 2007-10-5 22:05:34 | 只看该作者
谢谢分享~~
6#
发表于 2007-10-6 11:05:19 | 只看该作者
能给个例子吗?老大!!!
7#
发表于 2007-10-6 11:18:14 | 只看该作者
遗憾!我的简板2003没有下面DLL文件!哇
C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSSOAP30.DLL
8#
 楼主| 发表于 2007-10-6 11:39:24 | 只看该作者
原帖由 xingzhihao 于 2007-10-6 11:05 发表
能给个例子吗?老大!!!



好吧,我做了个例子,是检查你的QQ在线状态的例子。

本例子需要引用Microsoft Office Soap Type Library v3.0

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
发表于 2007-10-6 12:41:27 | 只看该作者
老大!!!
把 MSSOAP30.DLL 也传上来吧,谢谢了 fan0217
10#
发表于 2007-10-6 12:43:50 | 只看该作者
谁吧 MSSOAP30.DLL 传上来共享一下,谢谢;了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-26 04:44 , Processed in 0.132683 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表