|
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会自动创建一个类模块。类模块内容如下:- *****************************************************************
- '该类是由 Microsoft Office 2003 Web Services Toolkit 创建的。
- '
- '创建时间: 10/5/2007 12:41:01 AM
- '
- '说明:
- '该类是 Web 服务
- ' 的 Visual Basic for Applications 类表示形式,这是由 http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl 定义的。
- '
- '使用:
- '将变量声明为新的 clsws_SMSWS,然后编写代码以
- '使用该类所提供的方法。
- '示例:
- ' Dim ExampleVar as New clsws_SMSWS
- ' debug.print ExampleVar.wsm_sendXml(“示例输入”)
- '
- '有关更多信息,请参阅 Microsoft Office 2003
- 'Web Services Toolkit 帮助中的“复杂类型”。
- '
- '对此类中的代码所做的更改可能导致错误的行为。
- '
- '*****************************************************************
- '声明专用类变量。
- Private sc_SMSWS As SoapClient30
- Private Const c_WSDL_URL As String = "http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl"
- Private Const c_SERVICE As String = "SMSWS"
- Private Const c_PORT As String = "SMSWebServiceSoapPort"
- Private Const c_SERVICE_NAMESPACE As String = "http://outlook.microsoft.com/add-ins/SMS/wsdl/"
- Private Sub Class_Initialize()
- '*****************************************************************
- '每次实例化该类时都将调用此子例程。
- '将 sc_ComplexTypes 创建为新的 SoapClient30,然后
- '用在
- 'http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl 中找到的 WSDL 文件实例化 sc_ComplexTypes.mssoapinit2。
- '*****************************************************************
- Dim str_WSML As String
- str_WSML = ""
- Set sc_SMSWS = New SoapClient30
- sc_SMSWS.MSSoapInit2 c_WSDL_URL, str_WSML, c_SERVICE, c_PORT, c_SERVICE_NAMESPACE
- '使用 Internet Explorer 的 LAN 设置中定义的代理服务器,方法是
- '将 ProxyServer 设置为
- sc_SMSWS.ConnectorProperty("roxyServer") = ""
- '如果 Internet Explorer 被设置为自动检测,则自动检测代理设置,
- '方法是将 EnableAutoProxy 设置为真
- sc_SMSWS.ConnectorProperty("EnableAutoProxy") = True
- End Sub
- Private Sub Class_Terminate()
- '*****************************************************************
- '将在每次析构该类时调用此子例程。
- '将 sc_ComplexTypes 设置为 Nothing。
- '*****************************************************************
- '错误捕获
- On Error GoTo Class_TerminateTrap
- Set sc_SMSWS = Nothing
- Exit Sub
- Class_TerminateTrap:
- SMSWSErrorHandler ("Class_Terminate")
- End Sub
- Private Sub SMSWSErrorHandler(str_Function As String)
- '*****************************************************************
- '此子例程是类错误处理程序。当任何类子例程或函数
- '遇到错误时,都可以从该子例程或函数调用此子例程。然后,它将引发错误并提供
- '调用子例程或函数的名称。
- '*****************************************************************
- 'SOAP 错误
- If sc_SMSWS.FaultCode <> "" Then
- Err.Raise vbObjectError, str_Function, sc_SMSWS.FaultString
- '非 SOAP 错误
- Else
- Err.Raise Err.Number, str_Function, Err.Description
- End If
- End Sub
- 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
- '*****************************************************************
- '从 http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl 创建的代理函数。
- '*****************************************************************
- '错误捕获
- On Error GoTo wsm_sendXmlTrap
- wsm_sendXml = sc_SMSWS.sendXml(str_Carrier, str_Id, str_Password, str_ToMobile, str_Message, str_MsgType)
- Exit Function
- wsm_sendXmlTrap:
- SMSWSErrorHandler "wsm_sendXml"
- 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 编辑 ] |
|