首先我们来介绍下ado对象:
1、access内嵌的vba是用ado技术开发数据库应用的主要工具,ado是目前microsoft通用的数据访问技术;
2、 ado对象模型包括:connection、recordset、record、command、parameter、field、property、stream、error九个对象;
相关推荐:access数据库教程
3、主要的ado对象介绍:
1)connection对象:ado对象模型中的最高级对象,用来实现应用程序与数据源的连接;
2)command对象:主要在vba中使用sql语句访问、查询和修改数据库中的数据,实现recordset对象无法实现的操作(数据表级别的操作),可以使用docmd代替;
3)recordset对象:ado最为常用的、重要的对象,可以访问表和查询对象,返回的记录储存在recorderset对象中,主要执行的操作:
①查询数据表中的数据;
②在数据表中添加数据;
③更新数据表中的数据;
④删除数据表中的特定数据;
在access中引用ado对象
1、access引用ado的步骤:
①声明、初始化connection对象;
②创建recordset对象,编程完成各种操作;
③关闭ado对象;
2、声明、初始化connection对象
\\\’声明connection对象:一般使用cn做为变量的命名前缀;
dim coname as adodb.connection\\\’初始化connection对象,连接当前数据库;
set cnname = currentproject.connection3、声明和打开recordset对象
1)声明、初始化recordset对象
dim rsname as adodb.recoresetset rsname = new adodb.recordset2)打开一个recordset对象
使用recordset的open方法可以打开数据表、查询对象、或直接引用sql查询语句
rsname.open source, activeconnection, cursortype,locktype,option
4、关闭recordset和connection对象
rsname.closecnname.closeset rsname = nothingset cnname = nothing通过recordset对象引用记录字段
1、引用字段的方法有2种:直接在记录集对象中引用字段名称;使用记录集对象的fields(n)属性引用;
code = rsname!字段名\\\’引用该字段的第一条记录
code = rsname .field(n)\\\’引用该字段的第n条记录,n从0开始,可以用循环输出需要量的记录
2、如果记录集字段包含空格、或者是一个保留字,则引用时必须将该字段用 [ ] 括起来;
通过recordset对象浏览记录
1.recordset记录集对象提供了4种方法浏览记录
2、 bof、eof属性分别记录指针是否在文件开始、文件末尾;
如果记录集指针指向某记录时,bof和eof都为false;
\\\’添加一个窗体部件的按钮事件:浏览下一条记录
priavte sub comomndnext_click() rsdemo.movenext if rsdemo。eof then rsdemo.movefirst end ifend sub3、recordset对象的locktype属性默认为adlockreadonly(只读)
通过recordset对象编辑数据
1、用addnew方法添加记录
1)调用记录集addnew方法,产生一个空记录
2)为空记录的各个字段赋值;
3)用记录集update方法更新保持新记录;
\\\’添加记录按钮事件,假设rsdemo记录集有字段id(int),name(string),age(int)
private sub commandadd_click() rsdemo.movelast \\\'记录集指针移动到记录集最后 rsdemo.addnew \\\'添加一条新纪录 rsdemo ! id = "123" rsdemo ! name = "assad" rsdemo ! age = "18" rsdemo.updateend sub2、用update方法修改记录
1)寻找并将记录集指针移动到需要修改的记录上;
2)对记录中的各个字段的值进行修改;
3)用记录集update方法更新保持新记录;
\\\’修改记录集中age字段所有值 1;
private sub updateage() rsdemo.movefirst do dim code as integer code = rsdemo ! age rsdemo ! age = code 1 loop until rsdemo.eof rsdemo.updateend sub3、用delete方法删除记录
1)将记录集指针移动到需要删除的记录上;
2)使用delete方法删除当前记录;
3)将某条记录指定为当前记录
\\\'删除rsdemo数据集中age = "18" 的记录private sub deleteage(dim deleteage as integer) rsdemo.movefirst do if rsdemo ! age == deleteage then rsdemo。delete rsdemo。movenext end if loop until rsdemo.eofend sub注: 一条记录被删除后,access不会自动是下一条记录成为当前记录,这时要用movenext方法将记录集指针定位到最后一条记录中;
通过command/docmd对象使用sql命令
access提供了docmd对象,其runsol方法可以在vba中使用sql命令;
docmd.runsql "sql命令"or:
dim s as string s = "sql命令" docmd.runsql s1、定义数据
1)创建数据表
格式: create table 表名 (字段名 数据类型…..)
如:docmd.runsql "create table 研究生(姓名 text(6),年龄 byte,入学日期 date)"
2)增加字段
格式: alter table 表名 add 字段名 数据类型
如:docmd.runsql "alter table student add 学费 currency"
3)改变字段类型
格式: alter table 表名 alter 字段名 新数据类型
如:docmd.runsql "alter table student alter 年龄 integer"
4)改变字段宽度
格式: alter table 表名 alter 字段名 新宽度
如:docmd.runsql "alter table studnt alter 姓名 text(6)"
5)删除一个字段
格式: alter 表名 drop 字段名
如: docmd.runsql "alter student drop 年龄"
6)删除一个数据表
格式: drop table 表名
如:docmd.runsql "drop table student"
7)修改数据表名字
格式: docmd.rename "新表名", actable, "旧表名"
如:docmd.rename "学生", actable, "student"
2、编辑数据
1)向表中追加数据
格式: insert into 表名 values(记录…..)
注: 字符串型数据用 ‘ ’, 日期型型数据可以 ‘ ’,或 # #;
如:docmd.runsql "insert into student values(\\\’李达\\\’,35,\\\’2003-1-
轻松搞定VIM高亮NGINX配置文件的方法国内低价安徽滁州云服务器地址网站之前用的是香港空间-虚拟主机/数据库问题WordPress网站程序完全真正地禁用修订版本使文章ID序号连续教程分享HTTPS和HTTP的不同对网站优化有什么影响呢?国外域名注册商企业域名注册 个人选择哪家国外域名注册商哪个云服务器快外贸人士自述邮件群发提高到达率的策略