
| 出版日期:1997-06-16 总期号:662 本年期号:22 |
|
如何在vb中通过dde功能来操作access数据库中的对象?
钱海燕 运用microsoftvisualbasic与microsoftaccess相结合进行台式机上的小型信息管理系统的开发,已经成为广大软件开发人员普遍使用的开发平台。在使用中,一般通过vb的数据存取特性来与access数据库联络,这种方式只能利用access数据库中的数据表(table),不能充分利用access的报表制作和宏命令功能。实际上通过windows提供的动态数据交换协议(dde)与access直接通话,可以在vb中操作access中的多种对象,例如可以在vb中指示access运行宏来打印一报表。 以下给出一使用dde协议的vb例程,本例程可以作为进行dde操作的模版来实现dde的多种操作任务。该例程在vb中指示access打开一数据库,读取数据库中的数据表名,显示dde运行的系统主题,最后关闭数据库。按以下步骤进行: 1、在vb中建立一新项目(project),其中form1是缺省的表单。 2、在form1中建立两个文本控制,分别命名为appitems和dbitems。 3、在form1中建立一命令按钮runaccessdde。 4、在命令按钮runaccessdde的click事件触发中加入以下代码: subcommand1—click() constlink—manualΚ2,link—noneΚ0 dimcmd ′建立一包含access宏命令的字符串,其中ddetest.mdb是一含有几个数据表的示例数据库,它可以改换成其他任何数据库名称 cmdΚ″[opendatabase″″c:ιaccessιddetest.mdb″″]″ ifappitems.linkmodeΚlink—nonethen ′设定dde服务器为msaccess,dde服务主题为system. appitems.linktopicΚ″msaccess system″ ′设定需要传给appitems文本控制的信息内容为系统主题 appitems.linktopicΚ″sysitems″ ′将linkmode设为一非零值,使得vb启动linktopic中指定的dde服务程序。这里link—manual值为2,指示vb所建立的dde连接直到vb发现linkrequest时才更新。 appitems.linkmodeΚlink—manual ′appitems文本控制发出linkrequest指令,dde连接更新文本控制的内容appitems.linkrequest ′发出dde操作指令,指示access打开数据库ddetest.mdb appitems.linkexecutecmd ifdbitems.linkmodeΚlink—nonethen ′为dbitems文本控制设定dde服务器及服务主题 dbitems.linktopicΚ″msaccess ddetest″ ′指示access将其打开的数据库的所有数据表的名称传给dbitems文本控制框 dbitems.linkitemΚ″tablelist″ ′指示直到vb发出linkrequest时才更新dbitems内容 dbitems.linkmodeΚlink—manual ′更新dbitems内容 dbitems.linkrequest ′关闭dbitems文本框的dde连接 dbitems.linkmodeΚlink—noneendif ′发出操作指令,指示access关闭其打开的数据库ddetest.mdb appitems.linkexecute″[closedatabase]″ ′关闭appitems文本框的dde连接 appitems.linkmodeΚlink—noneendifendsub 5、运行本项目,点击runaccessdde命令按钮,可以看到appitems文本控制显示access所支持的系统主题的名字,各主题名字由“ ”隔开。dbitems文本控制显示ddetest.mdb数据库中所有数据表的名称,隔名称由“ ”隔开。 注:本例程序可以在microsoftvisualbasic3.0,4.0,microsoftaccessversions1.1,2.0,7.0,97中运行。在运行时,请务必保证access是处于运行状态。 |
|||||||||||||||||