




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VB操作Access数据库方法使用ADODB首先,声明一个链接变量,并根据需要声明记录集变量。Dim LocCnn1 As ADODB.ConnectionDim LocRst1 As ADODB.Recordset建立与数据库的链接,如果数据库没有口令,最后一行可以不写(写上也不会错)。Set LocCnn1 = New ADODB.ConnectionLocCnn1.Open Provider=Microsoft.Jet.OLEDB.4.0?User ID=Admin? & _Data Source= & App.Path & 数据库名称.mdb?& _Mode=Share Deny None?Extended Properties=?Persist Security Info=False? & _Jet OLEDB?Database Password=asp561rbc? 这种方法虽然代码长一些,但对数据环境要求低,且结构清晰,所编写的发布程序也大为减小。由于与链接SQL Server等数据库的方法一样,因而大量的操作数据库的代码相同,当数据库需要由Access扩充到一些大型数据库,或由一些大型数据库裁剪出一个简单数据库时,程序的移植会比较方便。另外,这种方法对于Access97及Access2000均能很好地支持,兼容性好。对于大量插入、删除、修改等操作,只在Connection层进行即可,既可提高速度又可减少代码。如果还要获取具体的记录集内容,则须再根据条件打开具体的库表,代码如下:Set LocRst1 = New ADODB.Recordset LocRst1.CursorType = adOpenKeysetLocRst1.LockType = adLockOptimisticLocRst1.Open SELECT ? FROM 表名? LocCnn1?adCmdTextADO常用方法下面是我所掌握的使用ADO对数据库操作的一些常用方法,主要是提供给初学者作为参考,有不对的地方请指正。如有补充不胜荣幸准备工作=Dim conn As New ADODB.Connection 创建一个 Connection 实例,在这里使用New等于将Dim和Set合并为一段代码执行Dim rs As ADODB.Recordset 创建一个 Recordset 实例,不使用New 是因为,经常需要重复使用Set,因此没必要在这里使用Dim CnStr As String, Sql As String 创建两个字符串变量分别存放两个集合的SQL语句代码段1、装载数据库(不属于Recordset集合)=Dim FileNamw$, DbIp$, DbName$, DbUser$, DbPw$以上5个字符串变量分别表示文件路径和文件名、数据库地址、数据库名、数据操作员用户名、操作员密码FileName = App.Path & 数据库名DbIp = 数据库地址DbName = 数据库名DbUser = 数据操作员用户名DbPw = 操作员密码以上变量根据数据库类型的不同而不同,有可能只需要1至两个变量1)连接Access数据库:-CnStr = PROVIDER=microsoft.jet.oledb.3.51;persist security info =false;data source= & FileName & ;Jet OLEDB:Database Password= & DbPw2)连接Oracle数据库:-CnStr = PROVIDER=MSDAORA.1;Password= & DbPw & ;User ID= & DbUser & ;Data Source= & FileName & ;Persist Security Info=True其中:PASSWORD: 密码User ID: 用户号Data Source: 数据库名Persist Security Info:Provider:3)连接VF的DBF库:-CnStr = PROVIDER=MSDASQL.1;Persist Security Info=False;Driver=Microsoft Visual FoxPro Driver;UID= & DbUser & ;SourceDB= & FileName & ;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;4)连接SQL的数据库-CnStr = PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;uid= & DbUser & ;pwd= & DbPw & ;DRIVER=SQL Server;DATABASE= & DbName & ;WSID=GQSOFT;SERVER= & DbIP也可以使用这段简易代码 CnStr = Provider=SQLOLEDB;Data Source= & DbIp & ;DATABASE= & DbName & ;UID= & DbUser & ;pwd= & DbPwConn.Open cnstr 使用 Connection 集合的 Open 方法 与数据库建立连接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 返回列数阅读全文(463) | 回复(2) |反映问题 | 引用通告(0) | 编辑 标签:数据库 上一篇:rightleftmid函数的运用-读取路径中的文件名 下一篇:如何用纯代码来控制WMP的播放 2009-6-1 15:02:52Re:VB操作Access数据库方法工程引用 Microsoft ActiveX Data Objects 2.1 Library 然后添加代码: Private dbName As String 数据库名字 Private conn As ADODB.Connection 数据库连接 Private rs As ADODB.Recordset 搜索记录集 Private sqlString As String 搜索字符串 Private Sub Form_Load() 获得数据库地址 dbName = App.Path If Right(dbName, 1) Then dbName = dbName & dbName = dbName & zx.mdb 连接有密码数据库 Set conn = New ADODB.Connection conn.ConnectionString = _ Provider=Microsoft.Jet.OLEDB.4.0; & _ Data Source= & dbName & ; & _ Jet OLEDB:Database Password= & password 连接无密码数据库 Set conn = New ADODB.Connection conn.ConnectionString = _ Provider=Microsoft.Jet.OLEDB.4.0; & _ Data Source= & dbName & ; & _ Persist Security Info=False conn.Open 下面是一个例子,插入记录 你可以随便改变sqlString 执行你自己的操作 插入新纪录 Sub InsertData() sqlString = insert into txl (Name) values( & NewName & ) Set rs = conn.Execute(sqlString, , adCmdText) End Sub Private Sub Form_Unload(Cancel As Integer) 关闭数据库连接 rs.Close conn.Close End Sub个人主页 | 引用 | 返回 | 删除 | 回复2009-6-1 10:42:08Re:VB操作Access数据库方法在VB编程中通常要与数据库打交道,对于数据量较小的应用,一般选用Access作为数据库,因为Access数据库比较简单,功能也比较齐全,数据的备份、拷贝都很方便,且程序发布时不需要额外单独安装其它的数据库管理软件。因此,在功能能够满足要求的条件下,Access数据库往往成为一些小型数据库软件的首选。关于用VB操作Access库表的方法有多种,一般初学者往往会使用数据控件,许多资料上也大都以此作为操作Access数据库的起点来介绍,因为这个方法使用起来非常简单,但使用数据控件的方法在程序编码上往往不够灵活。现在介绍一下其它两种操作Access数据库的方法。第一种:使用数据库对象首先,要进行有关数据对象的声明,代码如下。Dim MyWs As WorkspaceDim MyDB As DatabaseDim WordTab As Recordset 生成工作区,打开数据库,然后再根据需要打开相应的库表。Set MyWs = DBEngine.CreateWorkspace? Admin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 31270.12-2025化学农药环境安全评价试验准则第12部分:鱼类急性毒性试验
- GB/T 46227-2025半导体单晶材料透过率测试方法
- 农业汇报课件
- 杂志刊登广告合同常用版样板5篇
- 婚前协议模板8篇
- 内部换岗安全培训记录课件
- 内部安全防范培训会课件
- 银行金属营销方案设计(3篇)
- 初中安全培训课件
- 化学实验学生安全培训课件
- 以桂为墨:高中桂花文化校本课程的开发与实践探索
- 2025年计算机二级JAVA考试中的真题练习试题及答案
- 数字政府效能评估体系-洞察阐释
- 2025年电力机车钳工(高级)职业技能鉴定理论考试题库(含答案)
- 智联招聘银行试题及答案
- 安置点管理制度
- 麻醉科职责及管理制度
- 教科版五年级上册科学期中测试卷附答案(夺分金卷)
- 药房管理规章制度目录
- 中职第1课 社会主义在中国的确立和探索试题
- 香港 信托合同范本
评论
0/150
提交评论