初识vb数据库开发之实例2(创建记录浏览窗口)

前端之家收集整理的这篇文章主要介绍了初识vb数据库开发之实例2(创建记录浏览窗口)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

制作特点

使用ADO访问数据源-特点

1.通过ODBC数据源访问数据库,代表了如何建立关系数据库的ODBC数据源

2使用ADO RecordSet对象保存数据,执行update方法实时更新

3通过文本框和按钮事件完成数据显示修改

设计分析

其实使用ADO可以直接翻跟Access 2000数据库(系统登录),本势力通过ODBC数据源访问期末地就是要说明如何建立和访问关系数据库的ODBC数据源

使用ADO更新数据源的方法

1 将数据检索保存到RecordSet对象中,用Update方法进行更新。如果使用断开连接的Recordset对象,则用UpdateBatch方法进行更新

2 用Command对象执行sql数据更新命令,这是不需要使用RecordSet对象或使用其他方法将数据检索到本地计算机

技术要领

RecordSet的Locktype 属性用于指定记录锁类型

adLockReadOnly:默认值,只读,无法更新数据

adLockPessimistic:保守式记录锁定,在编辑记录时立即锁定数据源的记录

adLockOptimistic:开放式记录锁定,在执行Update方法时锁定记录

adLockBatchOptimistic:开放式批更新,表示RecordSet用UpdateBatch方法更新多个记录,即在执行UpdateBatch方法时锁定记录

Recordset 的临时表位置(CursorLocation属性用于指定临时表位置)可设置为

adUseClient :客户端临时表,可以提供重新排序和使用索引查找记录等特有功能

adUseServer:服务器端临时表 ,由服务器端的被检索的数据源维护

注:ADO中的RecordSet默认为服务器端的单向只读临时表

浏览RecordSet中的记录

浏览RecordSet中的记录需要两个步骤。首先,定位当前记录,RecordSet打开时第一个记录为当前记录,然后用Field对象获得当前记录的各个数据列

RecordSet对象可用下列5个方法定位当前记录

1.MoveFirst:使记录指针指向第一个记录

2.MoveNext:使用记录指针指向下一个记录

3.MovePrevIoUs:使记录指针指向前一个记录

4.MoveLast:使记录指针指向最后一个记录

5.Move n:使记录指针指向从当前记录算起的第n个记录

:在浏览RecordSet时,Bof属相为true表示记录指针指向第一个记录之前,Eof属性为true时表示记录指针指向最后一个记录之后。这两个属性还可以用于测试RecordSet是否为空。

ODBC数据源类型

用户DSN :计算机本地数据源,只能被当前用户使用。

系统DSN:计算机本地数据源,可被任何就有权限的用户使用

文件DSN:可以不是计算机本地数据源,可被安装了相同驱动程序的用户共享

:connection对象在建立数据源连接时,默认使用MSDAsql驱动程序,所以在连接字符串中只需指定数据源名称即可例如:

objCn.Open"DSN=myaccess" '建立数据库连接

操作过程

1创建OODBC数据源

选择系统“开始”->程序 ->管理工具->数据源

单击添加按钮,选择Microsoft Access Driver

单击完成按钮,打开安装对话框

在数据源名文本框中输入“实例2DSN”作为新建数据源的名称,在说明文本框中输入“实例2Access数据源”,单击选择按钮

单击确定关闭对话框

如果要为ODBC数据源设置登录名称和密码等道济选项,可单击高级按钮,打开高级选项设置

如果使用Access数据库带有系统数据库,则应选择“ODBC Microsoft Access安装”对话框中的数据库,然后单击系统数据库按钮

如果要设置驱动程序的附加选项,包括页超时,缓冲区大小,独占区大小,独占和只读等,单击

ODBC Microsoft Access安装”对话框中的选项按钮,在对话框底部显示驱动序附加选项

单击确定按钮关闭安装对话框,新建的实例2DSN数据源显示在“ODBC数据源管理器”对话框列表中

单击确定按钮关闭OBDC数据源管理器”对话框,完成数据源创建操作

设计记录浏览窗体

注:最底下的那个文本框的locked的属性设置为true

建立ADO引用

工程->引用 选择Microsoft ActiveX Data Objects 2.5 Library

编写代码

Dim objrs As Recordset
Dim objcn As Connection
Dim isNeedSave As Boolean '用于标识是否需要执行保存操作

'添加前一记录的代码用户单击按按钮时先保存当前记录的修改,然后使前一个记录为当前记录

Private Sub Command1_Click()
  DoSave
  objrs.MovePrevIoUs
  If objrs.BOF Then objrs.MoveFirst
  '显示当前记录
  txtUserName = objrs.Fields("用户名").Value
  txtPassword = objrs.Fields("口令").Value
  txtMsg = objrs.AbsolutePosition & "/" & objrs.RecordCount
  
End Sub
'添加后一记录的代码用户单击按按钮时先保存当前记录的修改,然后使下一个记录为当前记录
Private Sub Command2_Click()
   DoSave
  objrs.MoveNext
  If objrs.EOF Then objrs.MoveLast
  '显示当前记录
  txtUserName = objrs.Fields("用户名").Value
  txtPassword = objrs.Fields("口令").Value
  txtMsg = objrs.AbsolutePosition & "/" & objrs.RecordCount
  
End Sub

'创建数据源连接,并检索数据,将检索到的第一个记录显示在窗体中 Private Sub Form_Load()
  Set objcn = New Connection  '实例化connection对象
  '连接数据库
  objcn.Open "DSN= 实例2DSN"
   Set objrs = New Recordset '创建客户端的记录集
  
  With objrs
       .CursorLocation = adUseClient '指定临时表位置
       .CursorType = adOpenDynamic   '指定使用键集游标
       .LockType = adLockOptimistic  '指定锁定类型
       .Open "SELECT*FROM 系统用户",objcn

  End With
  '显示第一个记录集
  txtUserName = objrs.Fields("用户名").Value
  txtPassword = objrs.Fields("口令").Value
  txtMsg = objrs.AbsolutePosition & "/" & objrs.RecordCount
  
End Sub
'定义一个过程执行数据更新操作
Private Sub DoSave()
  If isNeedSave Then
     objrs.Fields("用户名").Value = txtUserName
     objrs.Fields("口令").Value = txtPassword
     objrs.Update   '执行更新操作
  End If
End Sub

'如果修改了数据,则设置isneedsave为true
Private Sub txtPassword_Change()
  isNeedSave = True   '在修改当前记录字段时,设置保存标识
End Sub

Private Sub txtUserName_Change()
  isNeedSave = True   '在修改当前记录字段时,设置保存标识
End Sub
'Unload 事件代码,在窗体关闭时释放数据库的连接和ADO对象
Private Sub From_Unload(Cancel As Integer)
  Set objrs = Nothing    '释放记录集对象
  objcn.Close         '释放数据库连接
  Set objcn = Nothing '释放连接对象
End Sub
原文链接:https://www.f2er.com/vb/259747.html

猜你在找的VB相关文章