VB操做Access数据库方法

'一、首先声明一个连接对象,声明记录集对象,定义一个数据连接字符串数据库

'方法1:ide

Dim adocn As New ADODB.Connection  '声明一个连接对象对象

'方法2:排序

'Dim adocn As ADODB.Connection索引

'Set adocn = New ADODB.Connection字符串

Dim strconn As String  '定义一个数据连接字符串io

strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\users.mdb"date

adocn.Open strconn    '使用 Connection 的 Open 方法 与数据库创建链接select

Dim adors As New ADODB.Recordset  '声明记录集对象权限

二、Recordset集合的经常使用方法
==========================

'1)打开一个表
'------------

Sql = "select * from 表名" 'SQL查询语句
Set rs = New ADODB.Recordset '新建一个实例
rs.Open Sql, conn '使用 Open 方法打开数据库中的一个表

'注意,这种打开方式只能使用 rs.MoveNext (即,向后移动行坐标)而不能像其余方向,而且不能修改数据内容
'
'rs.Open Sql, conn,1 '虽然只加了个“1”,但这种方法能够向任何方向移动行坐标。
'
'如下参数表明了这个可选值的含义
'0 = adOpenForwardOnly (默认值)打开仅向前类型游标。
'1 = adOpenKeyset       打开键集类型游标。
'2 = adOpenDynamic      打开动态类型游标。
'3 = adOpenStatic       打开静态类型游标。
'
'虽然使用以上方法能够能够实现行坐标(游标)的任意移动,可是仍然没法写入数据。所以须要进一步的对Open 方法进行完善

'rs.Open Sql, conn, 1, 3  '后面的3是肯定读写权限的

'如下参数表明了这个可选值的含义
'1 = adLockReadOnly        (默认值)只读 — 不能改变数据。
'2 = adLockPessimistic     保守式锁定(逐个) — 在编辑时当即锁定数据源的记录。
'3 = adLockOptimistic      开放式锁定(逐个) — 只在调用 Update 方法时才锁定记录。
'4 = adLockBatchOptimistic 开放式批更新 — 用于批更新模式(与当即更新模式相对)。
'
'2)读写数据
'----------
'增长一行记录并对新记录的内容进行修改并保存能够以下写法
rs.AddNew '增长一行记录
rs("...")="..."    '数据读写操做
...
rs.UpDate '保存写入资料,若是使用只读权限,则不能使用这个方法
rs.Close  '这个方法用来关闭你所代开的表,若是不使用这个方法也能够,可是数据库仍然认为你在对标进行锁定,可形成数据库负担太重

二、对数据进行筛选和排序
=======================
Sql = "select * from 表名" 'SQL查询语句
'以上为打开一个表的全部内容

Sql = "select top 50 * from 表名" 'SQL查询语句
'以上为只打开前50行的记录

Sql = "select top 50 列名1,列名2,列名5 from 表名" 'SQL查询语句
'以上为只打开前50行的记录,而且只打开第一、二、5列数据

Sql = "select * from 表名 where 列名1='" & 字段 & "'" 'SQL查询语句
'以上为一个简单的筛选,表示打开的内容必须符合[列名1='" & 字段 & "'"]的内容
'须要注意的是,数据库列的类型必须匹配,好比字符串类型须要以单引号括起
'而数字类型则不能用单引号括起
'另外SQL语句还支持通配符,例如 列名1 like '%" & 字段 & "%'" 表示包含[字段]
'在表达式中的匹配
'? _(下划线) 任何单一字符
'* or %        零个或多个字符
'#             任何单一数字(0 — 9)
'[charlist]    任何在字符表中的单一字符
'[!charlist]   任何不在字符表中的单一字符
'注:根据数据库的不一样?、_和*、%的应用有所差异,好比SQL只使用% 和 _ 分别表明多个字符和单一字符

Sql = "select * from 表名 where 列名1='" & 字段 & "' ORDER BY 字段1 ASC" '对查询结果进行升序排列
Sql = "select * from 表名 where 列名1='" & 字段 & "' ORDER BY 字段1 DESC"  '对查询结果进行降序排列
Sql = "select * from 表名 where 列名1='" & 字段 & "' ORDER BY 字段1 DESC, ORDER BY 字段2 DESC"  '对查询结果进行多维降序排列(速度奇慢,不推荐使用)

三、Recordset集合的经常使用属性方法
==============================
rs.BOF        '是否游标在最上边
rs.EOF        '是否游标在最下边
rs.RecordCount    '记录集的行数(若是使用像前类型的游标,可能返回不许确)
rs.AddNew    '新建一行记录
rs.Update    '保存当前行被修改的记录
rs.Delete    '删除当前行
rs.Close    '关闭记录集

四、Fields集合的一些属性的解释
=============================
'如下为简写,正常状况须要rs.Fileds.。。。可是Fields属于Recordset的一个默认集合,所以能够省略

rs()  '括号内能够是列名也能够是列的序号例如:rs("姓名")、rs(3) 都是是能够的

rs(3).Name  '返回列名
rs(3).Type  '返回列的类型
rs(3).Value '返回当前行的值
rs.Fields.Count '返回列数

 

'VB中,当你打开一个数据集时,须要声明一个数据集对象,在它的下面会有一个字段集合,这个字段集合就是fields。'使用方法:'rs(数据集对象).fields("字段名称")或'rs(数据集对象).Fields (字段索引号)

相关文章
相关标签/搜索