首页 专题 Access 利用ADO技术操作access数据库的方法

利用ADO技术操作access数据库的方法

Nov 17, 2020 pm 04:22 PM
access 数据库

利用ADO技术操作access数据库的方法

首先我们来介绍下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做为变量的命名前缀;

1

Dim coName As ADODB.Connection

登录后复制

'初始化Connection对象,连接当前数据库;

1

Set cnName = CurrentProject.Connection

登录后复制

3、声明和打开Recordset对象

1)声明、初始化Recordset对象

1

2

Dim rsName As ADODB.Recoreset

set rsName = new ADODB.Recordset

登录后复制

2)打开一个Recordset对象

使用Recordset的Open方法可以打开数据表、查询对象、或直接引用SQL查询语句

1

rsName.Open source, ActiveConnection, CursorType,LockType,Option

登录后复制

86bf1320e964a199e0946fe69956fe3.png

4、关闭Recordset和Connection对象

1

2

3

4

rsName.Close

cnName.Close

Set rsName = Nothing

Set cnName = Nothing

登录后复制

通过Recordset对象引用记录字段

1、引用字段的方法有2种:直接在记录集对象中引用字段名称;使用记录集对象的Fields(n)属性引用;

1

Code = rsName!字段名

登录后复制

'引用该字段的第一条记录

1

Code = rsName .Field(n)

登录后复制

'引用该字段的第n条记录,n从0开始,可以用循环输出需要量的记录

2、如果记录集字段包含空格、或者是一个保留字,则引用时必须将该字段用 [ ] 括起来;

通过Recordset对象浏览记录

1.Recordset记录集对象提供了4种方法浏览记录

301bb0c2344b5b13ec8c3abd6119c9b.png

2、 BOF、EOF属性分别记录指针是否在文件开始、文件末尾;

如果记录集指针指向某记录时,BOF和EOF都为false;

'添加一个窗体部件的按钮事件:浏览下一条记录

1

2

3

4

5

6

Priavte Sub ComomndNext_Click()

     rsDemo.MoveNext

     If rsDemo。EOF Then

          rsDemo.MoveFirst

     End If

End Sub

登录后复制

3、Recordset对象的LockType属性默认为adLockReadOnly(只读)

f7f9cff8f137d826904530a066735ce.png

通过Recordset对象编辑数据

1、用AddNew方法添加记录

1)调用记录集AddNew方法,产生一个空记录

2)为空记录的各个字段赋值;

3)用记录集Update方法更新保持新记录;

'添加记录按钮事件,假设rsDemo记录集有字段Id(int),Name(String),Age(int)

1

2

3

4

5

6

7

8

Private Sub CommandAdd_Click()

     rsDemo.MoveLast  '记录集指针移动到记录集最后

     rsDemo.AddNew  '添加一条新纪录  

     rsDemo ! Id = "123"

     rsDemo ! Name = "assad"

     rsDemo ! Age = "18"

     rsDemo.Update

End Sub

登录后复制

2、用Update方法修改记录

1)寻找并将记录集指针移动到需要修改的记录上;

2)对记录中的各个字段的值进行修改;

3)用记录集Update方法更新保持新记录;

'修改记录集中Age字段所有值+1;

1

2

3

4

5

6

7

8

9

Private Sub UpdateAge()

     rsDemo.MoveFirst

     Do

          Dim Code as Integer

          Code = rsDemo ! Age

          rsDemo ! Age = Code +1

     Loop Until rsDemo.EOF

     rsDemo.Update

End Sub

登录后复制

3、用Delete方法删除记录

1)将记录集指针移动到需要删除的记录上;

2)使用Delete方法删除当前记录;

3)将某条记录指定为当前记录

1

2

3

4

5

6

7

8

9

10

'删除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.EOF

End Sub

登录后复制

注: 一条记录被删除后,Access不会自动是下一条记录成为当前记录,这时要用MoveNext方法将记录集指针定位到最后一条记录中;

通过Command/DoCmd对象使用SQL命令

Access提供了DoCmd对象,其RunSOL方法可以在VBA中使用SQL命令;

1

DoCmd.RunSQL "SQL命令"

登录后复制

or:

1

2

3

Dim s AS String

s = "SQL命令"

DoCmd.RunSQL s

登录后复制

1、定义数据

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-15') "

或:

1

2

3

4

5

6

Dim name As String

Dim age As Byte, dates As Date        

name = InputBox("输入学生姓名")        

dates = InputBox("输入入学日期")         

ages = 17         

DoCmd.RunSQL "Insert into student Values ('" & name & "'," & age & ",'" & dates & "')"

登录后复制

2)修改表中记录

格式: Update 表名 set 字段=数值 Where 限定条件

如:DoCmd.RunSQL "Update student set 年龄=20 Where 姓名='李达'"

3)删除待定记录

格式: Delete from 表名 where 限定条件

如: DoCmd.RunSQL "Delete from student where 姓名='李达'"

3、实现数据完整性约束

1)设置主键

格式: Alter Table 表名 Add Primary Key (字段名)

如:DoCmd.RunSQL "Alter Table 导师 Add Primary Key (导师编号)"

2)设置外键

格式: Alter Table 主表名 Add Foreign Key (字段名) References 从表名

如:DoCmd.RunSQL "Alter Table 研究生 Add Foreign Key (导师编号) References 导师"

4、执行查询操作

