分享
 
 
 

Access数据库开发技巧(三)

王朝other·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

模块的使用技巧

Access最重要的特征就是一般不必去写程序,然而可能因为要执行复杂或专业的操作而必须在模块中用Visual Basic编写程序,然后通过窗体中的命令按钮来执行相应的程序完成相应的任务。比如排名次、分段统计等。在编写Visual Basic程序时要注意以下一些问题和技巧。

1、变量的运用

①对象变量的运用

在Access中运用Visual Basic编写程序,需要运用其数据访问对象。它包括数据库引擎(DBEngine)、工作空间(Workspace)、数据库以及数据库对象中的表、查询、记录集等对象。如缺省工作空间:DBEngine.Workspaces(0),当前数据库:DBEngine.Workspaces(0).Databases(0)。我们可以用一个对象变量来表示一个对象,这样将为编程带来很大方便。为对象变量赋值要用Set语句,而不要直接赋值。例如:

Dim thedb As Database

Set thedb = DBEngine.Workspaces(0).Databases(0)

②Variant 数据类型的运用

Variant 数据类型是所有没被显示声明(如 Dim、Private、Public 或 Static等语句)为其他类型变量的数据类型。Variant 是一种特殊的数据类型,除了定长 String 数据及用户定义类型外,可以包含任何种类的数据。Variant 也可以包含 Empty、Error、Nothing 及 Null特殊值。Empty 值用来标记尚未初始化(给定初始值)的 Variant 变量。内含 Empty 的 Variant 在数值的上下文中表示 0,如果是用在字符串的上下文中则表示零长度的字符串 ("")。Null 表示未知数据或丢失的数据,即无效数据。不应将 Empty 与 Null 弄混。Null 是表示 Variant 变量确实含有一个无效数据。

当有些量可能出现Null值时,可将该变量定义为Variant 数据类型。Variant 数据类型为编程者提供很大的灵活性,但牺牲了代码的速度和长度。

③通过变量来间接引用数据库对象及限定条件

为了增加灵活性,提高控制能力,减少代码的重复和运用循环语句,在程序中应充分运用变量来间接引用数据库对象和限定条件。比如各个年级学生成绩排名次的处理程序,只是各年级的成绩表名不同,我们可以将程序中的成绩表名用一个变量如“bzcjb”来表示,具体处理时再替换为具体的表名,如替换为高一年级的成绩表名“g1cjb”。

在具体运用中有一些问题要注意,如:

Dim thedb As Database

Set thedb = DBEngine.Workspaces(0).Databases(0)

Dim thecsb As Recordset

Set thecsb = thedb.OpenRecordset(bzcjb, DB_OPEN_DYNASET)

这里“bzcjb”可代表任意一个成绩表,若“bzcjb”本身就是一个已存在的数表名,则上述最后一个语句中的“bzcjb”应加上引号,如下所示:

Set thecsb = thedb.OpenRecordset("bzcjb", DB_OPEN_DYNASET)

再比如Dcount 函数可用于确定特定记录集中的记录数。可以在 Visual Basic、宏、查询表达式,或计算控件中使用 DCount 函数。

语法是:DCount(expr, domain[, criteria])

其参数如下:

expr 表达式,用于标识将统计其记录数的字段。可以是一个标识表或查询中字段的字符串表达式。 Expr可为字段的名称或“*”,除非是“*”, Dcount 函数对包含空字段的记录不记数,若为“*”,Dcount 函数计算记录总数。domain字符串表达式,代表组成域的记录集,可以是表的名称或查询的名称。criteria 可选的字符串表达式,用于限制 DCount 函数执行的数据范围。对于其限制条件criteria 可用一个变量来代替,比如要统计表“g1cjb”中字段“语文”分数大于等于80分的人数,可用下式来完成:

DCount("*", "g1cjb", " [班级]>=80")

假若用数字型变量“n”来替换“80”则如下:

DCount("*", "g1cjb", " [班级]>=" & n)

假若用字符型变量“n”来替换“80”则如下:

DCount("*", "g1cjb", " [班级]>=’" & n & "’")

要注意替代的形式是不同的。上面的符号“&”是连接运算符。

2、如何产生程序运行进度框

若在程序运行时能产生一个程序运行进度框将会增加不少乐趣,Access可以实现这一要求。本人在实践中摸索出一种简单的方法,就是通过在窗体中建两个文本框,一个大一点的长条形文本框(填充色为白色),作为外框,一个窄一点的长条形文本框(填充色为其他彩色,长度取为0.011厘米),作为产生程序运行流水线用,它们的初始状态均为不可见。然后在程序中控制其属性为可见的且修改进度流水线文本框的宽度来显示程序的进展情况。要注意的是为了让进度框在程序运行时能及时显示出来必须用SetFocus 方法将焦点移动到进度框上,并且要调整好流水线文本框与外框文本框的初始位置。注意,在用Width 属性改变控件宽度时其单位为“Twip”,1Twip=1/1440英寸,约为1/567厘米。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有