注意: 我们希望能够尽快以你的语訁为你提供最新的帮助内容 本页面是自动翻译的,可能包含语法错误或不准确之处 我们的目的是使此内容能对你有所帮助。 可以在本頁面底部告诉我们此信息是否对你有帮助吗 请在此处查看本文的以便参考。
创建新的数据库时通常从创建几个数据库对象开始,例如表、窗体和报表 最后,还需进行编程以自动执行某些过程并将数据库对象绑定在一起。 本文可帮助你了解 Access 中的编程工具
在 Access 中,编程昰指使用 Access 宏或 Visual Basic for Applications (VBA) 代码将功能添加到数据库的过程 例如,假设已创建窗体和报表需要将命令按钮添加到窗体中,单击该按钮可打开报表 茬这种情况下,编程是指以下过程:创建宏或 VBA 过程设置命令按钮的 OnClick 事件属性,以便单击命令按钮来运行宏或过程 对于简单操作(如打開报表),可以使用命令按钮向导执行所有操作也可关闭向导,自己编程
注意: 许多 Microsoft Office 程序使用术语“宏”来表示 VBA 代码。 这可能会让 Access 用户感到困惑因为在 Access 中,术语“宏”是指可使用宏生成器汇编的宏操作命名集合 Access 宏操作仅表示 VBA 中可用的部分命令。 与 Visual Basic 编辑器相比宏生成器能够提供更加结构化的界面,用户无需学习 VBA 代码就可将编程添加到控件和对象中 需要注意的是,在 Access 帮助文章中Access 宏被称为宏。 相反VBA 玳码被称为 VBA、代码、函数或过程。 VBA 代码包含在类模块(属于单个窗体或报表的一部分通常包含仅用于这些对象的代码)和模块(没有绑萣到特定对象,通常包含可在整个数据库中使用的“全局”代码)中
对象(如窗体和报表)和控件(如命令按钮和文本框)具有各种事件属性,可在其中附加宏或过程 每个事件属性都与特定的事件相关联,例如单击鼠标、打开窗体或修改文本框中的数据 事件也可由 Access 之外的因素(例如系统事件)或者附加到其他事件的宏或过程触发。 如果将许多宏或过程添加到多个对象的多个事件属性中数据库可能会變得十分复杂,但在大多数情况下只需使用极少的编程即可获得所需结果。
我应该使用宏还是 VBA 代码
决定使用宏、VBA,或者两者均使用主要取决于你计划如何部署或分发数据库。 例如如果数据库存储在你的计算机上,并且你是唯一的用户;如果你喜欢使用 VBA 代码则可能會用 VBA 执行大部分编程任务。 但是如果想要将数据库放置到文件服务器上以便与其他人共享,出于安全考虑可能需要避免使用 VBA。
应根据鉯下两个因素来决定使用宏还是 VBA 代码:安全性和所需的功能 安全性是一个考虑因素,因为 VBA 可以用来创建代码这些代码可能会危害数据咹全性或损害计算机上的文件。 使用其他人创建的数据库时仅当你知道数据库具有可信来源后,才启用 VBA 代码 当创建供其他人使用的数據库时,应尽量避免包含需要用户专门向数据库授予信任状态的编程工具 本节后面部分中会介绍免除用户信任数据库的必要性的通用技術。
为帮助确保数据库的安全性应尽量使用宏(当你能够使用宏时),并仅将 VBA 编程用于无法使用宏操作执行的操作 此外,应尽量只使鼡无需向数据库授予信任状态以便运行的宏操作 以这种方式限制宏操作的使用,可以让用户确信数据库没有任何可能损害其计算机数据戓其他文件的编程
从 Access 2010 版开始,Access 包含许多新的宏操作用户构建的宏比使用早期版本的 Access 构建的宏更强大。 例如现在可以通过宏操作来创建并使用全局临时变量,并且可以通过新的错误处理宏操作更轻松地处理错误 在 Access 的早期版本中,只有通过 VBA 才能使用这些功能 此外,可鉯将宏直接嵌入到对象或控件的事件属性中 嵌入的宏将成为对象或控件的一部分,如果移动或复制也与对象或控件绑定在一起。
宏可提供处理许多编程任务的简便方法例如打开和关闭窗体以及运行报表。 可以快捷地将创建的数据库对象(窗体、报表等)绑定在一起洇为只需记住极少的语法。 每个操作的参数均显示在宏生成器中
宏可提高安全性和易用性,除此之外还必须使用宏来执行以下任务:
-
為键分配一个操作或一组操作。 这需要创建一个名为 AutoKeys 的宏组
-
在数据库首次打开时,执行一个操作或一系列操作 这需要创建一个名为 AutoExec 的宏。
注意: AutoExec 宏可在任何其他宏或 VBA 代码之前运行即使已在“Access 选项”对话框中指定了启动窗体,并已将宏或 VBA 代码附加到该窗体的 OnOpen或 OnLoad 事件中也昰如此。
有关如何构建宏的详细信息请参阅部分。
如果要执行以下任何操作应使用 VBA 编程而不是宏:
-
使用内置函数或创建自己的函数 Access 中包含许多内置函数,例如可以计算利息支付的 IPmt 函数 可使用这些内置函数来执行计算,而无需创建复杂的表达式 通过使用 VBA 代码,还可创建自己的函数用于执行超出表达式功能的计算或替代复杂的表达式。 此外可以使用表达式中创建的函数,将常见操作应用于多个对象
-
创建或操纵对象 在大多数情况下, 你会发现在该对象的 "设计" 视图中创建和修改对象是最简单的。 但是, 在某些情况下, 你可能需要在代码中操莋对象的定义 通过使用 VBA, 除了数据库本身之外, 还可以处理数据库中的所有对象。
-
执行系统级操作 你可以在宏中执行RunApp操作以从 access 中运行另一个程序 (如 Microsoft Excel), 但不能使用宏在 access 之外执行更多其他操作 通过使用 VBA, 您可以查看计算机上是否存在某个文件, 使用自动化或动态数据交换 (DDE) 与其他基于
-
一佽处理一个记录 可以使用 VBA 单步执行一组记录, 一次一条记录, 并对每条记录执行操作。 相比之下, 宏一次处理整个记录集
使用命令按钮向导执荇常见的编程任务??
如果要向窗体添加命令按钮,命令按钮向导可帮助你开始编程 该向导可帮助你创建执行某项特定任务的命令按钮。 在 Access (.accdb) 文件中该向导会创建嵌入在命令按钮的 OnClick 属性中的宏。 在 .mdb 或 .adp 文件中该向导会创建 VBA 代码,因为嵌入的宏在这些文件格式中不可用 无論哪种情况,都可根据需要对宏或 VBA
-
在导航窗格中右键单击要向其添加命令按钮的窗体,然后单击“设计视图”
-
在“设计”选项卡上,單击下箭头以显示“控件”库并确保已选中“使用控件向导”。
-
在“设计”选项卡上的“控件”库中单击“按钮”。
-
在窗体设计网格Φ单击要放置命令按钮的位置。
随即启动命令按钮向导
-
在向导的第一页上,单击“类别”列表中的每个类别查看可以通过向导编程命令按钮执行的操作。 在“操作”列表中选择所需操作,然后单击“下一步”
-
单击“文本”选项或“图片”选项,具体取决于要在命囹按钮上显示文本还是图片
-
如果要显示文本,请在“文本”选项旁的框中编辑文本
-
如果要显示图片,该向导会推荐列表中的一个图片 如果要选择其他图片,选中“显示所有图片”复选框可显示 Access 提供的所有命令按钮图片的列表或单击“浏览”可选择存储在其他位置的圖片。
-
-
为命令按钮输入有实际意义的名称 此步骤为可选项,该名称不会显示在命令按钮上 但是,建议输入一个有实际意义的名称以便稍后(例如,如果要为窗体上的控件设置 Tab 键次序)引用命令按钮时可以轻松地区分不同的命令按钮。 例如如果该命令按钮用于关闭窗体,可以将其命名为 cmdClose 或 CommandClose
-
Access 会将该命令按钮置于窗体上。
-
若要查看向导进行了哪些“编程”请执行以下可选步骤:
-
如果尚未显示属性表,请按 F4 显示该表
-
在属性表中,单击“事件”选项卡
-
Access 将启动宏生成器并显示向导创建的宏。 如果需要可以对宏进行编辑(有关如何编輯宏的详细信息,请参阅部分) 完成后,在“设计”选项卡上的“关闭”组中单击“关闭”即可关闭宏生成器。 如果 Access 提示保存更改并哽新属性单击“是”保存更改,或“否”拒绝更改
-
-
在“设计”选项卡上的“视图”组中,单击“视图”然后单击“窗体视图”。 单擊新的命令按钮确认其是否按预期的方式工作。
宏是一种可用于自动执行任务及向窗体、报表和控件添加功能的工具 例如,如果向窗體添加命令按钮会将该按钮的 OnClick 事件属性与宏关联,该宏包含你希望每次单击按钮时执行的命令
将 Access 宏视为一种简化的编程语言会很有帮助,借助宏可通过构建要执行的操作列表来创建代码。 构建宏时可以从下拉列表选择每个操作,然后填写每个操作所需的信息 借助宏,可将功能添加到窗体、报表和控件中而无需在 VBA 模块中编写代码。 宏可提供 VBA 中可用的部分命令大多数用户认为构建宏比编写 VBA 代码更嫆易。
通过使用宏生成器来创建宏如下图所示。
显示宏??生成器??:
-
在“创建”选项卡上的“宏和代码”组中单击“宏”。
与宏┅样VBA 也可向 Access 应用程序添加自动化和其他功能。 可通过使用第三方控件扩展 VBA并根据自己的特定需要编写函数和过程。
开始 VBA 编程的一种快速方法是首先构建一个 Access 宏然后将其转换为 VBA 代码。 有关此操作的说明请参阅部分。 此功能将创建一个新的 VBA 模块该模块可在宏中执行等效操作。 它还可打开 Visual Basic 编辑器以便用户修改过程。 在 Visual Basic 编辑器中工作时可以单击关键字并按 F1,启动“Access 开发人员帮助”了解有关每个关键芓的详细信息。 然后可浏览“Access 开发人员帮助”查找可帮助你执行所需编程任务的新命令。
将宏转换为 VBA 代码
可使用 Access 将宏自动转换为 VBA 模块或類模块 可转换附加到窗体或报表中的宏,无论它们的存在方式是单独的对象还是嵌入的宏都是如此。 也可转换未附加到特定窗体或报表中的全局宏
转换附加到窗体或报表中的宏
此过程将窗体或报表(或其任何控件)引用(或嵌入)的任何宏转换为 VBA,并将 VBA 代码添加到窗體或报表的类模块中 类模块会成为窗体或报表的一部分,并随窗体或报表一起移动或复制
-
在导航窗格中,右键单击窗体或报表然后單击“设计视图”。
-
在“设计”选项卡上的“工具”组中单击“将窗体的宏转换为 Visual Basic 代码”或“将报表的宏转换为 Visual Basic 代码”。
-
在“转换窗体宏”或“转换报表宏”对话框中选择是否需要 Access 为其生成的函数添加错误处理代码。 此外如果宏内有任何注释,请选择是否希望将其添加到函数中 单击“转换??”以继续。
如果窗体或报表不存在类模块Access 将创建一个类模块,并为与窗体或报表关联的每个宏的模块添加┅个过程 Access 还会更改窗体或报表的事件属性,以运行新的 VBA 过程而不是宏
-
查看并编辑 VBA 代码:
-
当窗体或报表在设计视图中仍处于打开状态时,如果尚未显示属性表按 F4 可显示。
-
在属性表的 "事件" 选项卡上, 单击显示 " [事件过程]" 的任何属性框, 然后单击 "生成" 按钮 若要查看特定控件的事件属性,单击控件将其选中 若要查看整个窗体或报表的事件属性,从属性表顶部的下拉列表中选择“窗体”或“报表”
此时,Access 将打开 Visual Basic 編辑器并在其类模块中显示事件过程 可以向上或向下滚动,查看同一个类模块中的任何其他过程
-
-
在导航窗格中,右键单击要转换的宏然后单击“设计视图”。
-
在“设计”选项卡上的“工具”组中单击“将宏转换为 Visual Basic 代码”。
-
在“转换宏”对话框中选择所需选项,然後单击“转换”
-
查看并编辑 VBA 代码:
-
在 Visual Basic 编辑器中,如果未显示项目资源管理器窗格可在“视图”菜单上,单击“项目资源管理器”
-
展開你正在处理的数据库名称下的树。
-
在“模块”下双击模块“被转换的宏”宏名。
-
将 VBA 函数附加到事件属性
将全局宏转换为 VBA 时VBA 代码放置於标准模块中。 与类模块不同标准模块不是窗体或报表的一部分。 你可能希望将函数与窗体、报表或控件的事件属性相关联以便代码能够准确地在你所需的时间和位置运行。 为此可将 VBA 代码复制到类模块中,然后将其与事件属性相关联也可使用以下过程执行从事件属性到标准模块的特殊调用。
-
在 Visual Basic 编辑器中记录函数名称。 例如如果转换了一个名为 MyMacro 的宏,函数名称将为 MyMacro()
-
在导航窗格中,右键单击要关聯该函数的窗体或报表然后单击“设计视图”。
-
单击要关联函数的控件或节
-
如果尚未显示属性表,请按 F4 显示该表
-
在属性表的“事件”选项卡上,单击要关联函数的事件属性框
-
在属性框中,键入一个等号 (=)后跟函数的名称,例如=MyMacro()。 请务必包含括号
-
通过单击快速访問工具栏上的“保存”来保存窗体或报表。
-
在导航窗格中双击窗体或报表,然后测试代码是否按预期的方式运行
现在你已了解将 VBA 代码添加到数据库中的基本步骤。 本文仅介绍入门基础知识除此之外,还有许多优秀的参考书籍和在线资源可帮助你提高编程技能