21世纪高等学校计算机基础教育系列教材 第12章 Sual Basic 数据库程序设计
第12章 Visual Basic 数据库程序设计 •人民邮电出版社 21世纪高等学校计算机基础教育系列教材
第12章数据库功能 数据控件和文本框控件进行数据库操作 Visual basic提供了两种与Jet数据库引擎接口的方法:数据控件和数据访问对象。数据控件给 出了一些几乎不需要编程的访问现存数据的功能,允许用户将Ⅴ isual basic的窗体与数据库方便地 中的数据,而且不需要程序员写程序。这里的访问数据指的是简单的“显 TADOX等数据库 进行连接。Ⅴ isual basic的数据对象能够轻易地访问Aces、 dBase、 FoxPro、Pa 浏览”、“编 “更新”等基本操作,对于较复杂的“査询”功能则必须要有程序设计才能够实现。在对 数据库的访问中,程序员必须设置数据控件( Data controls)的属性,才能够实现简单的数据访 问 ◇ Connect属性: Connect属性用来指定数据库类型。它的设置值如下: Access(默认值)这种情况下只能访问用Aces97所创建的数据库 FoxPro dBase Excel ParADOx Te Lotus ◇ DataBasename属性:用来指定具体使用的数据库。如果连接的是一个 Microsoft access数据库 就把该属性设置为扩展名为MDB的数据库文件,如果连接的是一个 dBase、 FoxPro或 ParADOX 等数据库,则要将该属性设置成相应类型的数据库的文件( dBase、 FoxPro数据库的扩展名为 dbf, ParADOX数据库文件的扩展名为db) 令 Record Type属性:用来确定具体的记录集合类型,记录集合类型可以是数据库中的表或 存储查询。如果用户使用的是 Microsoft access的MDB数据库,则应该将该属性设置为表( Table )记录集合类型;如果用其他类型的一种数据库,则应该将该属性设置成动态表( Dynaset)记 录集合类型;如果只对记录进行读操作,而不需要去更新任何数据的话,可以选择快照(
第12章 数据库功能 数据控件和文本框控件进行数据库操作 Visual Basic提供了两种与Jet数据库引擎接口的方法:数据控件和数据访问对象。数据控件给 出了一些几乎不需要编程的访问现存数据的功能,允许用户将Visual Basic的窗体与数据库方便地 进行连接。Visual Basic 的数据对象能够轻易地访问Access、dBase、FoxPro、ParADOx等数据库 中的数据,而且不需要程序员写程序。这里的访问数据指的是简单的“显示”、“浏览”、“编 辑”、“更新”等基本操作,对于较复杂的“查询”功能则必须要有程序设计才能够实现。在对 数据库的访问中,程序员必须设置数据控件(Data controls)的属性,才能够实现简单的数据访 问。 Connect属性:Connect 属性用来指定数据库类型。它的设置值如下: Access (默认值)这种情况下只能访问用Access97所创建的数据库 FoxPro dBase Excel ParADOx Text Lotus DataBasename属性:用来指定具体使用的数据库。如果连接的是一个Microsoft Access数据库 ,就把该属性设置为扩展名为MDB的数据库文件,如果连接的是一个dBase、FoxPro或ParADOx 等数据库,则要将该属性设置成相应类型的数据库的文件(dBase 、FoxPro数据库的扩展名为 dbf,ParADOx数据库文件的扩展名为db)。 RecordType属性:用来确定具体的记录集合类型,记录集合类型可以是数据库中的表或一个 存储查询。如果用户使用的是Microsoft Access的MDB数据库,则应该将该属性设置为表(Table )记录集合类型;如果用其他类型的一种数据库,则应该将该属性设置成动态表(Dynaset)记 录集合类型;如果只对记录进行读操作,而不需要去更新任何数据的话,可以选择快照( SnapShot)记录集合类型
第12章数据库功能 RecordSource属性:用来确定具体可访问的数据,可以是数据库种的单个表,也可以是一个存 储查询或者是使用SQL查询语言的一个查询字符串 由 ResordSource确定的具体可访问的数据构成的记录集合( RecordSet)也是一个对象,它也 具有和其它对象一样的属性和方法。 RecordSet记录集有名为BOF和EOF的属性, RECORDSETBOF用来判断是否在首记录之前,若该属性的值为True,则表示当前位置在记录 集的第一个记录之前。 RECORDSETEOF则是判断是否在末记录之后。 EOF和BOF属性具有以下特征: 当记录集中没有记录时,这两个值均为“真”(True) 当这EOF或BOF的值为“真”时,只有移动指针到实际存在的记录上,他们才会变为“假” EOF或BO为“假”,而且记录集中唯一一个记录被删除掉时,他们将保持为“假”,直到有 新的记录加入 创建或打开至少含有一个记录的记录集时,第一个记录将被当成当前记录,此时均为 RecordCount属性:用于计算记录集中现存记录的数量。对于表类型的记录集,该属性就是表 中的记录总数;对于快照或者动态记录集来说,该属性的值就是用户所访问过的记录的个数。 如果在记录集(包括表、动态表和快照)中没有记录,该属性值就是0 EOFaction和 BOFaction属性:记录集的EOF或BOF属性为真时, EOFaction和 BOFaction属性的 设置值或返回值决定数据控件要采取的动作
RecordSource属性:用来确定具体可访问的数据,可以是数据库种的单个表,也可以是一个存 储查询或者是使用SQL查询语言的一个查询字符串。 由ResordSource 确定的具体可访问的数据构成的记录集合(RecordSet)也是一个对象,它也 具有和其它对象一样的属性和方法。RecordSet记录集有名为BOF和EOF的属性, RECORDSET.BOF用来判断是否在首记录之前,若该属性的值为True,则表示当前位置在记录 集的第一个记录之前。RECORDSET.EOF则是判断是否在末记录之后。 EOF和BOF属性具有以下特征: 当记录集中没有记录时,这两个值均为“真”(True) 当这EOF或BOF的值为“真”时,只有移动指针到实际存在的记录上,他们才会变为“假” (False)。 EOF或BOF为“假”,而且记录集中唯一一个记录被删除掉时,他们将保持为“假”,直到有 新的记录加入。 当创建或打开至少含有一个记录的记录集时,第一个记录将被当成当前记录,此时均为 “假”。 RecordCount属性:用于计算记录集中现存记录的数量。对于表类型的记录集,该属性就是表 中的记录总数;对于快照或者动态记录集来说,该属性的值就是用户所访问过的记录的个数。 如果在记录集(包括表、动态表和快照)中没有记录,该属性值就是0。 EOFaction和BOFaction属性:记录集的EOF或BOF属性为真时,EOFaction和BOFaction属性的 设置值或返回值决定数据控件要采取的动作。 第12章 数据库功能
ReAdOnly属性:用于控制能否对记录集进行写操作,如果该属性的值为 真,则该记录集时不允许用户写入数据。 Move方法:用Move方法可以代替数据控件对象的4个箭头的操作,去遍历整个记录集 中的记录。这里一共有5种Move方法 ① Move first方法:移动到记录集的第一个记录 ② Movelast方法:移动到记录集的最后一个记录 ③ MoveNext方法:移动到记录集中当前记录的下一个记录 ④ Move Previous方法:移动到记录集中当前记录的前一个记录 Move[n]方法:在记录集中向前或向后移动个记录,指定的常数。 Move[n方法中,如果使用的是仅向前类型的快照记录集,则n的值只能是正整数 MoVe方法的语法结构:数据集合Move方法 2.Find方法:用Fnd方法可以在动态表 ynaset)或者是快照( SnapShot类型的记录集对象 中查找与给定的条件相符合的一个记录,并使它成为当前记录。这里共有四种Find方法 ① Findfirst方法:找到满足条件的第一个记录 ② Findlast方法:找到满足条件的最后一个记录 ③ Findnext方法:找到满足条件的下一个记录 ④ Findprevious方法:找到满足条件的前一个记录 Find方法的语法结构:数据集合Find方法条件
ReADOnly属性:用于控制能否对记录集进行写操作,如果该属性的值为 真,则该记录集时不允许用户写入数据。 1. Move方法:用Move方法可以代替数据控件对象的4个箭头的操作,去遍历整个记录集 中的记录。这里一共有5种Move方法: ① MoveFirst方法:移动到记录集的第一个记录 ② MoveLast方法:移动到记录集的最后一个记录 ③ MoveNext方法:移动到记录集中当前记录的下一个记录 ④ MovePrevious方法:移动到记录集中当前记录的前一个记录 Move [n]方法:在记录集中向前或向后移动个记录,指定的常数。 Move [n]方法中,如果使用的是仅向前类型的快照记录集,则n的值只能是正整数。 Move方法的语法结构:数据集合.Move方法 2. Find方法:用Find方法可以在动态表(Dynaset)或者是快照(SnapShot)类型的记录集对象 中查找与给定的条件相符合的一个记录,并使它成为当前记录。这里共有四种Find方法: ① Findfirst方法:找到满足条件的第一个记录 ② Findlast方法:找到满足条件的最后一个记录 ③ Findnext方法:找到满足条件的下一个记录 ④ Findprevious方法:找到满足条件的前一个记录 Find方法的语法结构:数据集合.Find方法 条件
Sek方法:用Sek法可在表中查找于指定索引规则相符的第一个记录,并使之成为当前 记录。 Refresh方法:用 Refresh方法来激活在设计状态时没有为数据库控件的有关属性赋值或数据 源在运行时被改变。 3. Close方法:用 Close方法关闭指定的数据库、记录集并释放分配给它的资源 Close方法的语法结构:对象 Close 4.数据输入方法:这里包括有添加记录( Addnew)、删除记录( Delete)、更新记录 ( Update),它们的语法结构为:数据控件记录集方法名 增加记录的操作分为三步 ①调用 Addnew方法 ②给各字段赋值,给字段赋值格式为: RecordSet field“字段名”)=值 ③调用 Update方法,确定所作的添加,将缓冲区的数据写入数据库。 在用 Addnew方法添加新记录后,但是还没有用 Update方法更新纪录集,就移动到其他记录, 或者关闭记录集,那么这些输入的数据将在没有任何提示的情况下全部丢失。 删除记录的操作也分为三步: ①定位被删除的记录使之成为当前记录 ②调用 Delete方法 ③移动记录指针 更新记录就是要去修改现有记录,使用程序代码修改记录的方法可以分为以下四步 ①定位要修改的记录,使之成为当前记录 ②调用Edi方法 ③给个字段赋值 ④调用 Update方法,确定所作的修改
1. Seek方法:用Seek方法可在表中查找于指定索引规则相符的第一个记录,并使之成为当前 记录。 2. Refresh方法:用Refresh方法来激活在设计状态时没有为数据库控件的有关属性赋值或数据 源在运行时被改变。 3. Close方法:`用Close方法关闭指定的数据库、记录集并释放分配给它的资源。 Close方法的语法结构:对象.Close 4. 数据输入方法:这里包括有添加记录(Addnew)、删除记录(Delete)、更新记录 (Update),它们的语法结构为:数据控件.记录集.方法名 增加记录的操作分为三步: ① 调用Addnew方法 ② 给各字段赋值,给字段赋值格式为:RecordSet.field(“字段名”)=值 ③ 调用Update方法,确定所作的添加,将缓冲区的数据写入数据库。 在用Addnew方法添加新记录后,但是还没有用Update方法更新纪录集,就移动到其他记录, 或者关闭记录集,那么这些输入的数据将在没有任何提示的情况下全部丢失。 删除记录的操作也分为三步: ① 定位被删除的记录使之成为当前记录 ② 调用Delete方法 ③ 移动记录指针 更新记录就是要去修改现有记录,使用程序代码修改记录的方法可以分为以下四步: ① 定位要修改的记录,使之成为当前记录 ② 调用Edit方法 ③ 给个字段赋值 ④ 调用Update方法,确定所作的修改