荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: Peter (小飞侠), 信区: Program
标 题: Visual Basic对 Excel的存取方法
发信站: BBS 荔园晨风站 (Thu Jan 21 22:43:24 1999), 转信
MicroSoft Excel是一个功能强大而且容易使用的电子表格和数据
库,如果和VisualBai c(以下简称VB)配合使用,则可以充分发挥各自
的长处,很容易就能够编制出多姿多采的应用程序。本文就此谈一点
应用体会。
Excel必须作为外部数据库,利用Windows提供的ODBC(开放数据库
连接)功能,这样才能被VB调用。
首先要在Windows的ODBC项下对Excel进行设置:
1.在"开始→设置→控制面板"中选择ODBC。
2.在Data Source窗口中选取Excel,单击Setup。
3.在资料来源名称(Data Source Name)项下填写Excel Files,在
版本项下选Excel 4., 在选择目录(Select Dirctory)项下选取安装E
xcel软件所在路径,单击OK。
VB对Excel的存取方法有三种,下面分别介绍。
一、使用DDL(Dynamic Data Link)动态连接
1.在连接之前,要在后台先运行Excel数据库文件。例如可在Form
—load()中写如下语句
sub Form— load()
shell("c:\msoffice\excel\excel.exe c:\mydb\mywb.xls",0)
end sub
2.在窗口中设置一个Text控件,例如Text1。
3.编程如下:
sub Form—Click()
If Text1.Linkmode=0 Then
Text1.LinkTopic="Excel|c:\mydb\[mywb.xls]mytab"
Text1.LinkItem="r1c1"
Text1.Mode=2
end If
Text1.LinkRequest
end sub
本例说明如下:
第2句 Linkmode的取值是:0没有连接,1热连接,2冷连接。
第3句mytab是mywb.xls工作书中的一个表。
第4句是指定Text1与数据库连接的区域,可以是表中的单元,或者
是已命名的范围。
第7句 由于第5句把Linkmode设为2,必须要有LinkRequest才能生
效。
二、使用VB内置的数据库引擎(Jet Engine DataBase)
在这里VB不能够识别Excel工作表的名称,必须先在工作表中对应
用数据范围进行命名在VB语句中作为RecordSet的名称。
在Excel工作表中对应用范围进行命名的方法:先在工作表中选定
好范围,再在Insert项下选取NameDefine进行命名。编程如下:
sub Form—load()
Dim mydb As DataBase ‘注一
Dim myrec As RecordSet
Set mydb=OpenDataBase("c:\mydir\mybook.xls",Flase,False,
"Excel4.0")
Set myrec=mydb.openRecordSet("Books")
Do Until myrec.EOF
If myrec![Name]="My Sun" Then ‘注二
Text1.text=myrec![date] ‘注三
Exit Do
end If
myrec.MoveNext ‘注四
loop
end sub
sub text1—click() ‘注五’
myrec.edit
myrec![Date]=text1.text
myrec.update
myrec.close
mydb.colse
end sub
以上代码注释如下:
注一:首先要为数据库及记录集建立一个变量名。如果在运行时
在此处出错,提示usere fined type not find,不能识别Database、R
ecordset等数据类型,即表示所使用的VB版本为非专业版本,没有Jet
Engine DataBase功能。
注二:在OpenRecordset执行成功后,BOOKS的第一条记录即进入内
存成为当前记录,并赋予变量myrec。myrec![Name]是取当前记录Name
栏的值。Excel栏目名称的缺省值是表中第一行的字符。
注三:当查找到书名为"My Sun"的记录时,就把该记录日期栏的内
容赋予文本框。
注四:把当前记录的指针移向下一记录。
注五:这段代码的功能是:当光标指向文本框,单点鼠标左键时,把
文本框的内容写入当前记录。其中edit和update配对使用,对当前记
录进行写入。
三、使用工具条的Data控件对Excel进行存取操作
使用Data控件是建立一个应用程序最容易的方法,在对外部数据
库存取时使用的代码最少,甚至不用任何代码。并且生成的应用程序
操作灵活而有效。
使用Data控件,需要同时建立一个或多个关联控件,所谓关联控件
,是指一些用于显示或修改数据库内容的控件,例如文本框、列表框、
组合框、标记框等。
我们首先对Data控件及关联控件的属性进行设置,可以在设计环
境中进行,亦可以使用代码语句在运行中设置。
在设置环境中设置的方法:
1.建立Data1控件后,进入Datal属性窗口,用鼠标左键单击Databa
seName的标有三点的小按钮,即弹出OpenFile的对话框,在此选出需要
的数据库文件,例如c:\mydir\m ybook.xls。
2.单击Connect项的下拉箭头,在下拉菜单中选出相应的数据库类
型及版本,例如Excel5 .0。
3.单Recordsource项的下拉箭头,在下拉菜单中选出相应的工作
表,例如Books。在选取好Excel数据库文件之后,工作书内的工作表、
栏目名称、已命名的范围已自动装入此下拉表中。
4.建立关联控件。用于显示或修改栏目内容,在这里以建立一个
文本控件作为例子。
5.在文本框的属性窗口中 ,单击DataSource下拉菜单,选Datal。
6.在文本框的属性窗口中,单击DataField的下拉菜单,选Name。
设置完毕即可运行。在文本框中首先显示第一个记录中的书名,以后
每单击一次Data框的箭头在文本框中就会显示下一个记录中的书名。
本程序在下列运行环境中通过:Windows 95,MS Office95,Excel5
..0,Visual Basic4.0
--
--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.3]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店