时 间:2012-07-03 09:47:12

作 者:

摘 要:Access编程简介之二:我应该使用宏还是应该使用 VBA 代码?

正 文:

要决定是使用宏或 VBA 还是同时使用这两者,主要取决于您计划部署或分发数据库的方式。例如,如果数据库存储在您的计算机上,您是唯一的用户,而且您使用 VBA 代码比较得心应手,那么您可能会决定使用 VBA 执行大部分编程任务。但是,如果您打算将数据库置于文件服务器上以便与其他人共享该数据库,那么出于安全方面的考虑,您可能会避免使用 VBA。如果您打算将数据库作为 Access Web Applications 发布,则必须使用宏(而不是 VBA)执行编程任务,因为 VBA 与 Web 发布功能不兼容。

Access Web Applications    Access Web Applications 是 Access 2010 的一项新功能,利用此功能,可以将应用程序发布到运行 Access Services 的 Microsoft SharePoint 服务器上。这样其他人就可以通过标准 Internet 浏览器使用您的数据库,而无需在他们的计算机上安装 Access。但是,由于 VBA 代码与 Web 发布功能不兼容,如果您计划将应用程序作为 Access Web Applications 发布,则只能使用宏执行编程任务。

设计新的 Access Web Applications 时,应在首次启动 Access 时首先单击“空白 Web 数据库”。这样可以限制能够用于创建数据库的功能,帮助确保 Web 应用程序成功发布。

客户端应用程序    如果您不打算将应用程序发布到 Access Services 服务器上,则应根据两个因素来决定使用宏还是使用 VBA 代码:安全性和所需的功能。之所以要考虑安全性,是因为 VBA 可用于创建危害数据安全或损坏计算机上的文件的代码。如果您使用的数据库是由其他人创建的,那么仅当您知道该数据库的来源可靠时才应该启用 VBA 代码。如果您创建的数据库将被其他人使用,那么您应该尽量避免包括需要用户特别准许数据库为可信状态的编程工具。避免需要用户信任您的数据库的一般技术将在本节后面的内容中讲述。

为了帮助确保数据库的安全,应该在可能的情况下尽量使用宏,而只使用 VBA 编程来完成使用宏操作无法完成的操作。此外,您应该尽量只使用不需要准许数据库为可信状态就可以运行的宏操作。以这样的方式限制宏操作的使用使用户可以确信,数据库中不包含任何可能会损坏其计算机上的数据或其他文件的编程。

宏注意事项

Access 2010 包含许多新的宏操作,与 Access 的早期版本相比,使用这些新的宏操作可以生成功能更加强大的宏。例如,您现在可以通过使用宏操作来创建和使用全局临时变量,并且可以通过使用新的错误处理宏操作更恰当地处理错误。在 Access 的早期版本中,这些类型的功能只有使用 VBA 时才可用。此外,您可以直接将宏嵌入到对象或控件的事件属性中。嵌入的宏将变成该对象或控件的一部分,并随该对象或控件一起被移动或复制。

宏提供了处理许多编程任务的简单方法,例如打开和关闭窗体以及运行报表。您可以轻松快捷地绑定您创建的数据库对象(表单、报表等),因为您几乎不需要记住任何语法。每个操作的参数都显示在宏生成器中。

除了宏提供的增强的安全性和易用性之外,您必须使用宏来执行以下任务:

将一个操作或一组操作分配给某个键。这需要创建一个名为 AutoKeys 的宏组。

在数据库首次打开时执行一个操作或一系列操作。这需要创建一个名为 AutoExec 的宏。

注释    AutoExec 宏在任何其他宏或 VBA 代码运行之前运行,即使您在“Access 选项”对话框中指定了启动窗体并将宏或 VBA 代码附加到了该窗体的 OnOpen 或 OnLoad 事件中也是如此。

VBA 注意事项

如果您要执行下列任一操作,那么应该使用 VBA 编程而不是宏:

使用内置函数或创建自己的函数    Access 中包括许多内置函数,例如 IPmt 函数,它可以计算应付利息。您可以使用这些内置函数执行计算,而无须创建复杂的表达式。通过使用 VBA 代码,您还可以创建自己的函数来执行超出表达式能力的计算或者替代复杂的表达式。此外,您还可以在表达式中使用自己创建的函数向多个对象应用公共操作。

创建或操纵对象    在大多数情况下,您会发现在对象的“设计”视图中创建和修改对象最容易。不过,在某些情况下,您可能想在代码中操纵对象的定义。通过使用 VBA,除了可以操纵数据库本身以外,您还可以操纵数据库中的所有对象。

执行系统级操作    您可以在宏内执行 RunApp 操作,以便在 Access 中运行另一个程序(如 Microsoft Excel),但您无法使用宏在 Access 外部执行更多其他操作。通过使用 VBA,您可以检查某个文件是否存在于计算机上,使用自动化或动态数据交换 (DDE) 与其他基于 Microsoft Windows 的程序(如 Excel)通信,还可以调用 Windows 动态链接库 (DLL) 中的函数。

