实例1
首先是 ADO Connection对象代表打开的,与数据源的连接,在访问数据源之前,必须先建立连接, ado connection对象的属性和方法,分别如下,
connectionstring 属性, 指定连接数据源的基本信息,
Ado访问access数据库,连接字符串为
provider=microsoft.jet.oledb.3.51;data asource="app.path & "\***.Mdb"
open方法,打开数据源连接a
Close 方法,关闭数据源连接
Ado recordset 对象
用户保存从数据源获得的记录集,方法如下
activeconnection属性,代表数据源的活动连接,通常将其设置为己建立的connection对象
EOF属性, 如果当前记录位于记录的最后一个记录之后, eof属性将返回true,否则返回false
Fiedls 集合,包括recordset 对象的所有fields对象, 可以用fields 来获得当前记录各个字段的值
Obrs.fields(“口令”).value
Open 方法, 打开记录集
sql命令字符串
objrs.open ("select 口令 FROM 系统用户 where 用户名= ' admin'"
实例2
出现如下问题
[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
原因是系统为64位的win7,不能用32位的odbc创建,应选择64位的创建。方法如下
选择新dsn要用64位的odbc,在C:\Windows\SysWOW64\中寻找odbcad32.exe用它创建。
主要是ODBc 数据源 ,ado connection 和recordset 对象
Ado 更新数据有两种方法
1 使用recordeset 对象中,用update方法更新,
2 使用ncommand 对象执行dql 数据更新命令
Recordset 记录锁类型 有四种类型
AdLockreadonly 默认值,只读,发放更新数据
Adlockpessimistic 保守式就,在编辑记录时立即锁定数据源的记录
Adlockoptmistic 发相识记录锁定,在执行update方法时锁定记录
AalockbatchOptimistic 开放式批更新,表示Recordset 用Updatebatch方法更新多个记录,即在执行updatebatch方法时锁定记录
Recordset的临时表位置
recordst的cursorlocation 属性用于指定临时表的位置,可以设置为下列值
adUseclient 客户端临时表,
adUseServer 服务器临时表
默认为服务器单项只读临时表
浏览recordset 中的记录
五个方法定位当前记录
MoveFrist 指向第一个记录
MoveNEXt 下一个记录
Moveprevious 使记录指针指向前一个记录
Movelast 指向最后一个记录
Move n是记录指针指向从当前记录算起的第n个记录
如果recordset 不包含任何记录,则bof和eof属性同时为true,如
If not (rs.bof and rs.eof) then
rs.movefirst
while not rs.eof
rs.movenext
'执行代码处理当前记录
Wend
end if
ODBC数据源类型
可分为三种
用户DSN计算机本地数据源,只能被当前用户使用
系统DSN 计算机本地数据,可悲任何具有权限的用户使用
文件DSN,可以不是计算机本地数据,可被安装了相同驱动程序的用户共享驱动程序,所以在连接字符串中只需要指定数据源名称即可
Connection 对象, recordst 对象和一个布尔变量,
Connection 对象用于建立数据源连接,recordset 对象用于保存从数据源检索的数据,布尔变量用户表示当前记录是否被改变
添加窗体的load 事件代码,要加载创建数据源连接,并检索数据,同时将检索的第一个记录显示在窗体中
Private sub Form_load()
Set objcn=new connection ‘ 实例化connection对象
Objcn.open “DSN=***” ‘建立数据库连接
Set objrs =new new Redordset 创建客户端的记录
实例3
出现如下问题
aod 出现
系统错误:&H8007007E(-2147024770)。找不到指定的模块
以前是正常的,突然发现多个Ocx,
方法是或删除多余的那个控件,就正常了。
数据绑定控件
ADO data 控件
数据环境
ADO data 控件属性设置
可以再属性窗口中设置,也可以使用属性页 对话框设置 ado data 控件属性
通用 选项卡
连接方式
data link wenjian
ODBCshujuyuan 和使用连接字符串
身份选项卡
记录源选项卡
用于设置访问数据源使用的具体方式
实例4
出现如下错误提示
Recordset这里,
主要还是没有引用的原因,虽然窗体中没有ado控件,但是使用了记录,就必须引用。这里没有引用就会出现错误。
记录集的分页特性
dataagrid 控件
MSFLexGrid 控件
记录集额pagesize 属性用于设置或返回一个记录页中可以包含的记录个数,其默认值是10
记录集的分页特性
属性如下
pagesize属性
Pagecount 属性 返回一个记录集的记录页总数
Absolutepage 属性,设置或返回当前记录页编号
DataGrid控件
MSflexgrid控件属性
CLos属性
设置或返回控件的列数
Rows属性,设置和翻译控件的行数
textmatrix 设置和返回控件任意单元格的文本内容。
Objdatasource.addnew
Objdatasource!用户名=objrs!用户名
在窗体加载过程中,创建数据库连接和recordset兑现,并设置记录页大小,同时显示第1个记录页数据’
Private sub from_load()
Dim strsql as string , strcn as string
txtpagesize="5"
Intpage=1
Strcn="provideer=microsoft.oledb.4.0;persist security info=false; & data sourcre=" & app.path&""
Ogjcn.connection=strcn
Objcn.open
最后释放对象
private sub form_unload( cancle as integer)
Objcn.close
set Objcn=nothing
Set objrs=nothing
End sub
实例5
出现如下错误提示:
主要原因还是不细心
VB中非法变量名包括:
系统保留字,以数字开头的变量,某些以@开头的变量,不连贯含空格的变量
说明你重复使用了两个for 但是只有一个next...
比如说应该是:
for i=xx to xx
xxxx
‘next i (这个next 没起作用)
for i=xx to xx
xxxx
next i
这种情况就会显示for control 控件变量已在使用
Ado command对象
参数查询
使用adO command对象创建参数查询一查询数据库
实现数据库查询有以下三种
1 使用查询参数构造sql select 语句,然后使用adocommand对象或recordset 对象执行查询语句
2 使用ado command 对象创建参数查询
3 先执行select 语句获取数据库对象,将其存放到recordset 对象中,然后执行recordset对象的find方法查找符合条件的记录,或设置recordset对戏那个的filter属性筛选符合条件的记录
添加和删除
Obj.clear
Obj.additem(string,index)
也可以用removdtiem 指定删除行
使用command兑现刚创建参数查询
1 创建command对象
Commandtext="select *from 系统用户 where 用户名 like?"
2 使用command对象
createparmeter方法创建对象,
在窗体加载的Load时间过程代码,在窗体加载时创建数据库连接和command对象,并建立查询
Private sub From_load()
Set objcn= New Connection
Objcn.connectionstring=”provider=Microsoft.oledb.4.0;persist security info=rfalse;” &data source=” &App.path & “\***.mdb” ‘创建数据库连接
Objcn.open ‘打开数据库连接
‘创建执行参数查询的command对象objcmd
Set objcmd=new command
Set objcmd.activeconnection=objcn