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

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

作 者:0e4933fc399eea74ad275630fc75a6ec.png

摘 要: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源码网店

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

语言三做一年级算题_一年级数学期末考试,学生交卷说能考100分,快让你家孩子试试吧...

时间不知不觉已到7月份了,各地小学将要迎来期末水平考试了,小学生也是十分开心,考完试又要放假了,更有小学生笑着对老师说“今年的假期有点长啊”,一句话把老师逗得哭笑不得。今天上午同事所在小学举行了一年级数学期末…

express+vue+mongodb+session 实现注册登录

上个月写了一篇文章是 expressmongodbvue 实现增删改查. 只是简单的实现了增删改查功能,那么今天是在那个基础之上做了扩展,首先实现的功能有如下: 1. 支持注册,登录功能,用户可以注册完成后,进行登录&…

java 添加注解_你知道Java中的package-info的作用吗?

package-info.java对于日常业务开发的开发者来说,可能有点陌生,如果我们再项目中创建一个package-info.java,你会发现该类只有一个packge,如下我们无法在该java文件中定义public的类但事实上,package-info.java还有它的…

if else的使用以及如何从键盘获取数值

if-else的使用 顺序结构 顺序从上到下执行,中间没有判断和跳转 分支结构 根据条件,选择性地执行某段代码 有if-else和switch两种分支语句 循环结构 根据循环,重复性地执行某段代码 有while、do...while、for三种循环结构 如何从键盘获取数值 …

linux(3):Linux MBR分区、挂载操作步骤,逻辑卷扩容操作

Linux MBR分区、挂载操作步骤,逻辑卷扩容操作 服务器开机之后,能自动识别出硬盘,但是硬盘不能够存储数据,必须对硬盘进行分区、格式化、挂载后才能使用;linux主分区和拓展分区总数不能超过4个,拓展分区最…

曾国藩:诚敬静谨恒!

曾国藩:诚敬静谨恒。诚:民无信不立!人与人交往,最讲究诚字。与他人坦诚,说话有诚信,对人诚心,自然会受到他人喜爱和尊重。敬:月满则亏,物盛则衰!要想成大事,需…

java学习(103):字符串概述

//字符串概述 public class test40 {public static void main(String[] args){char[] str1{1,2,3,4,5,6,7,8,9};String str2new String("我是歌谣");String str3new String(str1);String str4new String(str1,3,4);String str5new String("\"\\");Sys…

计算机服务哪些不能关闭,Win7系统下哪些系统服务不能关闭

为了让系统能够更快的启动,很多用户会选择禁用一些系统服务,但并不是所有的服务都能够禁用关闭的,下面是小编与大家分享的Win7系统下哪些不能关闭的服务,保证大家的电脑能够正常的运行。第一、DHCPClient服务这款服务是电脑获取IP…

java学习(104):字符串equals,charAt,endwith,startwith方法

//String方法 public class test41 {//比较两个人的姓名是否相同public static boolean eqName(String name1,String name2){return name2.equals(name1)?true:false;}//按照给定的字符的索引返回public static char findNUM(String resouse,int index){if(index<0||index&…

java学习(105):字符串indexof,spilt,substring方法

public class test44 {//分割字符串数组public static String[] spitString(String resource,String tag){return resource.split(tag);} }测试 public class test43 {public static void main(String[] args){//String的indexofString mail"javascript.com";System…

初中人教版计算机具体课程,构建信息技术支持下的中学数学课程

摘要&#xff1a;信息时代&#xff0c;数学教育面临着前所未有的机遇和挑战。本文首先结合信息技术的特点&#xff0c;阐述了数学教学方式发生的变化。在此背景下&#xff0c;探讨了数学教学内容也应随之发生变化&#xff0c;数学课程应当尽可能地使用计算器和计算机&#xff0…

朴素贝叶斯应用:垃圾邮件分类

1. 数据准备&#xff1a;收集数据与读取 2. 数据预处理&#xff1a;处理数据 3. 训练集与测试集&#xff1a;将先验数据按一定比例进行拆分。 4. 提取数据特征&#xff0c;将文本解析为词向量 。 5. 训练模型&#xff1a;建立模型&#xff0c;用训练数据训练模型。即根据训练样…

java学习(106):字符串tocharArray,tolowercase,touppercase方法

public class test45 {//将给定的字符串返回成一个数组public static char[] toArrayFromString(String target){return target.toCharArray();}//大小写转换根据所给的第二个参数取决于大小写转换public static String toLowerUpper(char[] chs,char ch){if(chl||chL)return …

win10计算机启动一分钟重启,Win10开机提示电脑将在一分钟后自动重启怎么办?...

Win10开机提示“你的电脑将在一分钟后自动重启”怎么办&#xff1f; 最近一位用户又遇到了开机问题&#xff0c;该用户在开机后总是提示“你的电脑将在一分钟后自动重启&#xff0c;Windows遇到问题并且需要重新启动&#xff0c;你应立刻关闭此消息并保存你的工作。”&#xff…

xman的思维导图快捷键_一图胜千言,免费的多人协作思维导图工具,推荐收藏值得拥有哦...

今天给大家推荐一款思维导图制作软件&#xff1a;GitMind&#xff0c;捕捉灵感&#xff0c;激发创意。免费在线思维导图软件&#xff0c;简化逻辑梳理&#xff0c;集思广益&#xff0c;释放创造力在线脑图、思维导图、流程图、工业设计、工程管理&#xff0c;一图涵千面。GitMi…

java学习(107):StringBuilder

//stringbuilder public class test47 {public static void main(String[] args){StringBuilder buildernew StringBuilder("我是一个热血的少年");System.out.println(builder);} }运行结果

单点登录 之 OAuth

OAuth2.0是什么 OAuth2.0是什么——豆瓣和QQ的故事 OAuth简单说就是一种授权的协议&#xff0c;只要授权方和被授权方遵守这个协议去写代码提供服务&#xff0c;那双方就是实现了OAuth模式。 举个例子&#xff0c;你想登录豆瓣去看看电影评论&#xff0c;但你丫的从来没注册过豆…

ueditor上传图片写入数据库_手把手教你,如何用交管12123上传驾驶证照片!

12123APP普及后方便了很多司机朋友足不出户就能办理交管业务然而交管业务网上办理过程中因为一些小问题的存在导致业务受理受阻例如&#xff1a;司机朋友在使用“交管12123”手机APP办理补换领机动车驾驶证等业务时出现了以下情况▼这种情况可能有两种原因&#xff1a;第一种是…

楚留香手游系统互通的服务器,楚留香手游互通服务器汇总 哪些服能一起玩

楚留香手游互通服务器汇总 哪些服能一起玩由第一手游网小编为大家带来&#xff0c;游戏中有一些服务器它的安卓和ios是互通的可以一起玩的&#xff0c;楚留香手游哪些服能一起玩&#xff1f;哪些服务器互通&#xff1f;来看看吧&#xff01;楚留香手游互通服务器汇总少侠不必担…

java学习(110):日期date类

import java.util.Date; import java.util.Scanner;public class test51 {public static void main(String[] args){Scanner innew Scanner(System.in);System.out.println("请输入员工信息");test50 empnew test50();System.out.println("请输入员工姓名"…