【VB开源代码栏目提醒】:网学会员鉴于大家对VB开源代码十分关注,论文会员在此为大家搜集整理了“使用VB开发Access应用程序(2) - 综合课件”一文,供大家参考学习
1 1.三步曲开端 2.用Field对象操作字段 3.结合Recordset对象使用定位方法 4.搜索记录集和表中的数据 5.使用Bookmark属性记录在Recordset中的位置 2 开发一个集于ADO技术的
VB数据库应用
程序的 三步曲开端三步曲开端 1.引用ADO类库 2.利用ADO的Connection对象连接可用的数据源 3.利用ADO的Recordset对象返回需要操作的记录集 3 1.中可引用ADO类库 ??Microsoft ActiveX Data Objects 2.0 Library ??Microsoft ActiveX Data Objects 2.1 Library ??Microsoft ActiveX Data Objects 2.5 Library ??Microsoft ActiveX Data Objects 2.6 Library 菜单工程→引用… 4 2.使用Connection对象连接可用的数据源 ??定义1个Connection对象 Dim cn As New ADODB.Connection ??设置Connection对象的CursorLocation属性为“位于客户端的游标”adUseClient cn.CursorLocation adUseClient ??定义连接字符串 providerMSDASQLdsnjet_bookdb“ODBC ProviderMicrosoft.Jet.OLEDB.4.0Data SourceD:bookdb.mdb“OLE DB ??通过Connection对象的Open方法建立数据连接 cn.Open providerMSDASQLdsnjet_bookdbODBC cn.Open ProviderMicrosoft.Jet.OLEDB.4.0Data SourceD:bookdb.mdb OLE DB 5 3.使用Recoedset对象返回需要操作的记录集临时表 ??定义1个Recordset对象 Dim rs As New ADODB.Recordset ??定义检索语句 可以是 SQL查询语句mysql select top 1 from book 或 直接是表名 my
sql “book ??通过Recordset对象的Open方法返回记录集建立临时表 rs.Open
mysql cn 或 rs.Open mysql cn adOpenStatic adLockOpti
mistic adCmdTable 分别设定 CursorType、 LockType和Options参数 6 使用Connection和Recordset的Close方法 通过使用Connection和Recordset的Close方法可以释放记录集关闭和数据源的连接。
Set Connectionnothing Connection.Close 和 Set Recordsetnothing Recordset.Close Set rs nothing Cn.Close 7 可以靠检查Field对象的Value属性来获得字段的值 因为Field对象的缺省属性是Value属性你只要引用Field对象即可不需要明显的引用Value属性 各种语法形式 rs.FieldsLastName rsLastName rsLastName 在Fields集合中也可以用索引来标识Field字段 rstEmployees.Fields0 可以使用索引循环遍历整个集合在每一轮的循环中将索引的值加一。
集合中的对象编号是从0开始的因此第一个Field的编号为0第二个为1依此类推。
字段的顺序是由基本表决定的。
通常按照打开记录集时取得的顺序对字段进行编号。
01.vbx 8 1 Recordset对象的定位方法 ??MoveFirst方法用于转到记录集的第一行。
??MoveNext方法用于转到记录集的下一行。
??MovePrevious方法用于转到记录集的上一行。
??MoveLast方法用于转到记录集的最后一行。
??Move方法用于按说明的个数移动记录。
9 2 使用BOF和EOF遍历记录集 BOF Record 1 Record 2 Record 3 EOF Recordset对象还提供了两个属性用于告知你此时是否到了记录集的开始处或末尾处 EOFEnd of File属性为True时表示你已移到了记录集的最 后一个元素后面。
BOFBeginning of File属性为True时表示你已移到了记录 集的第一个元素之前。
10 2 使用BOF和EOF遍历记录集 通
常用于遍历记录集的
代码便是把定位方法和BOF、EOF结合起来通常
代码是一个循环如下 Do Until EOF ’从字段Field中读取数据 rs.MoveNext Loop 11 3 使用BOF和EOF来确定一个记录集是否为空 即使记录集中没有—个记录BOF和EOF属性也是可用的。
事实上判断记录是否为空的最好方法就是检验BOF和EOF的值如果EOF和BOF都为True记录集中便没有记录。
BOF No records returned EOF 02.vbx 12 4 使用RecordCount属性来确定记录集中记录的条数 可以用RecordCount属性来找出在一个Recordset对象中一共有多少条记录。
03.vbx 5 当前记录在记录集中的位置 有的时候需要确定当前记录在记录集中的位置并将当前记录位置指示给用户。
例如可以用拨号盘或仪表盘等类型的控件显示当前的记录位置。
以下属性可以指示当前的记录位置AbsolutePosition属性。
AbsolutePosition属性的值为当前记录相对于0的位置。
然而不要误以为它就是记录号在当前记录处于不定状态时AbsolutePosition的值为一1。
另外在访问记录集时不能保证记录每次都以同样的顺序出现。
04.vbx 13 6 改变记录的值 为了使用ADO Recordset对象更新已有的记录可以遵循如下步骤 1打开一个记录集。
2给该Recordset对象中的字段分配值 3通过执行该Recodset对象的Update方法以保存该记录。
rs.Fields LastName Smith 或者因为Fields是Recordset对象的缺省集合在向字段赋值时可以省去对Fields集合的显式引用。
rsLastName Smith 4用记录集的update方法把记录保存到数据库。
14 7 用AddNew 和Update方法创建新记录 使用记录集的AddNew 和Update方法可以在任何可更新的Rocordset对象中创建新的记录在记录集中创建新记录的过程分为三步 1执行记录集的AddNew方法这将在记录集的末尾添加一个新的空白记录。
2使用通常向数据库字段赋值的语句为新记录赋值。
3用记录集的Update方法把记录写到数据库中。
DataEntr.vbx 15 搜索记录集和表中的数据 搜索和查询不同。
查询返回的是一个记录集。
搜索在记录集的全部记录中查找满足你说明的条件的单个记录。
针对ADO的记录集搜索数据使用Recordset的Find方法。
例如假定你有一个由顾客组成的记录集并且你对查找姓Smith的第一个顾客感兴趣则可以使用以下的
代码 rs.Find LastName’Smith’ 特别要记住的是与SQL SELECT查询不同搜索不会产生一个记录集。
当Find方法搜索 Recordset 中满足指定条件的记录如果条件符合则记录集位置设置在找到的记录上否则位置将设置在记录集的末尾。
Finder.vbx 查找客户 FirstNameDaryl LastnameHalpin 16 使用Bookmark属性记录你在Recordset中的位置 当你在一个Recordset对象上的执行操作时移来移去是常有的事有时还需要移回开始的地方用Recordset对象的Bookmark属性可以记住位置以便以后能够返回这个位置。
能提供Bookmark的记录集中每个记录都有其自己的Bookmark可以在任何时候进行检索和保存。
但是书签并不是存储在数据库中它们是在Recordset对象创建时自动生成的并且在Recordset对象被删除时自动丢弃。
Bookmark.vbx 使用书签的一般步骤如下 1移到记录集中想标书签的位置。
2把Recordset对象的Bookmark属性值赋于一个变体型Variant的变量这便为当前记录保存了唯一的书签。
3当想再回到该记录时将变体型Variant的变量的值赋给记录集的Bookmark属性当前记录变为标有书签的那个记录。