access数据库的基本概念

用途:

1、进行数据分析

Access有强大的数据处理、统计分析能力,利用access的查询功能,可以方便地进行各类汇总、平均等统计。并可灵活设置统计的条件。

2、开发软件

Access用来开发软件,比如生产管理、销售管理、库存管理等各类企业管理软件。

3、存储数据。

4、建立表格模板

键入需要跟踪的内容,Access 便会使用表格模板提供能够完成相关任务的应用程序。

5、处理字段、关系和规则的复杂计算。

6、创建和运行旧数据库。

扩展资料:

Access数据库对象及作用

1、表:数据库中用来存储数据的对象,是整个数据库系统的基础。

2、查询:它是数据库设计目的的体现,建完数据库以后,数据只有被使用者查询才能真正体现它的价值。

3、报表:一种数据库应用程序进行打印输出的方式。

4、模块:将VBA声明和过程作为一个单元进行保存的集合,是应用程序开发人员的工作环境。

ACCESS是office自带的数据库

Access 是Office里面的一个组件。是用来制作简单的数据库。

还有的意思就是访问、还有接入的意思。

如Access list 访问列表

Access point 接入点

在办公软件Office套件中,最为广大用户熟悉的是Word和Excel,因为它们功能强大且方便易用,更因为它们不仅可用于办公,还可用于个人写作和家庭记帐理财等。同为Office套件中一部分的Access,虽然有着同样强大的功能,但使用的人却相对少些,不像Word和Excel那样广泛。事实上,真正用过Access的用户,对其强大功能和灵活应用均称赞有加。 Access 数据库管理系统是Microsoft Office 套件的重要组成部分,适用于小型商务活动,用以存贮和管理商务活动所需要的数据。Access不仅是一个数据库,而且它具有强大的数据管理功能,它可以方便地利用各种数据源,生成窗体(表单),查询,报表和应用程序等。

数据库是有结构的数据集合,它与一般的数据文件不同,(其中的数据是无结构的)是一串文字或数字流。数据库中的数据可以是文字、图象、声音等。

Microsoft Access是一种关系式数据库,关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。图1是一个“产品”表的例子。“产品”表由10个记录组成,一个记录占一行,每一个记录由产品ID、产品名称、库存量、订货量、单价和折扣率6个字段组成。“产品ID”是字段名,其下面的1,2等是字段的值。

表与表之间可以建立关系(或称关联,连接),以便查询相关联的信息。Access数据库以文件形式保存,文件的扩展名是MDB。

Access 数据库由六种对象组成,它们是表、查询、窗体、报表、宏和模块。

表(Table) 表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。

查询(Query)查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。

窗体(Form) 窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。

报表(Report) 报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。宏(Macro) 宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。模块(Module) 模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。模块使用Visual Basic编程

面向对象数据库与关系数据库 — 初学者指南

数据库是几乎所有软件应用程序的核心,它存储和管理为从简单网站到复杂金融系统的一切提供支持的数据。多年来出现了两种主要类型的数据库模型:面向对象数据库(OODB)关系数据库(RDB)。了解它们之间的差异可以帮助开发人员、学生和技术爱好者做出明智的决定,决定使用哪一个来满足他们的特定需求。

了解关系数据库 (RDB)

关系数据库 (RDB) 是传统数据库管理的基石,提供一种高效可靠的结构化格式来存储和检索数据。RDB 由 IBM 的 EF Codd 于 20 世纪 70 年代开发,现已成为从简单网站到复杂企业系统等大量应用程序的默认选择。本节将深入探讨RDB的架构、优势和典型用例,为初学者提供全面的了解。

关系数据库模型的核心是基于在表中存储数据的原则,表也称为关系。每个表都包含行和列,其中每行代表一个唯一的记录,每列代表记录中的一个字段。这种表格结构非常直观,并且与人类逻辑组织信息的方式非常一致,使得 RDB 特别适合那些刚接触数据库管理的人。

例如,考虑图书馆系统的简单数据库。它可能包括“图书”、“会员”和“贷款”表。“书籍”表包含包含 BookID、标题、作者和 ISBN 等详细信息的列。该表中的每一行代表一本不同的书。

  • 结构化查询语言 (SQL): RDB 使用 SQL(一种强大的标准化语言)来定义、操作和查询数据。SQL 的广泛采用和易用性极大地促进了关系数据库的普及。
  • 数据完整性和 ACID 合规性: RDB 旨在通过 ACID(原子性、一致性、隔离性、持久性)合规性确保数据完整性和一致性。这意味着即使在系统故障或断电的情况下,事务也能得到可靠的处理,并且数据库仍保持一致的状态。
  • 规范化:此过程涉及以减少冗余和依赖性的方式组织数据,确保数据库有效地使用其资源并保持可扩展性。规范化数据有助于维护数据完整性并简化数据结构。
  • 可扩展性和灵活性:虽然传统上被认为不如 NoSQL 数据库可扩展,但许多现代 RDB 已经发展到提供相当大的可扩展性和灵活性,以满足大型应用程序的需求。
  • 安全性: RDB 提供强大的安全功能,包括访问控制和加密,以保护敏感数据。
  • 成熟度和支持: RDB 已存在数十年,受益于高水平的成熟度、广泛的文档以及广泛的专家和用户社区。这使得故障排除和学习变得更加容易。

RDB 的用途非常广泛,但它们在需要有效组织和查询不同数据实体之间的关系的应用程序中表现出色。一些常见的用例包括:

  • 金融系统:银行和金融机构依赖 RDB 进行交易处理系统,其中数据完整性和一致性至关重要。
  • 电子商务平台:这些系统使用 RDB 来管理库存、用户数据和交易记录,利用关系模型来保持数据组织有序且易于访问。
  • 医疗保健系统:患者记录、治疗历史和预约安排通常使用 RDB 进行管理,这得益于该模型能够以高完整性维护复杂且敏感的数据。

虽然 RDB 功能强大,但它们也面临着一系列挑战,尤其是随着数据量和种类的增长。对于非常大的数据库或涉及跨表的多个联接的复杂查询,性能可能会成为一个问题。此外,虽然 RDB 是高度结构化的,但这也会限制其处理非结构化数据(例如文本、图像或视频)的灵活性,这些数据在当今数据驱动的世界中变得越来越普遍。

了解面向对象数据库 (OODB)

面向对象数据库 (OODB) 的出现是为了应对日益复杂的应用程序以及处理传统数字和基于文本数据之外的更多样化数据类型的需求。OODB 将面向对象的编程原理集成到数据库系统中,提供与应用程序开发中使用的数据结构更加无缝的结合。在这里,我们将探讨 OODB 的基本方面,包括其架构、主要功能、优势和典型应用。

OODB 将数据存储在对象而不是表中。OODB 中的对象代表现实世界的实体,包含数据(属性)和可对数据进行操作的操作(方法)。这种将数据和行为封装在同一实体中的做法与 RDB 中数据和应用程序逻辑的单独存储形成鲜明对比。

例如,在 OODB 中,“书籍”对象不仅包含标题、作者和 ISBN 等属性,还包含操作书籍数据或与书籍数据交互的方法,例如borrow()return()。这种方法反映了面向对象编程语言的结构,使得 OODB 特别适合用此类语言开发的应用程序。

  • 复杂数据的直接表示: OODB 可以存储复杂的数据结构,例如对象,其中可以直接包含其他对象、数组,甚至多媒体类型。此功能对于需要存储复杂数据的应用程序(例如 CAD 系统、多媒体数据库以及科学和工程数据库)特别有用。
  • 对象标识: OODB 中的每个对象都有一个唯一的标识符,与其内容无关。此对象标识允许对对象进行一致的跟踪和引用,即使它们的属性随着时间的推移而变化。
  • 继承: OODB 支持面向对象编程的继承概念,允许对象从其他对象继承属性和方法。此功能可实现更高效的数据建模并减少冗余。
  • 与 OOP 语言的一致性:由于 OODB 使用与面向对象的编程语言相同的模型,因此数据库和应用程序代码之间存在自然的一致性,从而导致更直观的开发和更少的阻抗不匹配。
  • 灵活性:存储复杂数据类型的能力和对继承的支持使 OODB 具有高度灵活性,允许对现实世界的实体进行高效建模。
  • 性能:对于某些应用程序,尤其是那些处理复杂数据和对象的应用程序,OODB 可以通过消除昂贵的联接和关系映射的需要来提供卓越的性能。

在数据自然适合面向对象模型或应用程序需要直接操作复杂数据结构的情况下,OODB 特别有利。一些典型的用例包括:

  • 工程和设计应用程序:由于复杂的数据结构和设计数据中常见的层次关系,计算机辅助设计 (CAD)、计算机辅助制造 (CAM) 和其他面向设计的应用程序的软件受益于 OODB。
  • 电信:使用面向对象的方法可以更直观地管理网络系统和基础设施中的复杂关系和层次结构。
  • 科学研究和开发:生物信息学、制药和航空航天工程等领域需要处理复杂的数据类型和关系,这使得 OODB 成为一个有吸引力的选择。

尽管有这些优点,OODB 也并非没有挑战。对象模型的复杂性可能会导致更陡峭的学习曲线,特别是对于那些习惯于关系模型的人来说。此外,虽然 OODB 擅长处理复杂、交织的数据,但对于需要大量即席查询或数据自然适合表格格式的应用程序来说,它们可能不是最佳选择。

在 OODB 和 RDB 之间进行选择时,了解它们的根本区别至关重要。这些差异会影响数据的建模、存储和访问方式,从而影响应用程序的整体设计和实现。下面,我们将在各个方面对两者进行比较,并提供代码片段来说明与每种数据库类型的典型交互。

  • RDB:数据由行和列组成的表构成,其中每行代表一条记录,每列代表记录中的一个字段。
  • OODB:数据存储为对象,类似于面向对象编程中使用的对象,允许封装数据和行为。
  • RDB:对数据库架构的更改(例如添加新列)可能很复杂,并且可能需要更新整个表,从而影响可扩展性和性能。
  • OODB:可以轻松修改对象以包含新的属性和方法,从而提供更大的灵活性来适应应用程序需求的变化。
  • RDB:使用 SQL(结构化查询语言),它是高度标准化的,并且针对复杂查询(特别是涉及多个表的查询)进行了优化。
  • OODB:查询通常基于所使用的编程语言的查询功能,这可能不太标准化,并且在不同的 OODB 系统之间有所不同。
  • RDB:关系通过外键和联接操作进行管理,这可能很强大,但可能会导致复杂的查询并降低大型数据集的性能。
  • OODB:关系通过直接对象引用进行管理,这对于开发人员来说更加直观,但可能会在没有标准化查询语言的情况下导航和查询相关对象时带来挑战。
  • RDB:通常为事务提供强大的支持,并设计为符合 ACID,确保数据完整性和一致性。
  • OODB:虽然许多 OODB 也支持 ACID 属性,但其实现和支持可能比 RDB 差异更大,可能会影响某些系统的可靠性。
  • RDB: Excel 适用于需要复杂查询、广泛报告以及数据适合表格格式的应用程序,例如金融系统、电子商务平台和客户关系管理 (CRM) 系统。
  • OODB:特别适合处理复杂数据结构和关系的应用程序,例如计算机辅助设计 (CAD)、内容管理系统以及需要直接操作复杂对象的应用程序。

在面向对象数据库 (OODB) 和关系数据库 (RDB) 之间进行选择可以归结为您的应用程序的特定需求。RDB 非常适合商业和金融系统中常见的需要复杂查询和结构化数据管理的应用程序。相比之下,OODB 与处理复杂数据结构和关系的应用程序(例如 CAD 系统和多媒体数据库)很好地结合在一起,因为它们天生适合面向对象的编程。该决策应以数据复杂性、应用程序结构和性能要求等因素为指导,确保所选的数据库技术能够最佳地支持您的项目目标。

VBA数据库解决方案第十八讲:数据库Recordset对象Find方法的利用

《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA数据库解决方案第十八讲:数据库中Recordset对象Find方法的利用

【分享成果,随喜正能量】 凡事忍三刻、等三天,如果是恼怒情绪,忍耐三刻,你就会冷静许多,等上三天,你至少不会再做出冲动的事情;如果是不愉快的心情,忍耐三刻,也许就烟消云散;如果是生活的磨难,等待三天,或许就能见到新的希望。也许等待不会改变现实,但是能改变自己的心态,这就足以去应对一切棘手的难题。。

大家好,今日讲解VBA数据库解决方案第18讲:Recordset对象Find方法。FIND方法是我极力推崇的一种方法,在VBA代码解决方案中我曾详细的讲过,可以说FIND是VLOOKUP的终结者,当你开始利用FIND的时候就不会再想lookup了,那么这个方法在数据库中是否可以利用呢?答案当然是肯定的。

Recordset对象的Find 方法用于搜索 Recordset记录中满足指定标准的记录。如果满足标准,则记录集游标位置设置在找到的记录上,否则位置将设置在记录集的末尾。

语法: Find (criteria, SkipRows, searchDirection, start)

参数

A) criteria 字符串,包含指定用于搜索的列名、比较操作符和值的语句。

b) SkipRows 可选。Long 值,其默认值为零,它指定当前行或 Start 书签的行偏移量以开始搜索。在默认情况下,搜索将从当前行开始

c) searchDirection 可选的 SearchDirectionEnum 值,指定搜索应从当前行还是下一个有效行开始。其值可为 adSearchForward(1) 或 adSearchBackward(-1)。搜索是在记录集的开始还是末尾结束由 searchDirection 值决定。

d) start 可选,变体型书签,用作搜索的开始位置。0或者缺省代表搜索从当前位置开始,1 表示搜索从第一条记录开始 2表示搜索从最后一条记录开始

  • 特别注意1:criteria 中的“比较操作符”可以是“>”(大于)、“<”(小于)、“=”(等于)、“>=”(大于或等于)、“<=”(小于或等于)、“<>”(不等于)或“like”(模式匹配)比较操作符”为LIKE则字符串”*”(某字符可以出现一次或多次)或者”_*”,表示某字符只出现一次
  • 特别注意2:criteria 中的值可以是字符串,浮点数或者日期字符串以单引号分割;日期以”#”号分割。

实例讲解:我们要在上一讲的数据中找到姓马的记录,并显示出来。看下面的代码:

Sub mynz_18() \’ 第18讲:Recordset对象Find方法

Dim cnADO As Object, rsADO As Object

Dim strPath As String, strSQL As String

Set cnADO = CreateObject(\”ADODB.Connection\”)

Set rsADO = CreateObject(\”ADODB.RecordSet\”)

strPath = ThisWorkbook.Path & \”\\mydata2.accdb\”

cnADO.Open \”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\” & strPath

strSQL = \”SELECT * FROM 员工信息 WHERE 部门=\’一厂\’\”

rsADO.Open strSQL, cnADO, 1, 3

Sheets(\”18\”).Rows(\”2:30\”).Select

Selection.ClearContents

For i = 0 To rsADO.Fields.Count – 1

Sheets(\”18\”).Cells(1, i + 1) = rsADO.Fields(i).Name

Next i

i = 0

rsADO.MoveFirst

rsADO.Find \”姓名 Like \’马*\’\”

If rsADO.EOF Then

MsgBox (\”没有找到查找内容\”): GoTo 100

Else

Do While Not rsADO.EOF

For j = 0 To rsADO.Fields.Count – 1

Sheets(\”18\”).Cells(2 + i, j + 1) = rsADO.Fields(j)

Next j

rsADO.Find \”姓名 Like \’马*\’\”, 1, 1

i = i + 1

Loop

End If

100:

rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代码截图:

代码的解读:

1) rsADO.Find \”姓名 Like \’马*\’\”

上述代码查找姓马的职工姓名

2) If rsADO.EOF Then

MsgBox (\”没有找到查找内容\”): GoTo 100

Else

如果没有找到,也就是说到了记录集的尾部,那么提示用户,没有找到。

3) Do While Not rsADO.EOF

For j = 0 To rsADO.Fields.Count – 1

Sheets(\”Sheet1\”).Cells(2 + i, j + 1) = rsADO.Fields(j)

Next j

rsADO.Find \”姓名 Like \’马*\’\”, 1, 1

i = i + 1

Loop

如果找到,那么显示记录,并查找下一条rsADO.Find \”姓名 Like \’马*\’\”, 1, 1 是查找下一条,步长为1,向下查找。

好了,我们看下面的代码的运行测试,首先看看我们的数据库的记录:

我们再利用本讲的程序进行FIND查找,结果:

今日内容回向:

1 在Recordset 中如何利用FIND方法查找?

2 criteria 中的“比较操作符”是否理解呢?

本讲内容参考程序文件:VBA与数据库操作(第一册).xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。