一次一条地操纵记录    您可以使用 VBA 来逐条处理记录集,一次一条记录,并对每条记录执行操作。相反,宏将同时处理整个记录集。

Access软件网官方交流QQ群(群号:39785885)

Access源码网店

access是不是计算机编程,access编程简介之二:用宏还是VBA?相关推荐

  1. 计算机二级access上机,计算机二级Access上机考点

    下半年的计算机等级考试已经快到了,对于Access上机考试准备的怎么样?出国留学网计算机等级考试栏目为大家分享"2016计算机二级Access上机考点解析",希望对您有所帮助. 2 ...

  2. 计算机二级 access应用,计算机二级Access辅导:Access软件应用指南

    计算机二级Access辅导:Access软件应用指南 本文是百分网小编搜索整理的关于计算机二级Access辅导:Access软件应用指南,供参考学习,希望对大家有所帮助!想了解更多相关信息请持续关注我 ...

  3. 计算机二级access应用,计算机二级Access操作练习题

    出国留学网计算机等级考试网为大家提供计算机等级考试二级Access模拟题,更多计算机等级考试资讯请关注我们网站的更新! 基本操作: 在考生文件夹下,"samp1.mdb"数据库文件 ...

  4. Java:计算机编程语言Java的简介、编程环境/工具、如何学习Java之详细攻略

    Java:计算机编程语言Java的简介.编程环境/工具.如何学习Java之详细攻略 目录 Java的简介 1.Java的工作原理--基于Eclipse等编程Java语言→定义Java类→Java虚拟机 ...

  5. Java:计算机编程语言Java的简介、安装(编程环境/工具)、学习路线(如何学习Java以及几十项代码编程案例分析)之详细攻略

    Java:计算机编程语言Java的简介.安装(编程环境/工具).学习路线(如何学习Java以及几十项代码编程案例分析)之详细攻略 目录 Java的简介 1.Java的工作原理--基于Eclipse等编 ...

  6. php access编程实例,PHP连接操作access数据库实例,access实例_PHP教程

    PHP连接操作access数据库实例,access实例 因为之前做的PingSwitch要做一个WEB展示的前端,因为一开始用了Delphi和access的结构,而Delphi与MySQL的连接又相对 ...

  7. access计算机二级大纲,计算机二级Access考试内容大纲

    计算机二级Access考试内容大纲 以下是教育部考试中心公布的最新计算机二级Access考试内容大纲,供广大要考计算机二级Access的同学参考. 一.数据库基础知识 1. 基本概念: 数据库,数据模 ...

  8. 计算机9月21日二级试题,2016年9月计算机二级Access考前试题及答案

    2016年9月计算机二级Access考前试题及答案 下面是CN人才网小编整理的计算机二级试题,希望对大家有所帮助. 一.选择题(每小题1分,共40分) (1)下列叙述中正确的是( ). A.算法就是程 ...

  9. 计算机基础access数据库操作题,2021年3月全国计算机等级考试二级Access数据库程序设计题库及答案讲解...

    原标题:2021年3月全国计算机等级考试二级Access数据库程序设计题库及答案讲解 资料来源:学盛通学习网547所大学考研专业课(历年真题及模拟题可在线作答,系统自动评分,出答案及解析) 本题库是详 ...

最新文章

  1. 表白这件事,比解 bug 要难多少?
  2. 安森美电量计采用内部电阻跟踪电流--电压HG-CVR
  3. 如何才能正确的关闭Socket连接
  4. 3层vni vxlan_VXLAN技术:三层网络构建虚拟的二层网络
  5. Ubuntu20.04 编译运行apue.3e 避坑指南
  6. JFreeChart(八)之时序图
  7. 阿里巴巴研究员刘国华:阿里巴巴智能运维体系建设
  8. mysql面试题2020_2020年MySQL数据库面试题
  9. POI操作EXCEL2007,报javax.xml.stream.XMLEventFactory.newFactory()错误!
  10. Java学习的正确打开方式
  11. GRE_××× 配置(建议选择Cisco2811路由器)
  12. 浏览器开发者插件集合fehelper
  13. H.264视频压缩标准
  14. Qt入门教程【高级控件篇】QTreeView树形视图
  15. 结构体定义的几种方式
  16. docker 编译 文件 执行 dockerfile 报错 :debconf: delaying package configuration, since apt-utils is not ins
  17. python 图表制作及功能化_Python实现从excel读取数据绘制成精美图像
  18. 学计算机的电脑尺寸多大合适,电脑机箱尺寸一般是多少?对电脑有何影响?
  19. java语言签到定位系统_百度地图定位签到功能
  20. WSL2 安装 CUDA(Win11)

热门文章

  1. 将应用程序安装为Windows服务
  2. Servlet技术简介与编写、编译Servlet程序
  3. 获得Web目录URL
  4. mysql inode_Linux中inode的大小、作用讲述
  5. springboot-devtools idea或eclipse 热加载
  6. JS重写Alert方法
  7. java 如何让循环结束,跳过某个条件,跳出当前的多重嵌套循环
  8. r语言rank降序_R语言rank函数详细解析
  9. P91--商品保存debug完成
  10. 前端后端接口那些事吐槽