ccidnet????

出版日期: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中建立两个文本控制,分别命名为appitems和dbitems。

  3、在form1中建立一命令按钮runaccessdde。

  4、在命令按钮runaccessdde的click事件触发中加入以下代码:

  subcommand1—click()

  constlink—manualΚ2,link—noneΚ0

  dimcmd

  ′建立一包含access宏命令的字符串,其中ddetest.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打开数据库ddetest.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关闭其打开的数据库ddetest.mdb

  appitems.linkexecute″[closedatabase]″

  ′关闭appitems文本框的dde连接

  appitems.linkmodeΚlink—noneendifendsub

  5、运行本项目,点击runaccessdde命令按钮,可以看到appitems文本控制显示access所支持的系统主题的名字,各主题名字由“ ”隔开。dbitems文本控制显示ddetest.mdb数据库中所有数据表的名称,隔名称由“ ”隔开。

  注:本例程序可以在microsoftvisualbasic3.0,4.0,microsoftaccessversions1.1,2.0,7.0,97中运行。在运行时,请务必保证access是处于运行状态。