会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > 报表打印 > 正文

Windows 脚本组件 与 ACCESS

时间:2005-02-04 11:01 来源:accessfaq 作者:朱亦文 阅读:
 Windows 提供了很强的脚本功能,象ASP一样,是文本文件,无需编译,就能实现一个功能完整的组件。本文通过一个脚本组件实例来进行解释和讲解如何在access中应用。

首先,用记事本新建文件,内容如下:

<SCRIPTLET>

    <Registration
        Description = "ConvertTemp"
        ProgID = "ConvertTemp.Scriptlet"
        Version = "1.00">
    </Registration>
    
    <Public>
        <Property Name = "Number">
            <Get InternalName = "getNumber"/>
            <Put InternalName = "setNumber"/>
        </Property>

        <Method Name = Celsius>
            <PARAMETER Name = F/>
        </Method>
        
        <Method Name = Fahrenheit>
            <PARAMETER Name = C/>
        </Method>
        
        <Event Name="onNumberChange"/>
    
    </Public>


    <SCRIPT LANGUAGE=VBScript>

        Dim num

        ' Get 属性
        Function getNumber()
           getNumber = num
        End Function

        ' Put 属性
        Function setNumber(newNumber)
           ' 验证输入的数据
           If Not IsNumeric(newNumber) Then
              num = 0 ' 当不是数字时,设为 0
           Else
              num = newNumber
              ' 引发事件
              FireEvent ("onNumberChange")
           End If
        End Function

        ' 以下为两个 COM 方法
        Function Celsius(F)
              Celsius = 5 / 9 * (F - 32)
        End Function

        Function Fahrenheit(C)
              Fahrenheit = (9 / 5 * C) + 32
        End Function

    </SCRIPT>

</SCRIPTLET>


    保存为 "ConvertScriptlet.sct" 文件,脚本组件的扩展文件名为".sct"。这是一个完整的 Windows 脚本组件文件。

下面进行解释:
    脚本是以<SCRIPTLET>.....</SCRIPTLET>括起来的。

<Registration
   Description = "ConvertTemp"
   ProgID = "ConvertTemp.Scriptlet"
   Version = "1.00">
</Registration>

这一段为脚本组件注册信息。ProgID="ConvertTemp.Scriptlet"定义类的名称。

<Property Name = "Number">
   <Get InternalName = "getNumber"/>
   <Put InternalName = "setNumber"/>
</Property>

这一段为定义类的属性和属性过程。

<Method Name = Celsius>
   <PARAMETER Name = F/>
</Method>
        
<Method Name = Fahrenheit>
   <PARAMETER Name = C/>
</Method>

这一段为定义类的方法和方法参数。

<Event Name="onNumberChange"/>
这一段为定义类的事件。

' Get 属性
Function getNumber()
  getNumber = num
End Function

' Put 属性
Function setNumber(newNumber)
   ' 验证输入的数据
   If Not IsNumeric(newNumber) Then
      num = 0 ' 当不是数字时,设为 0
   Else
      num = newNumber
      ' 引发事件
      FireEvent ("onNumberChange")
   End If
End Function


这一段实现类的属性过程, 并引发事件。

Function Celsius(F)
   Celsius = 5/9 * (F - 32)
End Function

Function Fahrenheit(C)
   Fahrenheit = (9/5 * C) + 32
End Function


这一段实现类的方法。

组件注册:
    在 Windows 资源管理器中,右键单击该文件,选择[注册]。也可以命令行下进行注册:

REGSVR32.EXE /i:Path\ConvertScriptlet.sct SCROBJ.DLL

注:Path为文件路径。

在 access 中,使用 CreateObject() 函数创建脚本组件的实例:

Set objConvert = CreateObject("ConvertTemp.Scriptlet")

这样就可以使用脚本组件所提供的属性、方法和事件了。

使用组件的优势是:
    1、实现商业规则,例子中,就是实现了摄氏和华氏温度的转换这个规则。
    2、当规则发生变化后,不需要改变应用程序。(这就是我所说的以不变应万变)。
    3、使用 VB 或 VC 等高级语言开发组件,还可分布在网络其它主机上,实现分布式计算。
    4、... 总之,好处多多!


点击浏览该文件

(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: