Access数据库开发技巧(二)
来源:程序员人生 发布时间:2013-10-20 21:25:32 阅读次数:2708次
模块的使用技巧
Access最重要的特征就是一般不必去写程序然而可能因为要执行复杂或专业的操作而必须在模块中用Visual Basic编写程序然后通过窗体中的命令按钮来执行相应的程序完成相应的任务比如排名次分段统计等在编写Visual Basic程序时要注意以下一些问题和技巧
变量的运用
①对象变量的运用
在Access中运用Visual Basic编写程序需要运用其数据访问对象它包括数据库引擎(DBEngine)工作空间(Workspace)数据库以及数据库对象中的表查询记录集等对象如缺省工作空间DBEngineWorkspaces()当前数据库DBEngineWorkspaces()Databases()我们可以用一个对象变量来表示一个对象这样将为编程带来很大方便为对象变量赋值要用Set语句而不要直接赋值例如
Dim thedb As Database
Set thedb = DBEngineWorkspaces()Databases()
②Variant 数据类型的运用
Variant 数据类型是所有没被显示声明(如 DimPrivatePublic 或 Static等语句)为其他类型变量的数据类型Variant 是一种特殊的数据类型除了定长 String 数据及用户定义类型外可以包含任何种类的数据Variant 也可以包含 EmptyErrorNothing 及 Null特殊值Empty 值用来标记尚未初始化(给定初始值)的 Variant 变量内含 Empty 的 Variant 在数值的上下文中表示 如果是用在字符串的上下文中则表示零长度的字符串 ("")Null 表示未知数据或丢失的数据即无效数据不应将 Empty 与 Null 弄混Null 是表示 Variant 变量确实含有一个无效数据
当有些量可能出现Null值时可将该变量定义为Variant 数据类型Variant 数据类型为编程者提供很大的灵活性但牺牲了代码的速度和长度
③通过变量来间接引用数据库对象及限定条件
为了增加灵活性提高控制能力减少代码的重复和运用循环语句在程序中应充分运用变量来间接引用数据库对象和限定条件比如各个年级学生成绩排名次的处理程序只是各年级的成绩表名不同我们可以将程序中的成绩表名用一个变量如bzcjb来表示具体处理时再替换为具体的表名如替换为高一年级的成绩表名gcjb
在具体运用中有一些问题要注意如
Dim thedb As Database
Set thedb = DBEngineWorkspaces()Databases()
Dim thecsb As Recordset
Set thecsb = thedbOpenRecordset(bzcjb DB_OPEN_DYNASET)
这里bzcjb可代表任意一个成绩表若bzcjb本身就是一个已存在的数表名则上述最后一个语句中的bzcjb应加上引号如下所示
Set thecsb = thedbOpenRecordset("bzcjb" DB_OPEN_DYNASET)
再比如Dcount 函数可用于确定特定记录集中的记录数可以在 Visual Basic宏查询表达式或计算控件中使用 DCount 函数
语法是DCount(expr domain[ criteria])
其参数如下
expr 表达式用于标识将统计其记录数的字段可以是一个标识表或查询中字段的字符串表达式 Expr可为字段的名称或*除非是* Dcount 函数对包含空字段的记录不记数若为*Dcount 函数计算记录总数domain字符串表达式代表组成域的记录集可以是表的名称或查询的名称criteria 可选的字符串表达式用于限制 DCount 函数执行的数据范围对于其限制条件criteria 可用一个变量来代替比如要统计表gcjb中字段语文分数大于等于分的人数可用下式来完成
DCount("*" "gcjb" " [班级]>=")
假若用数字型变量n来替换则如下
DCount("*" "gcjb" " [班级]>=" & n)
假若用字符型变量n来替换则如下
DCount("*" "gcjb" " [班级]>=;" & n & ";")
要注意替代的形式是不同的上面的符号&是连接运算符
如何产生程序运行进度框
若在程序运行时能产生一个程序运行进度框将会增加不少乐趣Access可以实现这一要求本人在实践中摸索出一种简单的方法就是通过在窗体中建两个文本框一个大一点的长条形文本框(填充色为白色)作为外框一个窄一点的长条形文本框(填充色为其他彩色长度取为厘米)作为产生程序运行流水线用它们的初始状态均为不可见然后在程序中控制其属性为可见的且修改进度流水线文本框的宽度来显示程序的进展情况要注意的是为了让进度框在程序运行时能及时显示出来必须用SetFocus 方法将焦点移动到进度框上并且要调整好流水线文本框与外框文本框的初始位置注意在用Width 属性改变控件宽度时其单位为TwipTwip=/英寸约为/厘米
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