VBA程序中可以用SQL命令完成数据查询操作,但是无法直接将查询结果所返回的记录集按数据表的形式显示,解决方法有:

1)将查询结果的返回记录集生成一个新表保存在数据库中,然后用ADO记录集对象对这个表进行各种操作,完成后再删除这个表;

1

Docmd.runSQL "Select 姓名,职称,年龄  Into temp From 导师 Where 职称 in('教授','副教授')"

登录后复制

操作.....

1

2

rsTeacher.Close

Docmd.runSQL "Drop Table temp"

登录后复制

2)将返回的记录集看成保存在内存中的一个临时表,用ADO记录集对象直接打开该查询指令;

访问当前数据库以外的数据库

1、Access提供了Connection.Open方法以连接另一个数据库

2、格式: Connection对象.Open "Provider=提供者;Date Source=数据库名;User ID=用户;PassWord=密码"

3、其中提供者为 Microsoft.Jet.OLEDDB.4.0;数据库名包括 数据库所在的路径(包括.mdb文件名)。

以上是利用ADO技术操作access数据库的方法的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

apache怎么配置zend apache怎么配置zend Apr 13, 2025 pm 12:57 PM

如何在 Apache 中配置 Zend?在 Apache Web 服务器中配置 Zend Framework 的步骤如下:安装 Zend Framework 并解压到 Web 服务器目录中。创建 .htaccess 文件。创建 Zend 应用程序目录并添加 index.php 文件。配置 Zend 应用程序(application.ini)。重新启动 Apache Web 服务器。

如何在Debian上监控Nginx SSL性能 如何在Debian上监控Nginx SSL性能 Apr 12, 2025 pm 10:18 PM

本文介绍如何在Debian系统上有效监控Nginx服务器的SSL性能。我们将使用NginxExporter将Nginx状态数据导出到Prometheus,再通过Grafana进行可视化展示。第一步:配置Nginx首先,我们需要在Nginx配置文件中启用stub_status模块来获取Nginx的状态信息。在你的Nginx配置文件(通常位于/etc/nginx/nginx.conf或其包含文件中)中添加以下代码段:location/nginx_status{stub_status

apache服务器是什么 apache服务器是干嘛的 apache服务器是什么 apache服务器是干嘛的 Apr 13, 2025 am 11:57 AM

Apache服务器是强大的Web服务器软件,充当浏览器与网站服务器间的桥梁。1. 它处理HTTP请求,根据请求返回网页内容;2. 模块化设计允许扩展功能,例如支持SSL加密和动态网页;3. 配置文件(如虚拟主机配置)需谨慎设置,避免安全漏洞,并需优化性能参数,例如线程数和超时时间,才能构建高性能、安全的Web应用。

如何利用Debian Apache日志提升网站性能 如何利用Debian Apache日志提升网站性能 Apr 12, 2025 pm 11:36 PM

本文将阐述如何通过分析Debian系统下的Apache日志来提升网站性能。一、日志分析基础Apache日志记录了所有HTTP请求的详细信息,包括IP地址、时间戳、请求URL、HTTP方法和响应代码等。在Debian系统中,这些日志通常位于/var/log/apache2/access.log和/var/log/apache2/error.log目录下。理解日志结构是有效分析的第一步。二、日志分析工具您可以使用多种工具分析Apache日志:命令行工具:grep、awk、sed等命令行工具可

使用DICR/YII2-Google将Google API集成在YII2中 使用DICR/YII2-Google将Google API集成在YII2中 Apr 18, 2025 am 11:54 AM

vProcesserazrabotkiveb被固定,мнелостольностьстьс粹馏标д都LeavallySumballanceFriablanceFaumDoptoMatification,Čtookazalovnetakprosto,kakaožidal.posenesko

MySQL与其他数据库:比较选项 MySQL与其他数据库:比较选项 Apr 15, 2025 am 12:08 AM

MySQL适合Web应用和内容管理系统,因其开源、高性能和易用性而受欢迎。1)与PostgreSQL相比,MySQL在简单查询和高并发读操作上表现更好。2)相较Oracle,MySQL因开源和低成本更受中小企业青睐。3)对比MicrosoftSQLServer,MySQL更适合跨平台应用。4)与MongoDB不同,MySQL更适用于结构化数据和事务处理。

甲骨文在商业世界中的作用 甲骨文在商业世界中的作用 Apr 23, 2025 am 12:01 AM

Oracle不仅是数据库公司,还是云计算和ERP系统的领导者。1.Oracle提供从数据库到云服务和ERP系统的全面解决方案。2.OracleCloud挑战AWS和Azure,提供IaaS、PaaS和SaaS服务。3.Oracle的ERP系统如E-BusinessSuite和FusionApplications帮助企业优化运营。

Nginx性能监控与故障排查工具使用 Nginx性能监控与故障排查工具使用 Apr 13, 2025 pm 10:00 PM

Nginx性能监控与故障排查主要通过以下步骤进行:1.使用nginx-V查看版本信息,并启用stub_status模块监控活跃连接数、请求数和缓存命中率;2.利用top命令监控系统资源占用,iostat和vmstat分别监控磁盘I/O和内存使用情况;3.使用tcpdump抓包分析网络流量,排查网络连接问题;4.合理配置worker进程数,避免并发处理能力不足或进程上下文切换开销过大;5.正确配置Nginx缓存,避免缓存大小设置不当;6.通过分析Nginx日志,例如使用awk和grep命令或ELK

See all articles