当前位置:文档之家› Access数据库操作技巧

Access数据库操作技巧

Access数据库操作技巧
Access数据库操作技巧

Access数据库开发技巧

窗体、查询、报表、宏的联合使用

将窗体、查询、报表、宏联合使用可以解决许多问题,是一项重要的技巧。

1、从窗体中获得查询中的条件

对于这个问题这里以成绩表的打印为例来说明。我们要打印不同班级的成绩表,首先建立相应报表的查询,在查询中的班级字段下的条件中输入条件:Between [forms]![打印表格]![开始班号] And [forms]![打印表格]![结束班号]。然后再建立一个“打印表格”窗体,在窗体中添加两个组合框控件,即“开始班号”、“结束班号”两个组合框控件,并且通过“打印表格”窗体中的命令按钮来执行报表的打印,则报表所依赖的查询中的班级条件可以从“打印表格” 窗体中的“开始班号”、“结束班号”两个组合框中所输入的数据而获得。

2、从窗体中获得宏中所需要的条件

对于这个问题现以主副成绩比较查询为例来说明。我们可以为不同的科目建立不同的主副成绩比较查询,然后再建立相应的宏,在宏中根据不同的条件如 [选择科目]=“语文”来打开相应科目的查询。然后再建立一个“主副比较”窗体,在窗体中添加一个组合框控件,即“选择科目”组合框控件,并且通过“主副比较”窗体中的命令按钮来执行

相应的宏,则宏所依赖的条件可以从“主副比较” 窗体中的“选择科目”组合框中所输入的数据而获得。

报表的生成技巧

1、运用查询生成报表

如何产生报表在前面已经讲过,应以查询为基础来建立报表,这样灵活方便。具体来说就是先由基表生成一个查询,将条件设置好,再用报表生成器以该查询为基础生成报表,不需要的字段可以从报表中删去,若以后需要可再在报表中添上,报表中需要的表头信息若经常变动,也可从窗体中来获得表头中所需的信息,可参见前面所述。

2、表格线的制作

报表中若需要表格线,不能再用制表符来构造,可以在报表的设计视图中用画线工具来制作,程序中不便画表格线。

模块的使用技巧

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 函数可用于确定特定记录集中的记录数。可以在

相关主题
文本预览
相关文档 最新文档