VB操作Access数据库方法

‘1、首先声明一个链接对象,声明记录集对象,定义一个数据链接字符串

‘方法1:

Dim adocn As New ADODB.Connection  ‘声明一个链接对象

‘方法2:

‘Dim adocn As ADODB.Connection

‘Set adocn = New ADODB.Connection

Dim strconn As String  ‘定义一个数据链接字符串

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

adocn.Open strconn    ‘使用 Connection 的 Open 方法 与数据库建立连接

Dim adors As New ADODB.Recordset  ‘声明记录集对象

2、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  ‘这个方法用来关闭你所代开的表,如果不使用这个方法也可以,但是数据库仍然认为你在对标进行锁定,可造成数据库负担过重

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

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

Sql = "select top 50 列名1,列名2,列名5 from 表名" ‘SQL查询语句
‘以上为只打开前50行的记录,并且只打开第1、2、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"  ‘对查询结果进行多维降序排列(速度奇慢,不推荐使用)

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

4、Fields集合的一些属性的解释
=============================
‘以下为简写,正常情况需要rs.Fileds.。。。但是Fields属于Recordset的一个默认集合,因此可以省略

rs()  ‘括号内可以是列名也可以是列的序号例如:rs("姓名")、rs(3)
都是是可以的

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

时间: 2024-10-13 12:35:10

VB操作Access数据库方法的相关文章

Winform操作Access数据库增删改操作学习笔记

此程序是本人学习Winform操作Access数据库时学习笔记. 程序源码来源于:<Visual C# 2008 程序开发入门与提高 >赵增敏 编著 操作方法: 1.新建一个Winform项目,并将该项目设置为启动项目: 2.复制数据库文件到程序根目录下. 3.添加3个Label.两个TextBox.一个ListBox,四个Button控件. 4.窗体底部Label修改名称为“labelMsg”,两个文本框修改名称为:textboxSurname,textboxName. 5.列表框命名为Li

MFC通过ADO操作Access数据库

我在<VC知识库在线杂志>第十四期和第十五期上曾发表了两篇文章--"直接通过ODBC读.写Excel表格文件"和"直接通过DAO读.写Access文件",先后给大家介绍了ODBC和DAO两种数据库访问技术的基本使用方法,这次要给大家介绍的是ADO数据库访问技术的使用方法.ADO(Active Data Object,活动数据对象)实际上是一种基于COM(组件对象模型)的自动化接口(IDispatch)技术,并以OLE DB(对象连接和镶入的数据库)为基础

asp.net 连接access数据库方法

在 Web.Config 中配置 Access 数据库驱动和数据库文件名称. 请看代码 <appSettings> <add key="DBDriver" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source ="/> <add key="DBName" value="Company.mdb"/> </appSettings>

VC++中使用ADO方式操作ACCESS数据库

ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API.DAO.RDO都要容易使用,并不失灵活性.本文详细地介绍在Visual C++开发环境下如何使用ADO来进行数据库应用程序开发,并给出示例代码.为了使读者朋友都能测试本例提供的代码,我们采用Access数据库,您可以直接在我们提供的示例代码中找到

C#操作Access数据库中遇到的问题(待续)

(1)在向Access中插入数据时,显示语法错误,后来将生成的sql语句单独拿到Access数据库中运行,能正确插入数据,从网上寻找资料,有人的sql语句正常,但是该语句在Access中运行错误,错误原因为:sql语句中包含了access的保留字,并列举了保留字.通过对比自己写的sql语句,没发现保留字存在,后来实在没别的办法,将所有的字段都用[]包含起来,再次运行,正常插入,问题解决. (2)向access中插入时间,显示操作符丢失.解决办法:将地段前后加上#,即  #字段名# ,问题解决.

C#操作access数据库

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法 去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe下载.然后安装就行了. 用access2013在D盘建一个数据库fp.accdb. using System.Data.OleDb; using System.Data.SqlClient; Ol

C#操作MongoDB数据库方法

本文利用MongoDB官方发布的C#驱动,封闭了对MongoDB数据库的增删改查访问方法. 1.引用MongoDB for C# Driver 从网上下载C#访问MongoDB的驱动,得到两个DLL: MongoDB.Driver.dll MongoDB.Bson.dll 将它们引用到项目中. 2.编写数据库访问帮助类 编写MongoDB访问帮助类MongoDbHelper: 1 using System; 2 using System.Collections.Generic; 3 using

ACCESS-关于DELPHI中操作ACCESS数据库中单精度数据的问题

在近日几个帖子里面,和QQ群的讨论里面,我发现很多网友都遇到的问题都是因为不恰当地使用了单精度/双精度数值.因此想专门就这个话题谈一下. 单精度和双精度数值类型最早出现在C语言中(比较通用的语言里面),在C语言中单精度类型称为浮点类型(Float),顾名思义是通过浮动小数点来实现数据的存储.这两个数据类型最早是为了科学计算而产生的,他能够给科学计算提供足够高的精度来存储对于精度要求比较高的数值.但是与此同时,他也完全符合科学计算中对于数值的观念: 当我们比较两个棍子的长度的时候,一种方法是并排放

操作ACCESS数据库总结

一 CDaoRecordset是DAO的,CRecordset是ODBC的, VC++6.0都提供了一些编程接口.主要以下五种: 1.ODBC API: 2.MFC ODBC类: 3.MFC DAO类:(数据访问对象) 4.MFC的OLE/DB: 5.ActiveX数据对象(ADO). 二 rs.GetFieldValue(0co1); 和rs.GetFieldValue((short)0,co1);不同的: 因为以下函数是重载函数: void GetFieldValue(LPCTSTR lps