Access之VBA教学教程

合集下载

access中vba调用表

access中vba调用表

在Access中,使用VBA(Visual Basic for Applications)调用表是一项常见的任务,可以通过使用`DoCmd.OpenTable`方法来实现。

下面是一个简单的示例,展示如何使用VBA调用表:首先,确保你已经创建了一个表对象,并已经将其名称存储在一个变量中,例如:```vbaDim tbl As TableSet tbl = CurrentDb.OpenTable("YourTableName")```在这里,"YourTableName"是你要调用的表的名称。

接下来,你可以使用`DoCmd.OpenTable`方法来打开表。

例如,你可以创建一个按钮或宏来调用这个方法。

下面是一个示例代码:```vbaSub OpenTable()'调用OpenTable方法打开表DoCmd.OpenTable, "YourTableName"End Sub```在这个示例中,当用户点击按钮或触发宏时,`OpenTable`方法将被调用,打开指定的表。

如果你需要在打开表后执行一些操作,你可以在打开表后使用相应的查询或筛选条件。

例如,你可以使用`DoCmd.RunSQL`方法执行SQL查询,或者使用`DoCmd.SetFilter`方法设置筛选条件。

下面是一个示例代码,展示了如何在打开表后执行查询:```vbaSub OpenTableAndQuery()'调用OpenTable方法打开表DoCmd.OpenTable, "YourTableName"'执行查询DoCmd.RunSQL "SELECT * FROM YourTableName WHERE YourCondition"End Sub```在这个示例中,"YourCondition"是你要设置的筛选条件。

accessvba编程 第九章 vba使用技巧3

accessvba编程 第九章 vba使用技巧3

ACCESS-VBA编程第九章VBA使用技巧3第九章VBA使用技巧3Treeview 控件的使用方法建立一个窗体,在窗体上放置如下控件:Treeview 控件:名称Treeview1;Imagelist 控件:名称Imagelist1,并在该控件中放置三张个性图片(32×3 2),建立索引1、2、3;(方法:在Imagelist 控件上单击鼠标右键选择属性)Label 控件:名称分别为Lab(0)、Lab(1),Caption分别为“父节点:”、“子节点:”;Textbox 控件:名称分别为Txt(0)、Txt(1),text都为“”;commandbutton 控件:名称为系统默认,Caption分别为“添加”、“展开”、“收起”、“排序”、“删除”、“退出”;将下列代码加入到代码框:Option ExplicitDim I As IntegerDim J As IntegerDim nodx As NodeDim CunZai As Boolean '定义变量Private Sub Command1_Click()If Txt(0).Text <> "" And Txt(1).Text <> "" Then '不允许建立零字节的父节点和子节点CunZai = FalseJ = TreeView1.Nodes.CountFor I = 1 To TreeView1.Nodes.Count '检查新输入的父节点名称是否存在If TreeView1.SelectedItem.Children > 0 ThenIf Txt(0).Text = TreeView1.Nodes(I).Text Then CunZai = True End IfNext IIf CunZai = True Then '若存在, 则在父节点下建立子节点Set nodx = TreeView1.Nodes.Add(Txt(0).Text, tvwChild, "child" & J,Txt(1).Text, 3)Else ,若不存在,则建立父节点和子节点Set nodx = TreeView1.Nodes.Add(, , Txt(0).Text, Txt(0).Text, 1) Set nodx = TreeView1.Nodes.Add(Txt(0).Text, tvwChild, "child" & J,_Txt(1).Text, 3)End IfTreeView1.RefreshElseIf Txt(0).Text = "" Then MsgBox "请输入父节点名称!", vbInform ation, "警告!"'系统提示ElseIf Txt(1).Text = "" Then MsgBox "请输入子节点名称!", vbInform ation, "警告!"End IfEnd SubPrivate Sub Command2_Click()For I = 1 To TreeView1.Nodes.CountTreeView1.Nodes(I).Expanded = True '展开所有节点Next IEnd SubPrivate Sub Command3_Click()For I = 1 To TreeView1.Nodes.CountTreeView1.Nodes(I).Expanded = False '收起所有节点Next IEnd SubPrivate Sub Command4_Click()TreeView1.Sorted = True '排列顺序End SubPrivate Sub Command5_Click()If TreeView1.SelectedItem.Index <> 1 ThenTreeView1.Nodes.Remove TreeView1.SelectedItem.Index '删除选定的节点End IfEnd SubPrivate Sub Command6_Click()End '退出程序End SubPrivate Sub Form_Load()TreeView1.LineStyle =TvwTreeLines '在兄弟节点和父节点之间显示线TreeView1.ImageList = ImageList1 '链接图像列TreeView1.Style = tvwTreelinesPlusMinusPictureText'树状外观包含全部元素Set nodx = TreeView1.Nodes.Add(, , "蒲子明", "蒲子明", 1)'建立名称为"蒲子明"的父节点,选择索引为1的图像Set nodx = TreeView1.Nodes.Add("蒲子明", tvwChild, "child01", "收件箱", 3)'在"蒲子明"父节点下建立"收件箱"子节点,选择索引为3的图像Set nodx = TreeView1.Nodes.Add("蒲子明", tvwChild, "child02", "发件箱", 3)'在"蒲子明"父节点下建立"发件箱"子节点,选择索引为3的图像CunZai = FalseEnd SubPrivate Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node) Node.ExpandedImage = 2 '节点被展开时,选择索引为2的图像End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Nod e)If TreeView1.SelectedItem.Children = 0 Then '检查是否有子节点,0为无For I = 1 To TreeView1.Nodes.CountIf TreeView1.Nodes(I).Selected ThenMsgBox "您选择的是:“" & TreeView1.Nodes(I).FullPath & "”子节点!" '系统提示End IfNext IEnd IfEnd SubTreeView控件示例:Private Sub Form_Load()Dim cnn As New ADODB.Connection, rst As New ADODB.Recordse tDim nods As NodesDim mnode As NodeDim nodef As StringDim hh As StringSet cnn = CurrentProject.Connectionrst.Open "select * from menu order by 菜单号", cnn, adOpenStati crst.MoveFirstDo While Not rst.EOFnodef = rst!菜单号If IsNull(rst!上级菜单) ThenSet mnode = TreeView0.Nodes.Add(, , rst!菜单号, rst!菜单名, 1, 2) Elsenodef = rst!上级菜单Set mnode = TreeView0.Nodes.Add(nodef, tvwChild, rst!菜单号, rs t!菜单名, 3, 4)End Ifrst.MoveNextLoopSet rst = NothingWith TreeView0.Nodes(1).Expanded = TrueEnd WithEnd SubPrivate Sub TreeView0_NodeClick(ByVal Node As Object)Dim varx As Variantvarx = DLookup("[记录]", "menu", "[菜单名]=" & "'" & Node & "'") Me.记录= varxEnd Sub如果盘中不存在文件test.dll,则退出数据库if dir("c:\windows\test.dll")="" thendocmd.quitend if使用Shell 函数来完成一个用户指定的应用程序。

Access基础教程-第八章使用VBA编程

Access基础教程-第八章使用VBA编程

Access基础教程--第八章使用VBA编程本章内容◆VBA编程基础◆创建和设计VBA程序◆VBA程序调试与运行一、VBA编程基础知识在执行简单的操作时,宏可以完成,如窗体的打开与关闭、工具栏的显示和隐藏等。

对于稍复杂一些的任务,则可用Visual Basic for Application进行编程完成。

1.VBA的数据类型下面对VBA中的数据类型、数据类型之间的转换、数据类型的对比进行介绍。

⑴数据类型下表列出VBA中的基本数据类型。

类型名声明符字节————————————————Byte(单字节型)1Integer(整型)% 2Long(长整型)& 4Single(单精度型)! 4Double(双精度型)# 8Currency(货币型)@ 8String(字符型)$ n*1Boolean(布尔型)2Date(日期型)8Variant(变体型)xObject(对象型)4————————————————其中,字节、整型、长整型、单精度、双精度、货币等数据类型都属于数值数据类型,可以进行各种数学运算。

字符型数据类型用来声明字符串。

布尔型数据类型用来表示一个逻辑值,为真时显示True,为假时显示Flase。

日期型数据类型用来表示日期,日期常量必须用#括起来,如#2001/3/26#。

变体型数据类型可以存放系统定义的任何数据类型,如数值、字符串、布尔及日期等,其数据类型由最近放入的值决定。

用户可以使用Type语句定义任何数据类型。

用户自定义数据类型可以包括数据类型数组,或当前定义的用户自定义类型的一种或多种元素。

语法:[ Private | Public ] Type 类型名元素名As 数据类型[ 元素名As 数据类型]……End Type例如:定义班级中学生的基本情况数据类型如下:Public Type StudentsName As String(8)Age As IntegerEnd Type声明变量:Dim Student As Students引用数据:Studen =”张三”Student.Age=15下面是详细参考内容◆Boolean 数据类型Boolean 变量存储为16 位(2 个字节)的数值形式,但只能是True 或是False。

ACCESS课件_第八章 VBA编程

ACCESS课件_第八章 VBA编程

8.1.1 VBA简介
• 90年代早期,微软在进行office系列产品的开 发同时,就注意到了不同的应用程序需要用不 同的自动化语言进行功能扩展,于是微软决定 让其开发出来的应用程序能共享一种通用的自 动化语言,这就是Visual Basic For Application——VBA。可以把VBA看成是VB应用 程序的一个子集,实际上,无论在语法结构、 使用方法、甚至是应用界面,二者都是十分相 似的。作为微软公司开发的Visual Basic可视 化编程软件,不仅功能强大,且简单易学,VBA 正是是在VB的基础上进行开发.
• 变量类型:在使用变量的过程中,变量必须是规定了数据类 型的。在使用变量之前应该先对变量进行定义,VBA允许不 进行事先的定义而直接使用变量。通常不进行事先声明的变 量,系统会自动将其的类型定义为Variant变体型。 使用变 量前对变量进行定义是程序设计中的一个良好的习惯,尽管 系统允许不定义而直接使用,但这也容易引起程序错误。
5. 货币型
货币型数据是专门用来计算与货币相关的计算,货币型的小 数点位数是固定的,定义的方法是: Dim 变量名 as Currency
• 6. 变体型
• 变体型数据是特殊的数据类型,特殊在其类型是变 化的,并且可以根据要求进行多次的改变。改变的 过程中,可以是数值型,也可以是字符串型等等。
8.2.2 变量、常量和数组
3. 布尔型
布尔型数据是一个逻辑值,占2个字节, 取值只有2个:true和false。定义的标识符 是boolean。
4. 日期型
日期型是VBA中专门用来表示时间的数据类型。占用8个字 节的存储空间,日期型实际是一个双精度的数值型,其整数 部分存储的是日期,小数部分存储的是时间。与日期型类型 相关的三系统函数来获得系统当前的日期和时间: Date()获得的是当前系统日期, Time()获得的是当前系统时间, Now()获得的是当前系统日期和时间。定义方法是: Dim 变量名 as Date

ACCESSVBA编程 第九章 VBA使用技巧

ACCESSVBA编程 第九章 VBA使用技巧

ACCESS-VBA编程第九章VBA使用技巧4第九章VBA使用技巧4怎样使用一个查询获得数据库对象的名称(查询/窗体/表/报表/模块/宏)?查询:Select FROM MsysObjects Where (Left$([Nam e],1)<>"~") AND (MSysObjects.Type)=5 orDER BY MSysObjects.N ame;窗体:Select FROM MsysObjects Where (Left$([Nam e],1)<>"~") AND (MSysObjects.Type)=-32768 orDER BY MSysObj ;表:Select FROM MsysObjects Where (Left$([Nam e],1)<>"~") AND (Left$([Name],4) <> "Msys") AND (MSysObject s.Type)=1 orDER BY ;报表:Select FROM MsysObjects Where (Left$([Nam e],1)<>"~") AND (MSysObjects.Type)= -32764 orDER BY MSysOb ;模块:Select FROM MsysObjects Where (Left$([Nam e],1)<>"~") AND (MSysObjects.Type)= -32761 orDER BY MSysOb ;宏:Select FROM MsysObjects Where (Left$([Nam e],1)<>"~") AND (MSysObjects.Type)= -32766 orDER BY MSysOb ;文件被创建或最后修改后的日期和时间FileDateTime 函数返回一个Variant (Date),此为一个文件被创建或最后修改后的日期和时间。

AccessVBA-入门指导教程PPT课件

AccessVBA-入门指导教程PPT课件

-
13
10.4 Access Basic 语句
Access支持结构化语言中的顺序、分支、循环语 句,另外还有一些特殊作用的功能语句。
一、GOTO语句
VBA的GOTO Labal语句可以跳过一些代码块到 Labal的位置,并从该点继续执行。Labal标号要 从代码的最左边(第一列)开始写,这个位置 通常会影响代码的缩进格式。
在代码中使用Dim或Global来声明一个动态数组,
但不确定数组的宽度和维数,在需要使用数组来
存储数据时,使用ReDim来声明数组的宽度和维
数,但这时已经不能更改数组的类型了。使用
ReDim可以为一个动态数组分配内存,多次指定
不同的宽度,但多次定义时,维数必须和第一次
使用ReDim定义的维数一致,不能再次进行修改
Database,Workspace,Document,Container,User, Group,Report,Control,TableDef,QueryDef,Re cordset,Field,Index,Relation,Parameter,Proper ty.
-
6
二、变量定义
在Access中用来定义变量的关键词有:
了。另外,ReDim语句之后还可以使用修补词
“Preserve”将原数组中已经分配的单元保留下来,
这时当第二次使用R分配内存时,只能在最后一
维上变动。例如: -
10
下面的例子是非法操作:
ReDim nNum(5,5,10)
ReDim Preserve nNum(5,7,10) 应该使用下面的代码:
-
16
二、Select语句
当有多种选择时,使用If …Else语句,这样的语句需要多 重嵌套,使得程序十分复杂,不容易读,这时就可以使 用Select语句,Select语句是一个多分支控制语句。语法 格式为:

Access VBA编程 单选按钮

Access VBA编程单选按钮介绍:单选按钮是一种常见的控件,可以将其用于过滤、排序、分组或进行其他交互操作。

在Access VBA编程中使用单选按钮,可以增强窗体的交互性,并可根据用户的选择来自动更新查询或报告结果。

本文将介绍如何在Access VBA编程中使用单选按钮。

创建单选按钮:在Access窗体上单击“设计视图”按钮,选择“工具箱”中的“单选按钮”。

然后,单击“窗体”视图,将单选按钮添加到窗体上。

接下来,选择“属性”框并为单选按钮命名、设置默认值和选项值。

您还可以为单选按钮添加文本标签,以便用户可以理解其含义。

响应单选按钮事件:在VBA中,单选按钮的值可以存储为True或False。

单选按钮的响应通常基于用户的单击事件。

如果单选按钮未选中,则将其值设置为False;如果选择了单选按钮,则将其值设置为True。

使用Change事件的VBA代码可以捕获所有单选按钮的值,并基于用户的选择来更新查询或报告结果。

示例代码:下面是一个使用单选按钮的简单示例代码,该代码基于用户选择的不同结果,重新计算并显示报告。

在此示例中,单选按钮命名为“销售”,其选项值为“按州”和“按产品类型”。

(请注意,这只是示例代码,并非完整代码)Private Sub SalesOption_Change()If Me.SalesOption.Value = True And Me.StatesOption.Value = False Then'按州组织销售报告'ElseIf Me.SalesOption.Value = False And Me.StatesOption.Value = True Then'按产品类型组织销售报告'End IfEnd Sub小结:Access VBA编程中的单选按钮是一种非常有用的控件,可以将其用于过滤、排序、分组或进行其他交互操作。

通过使用VBA 代码响应单选按钮事件,可以自动更新查询或报告结果。

用VBA制做ACCESS登录系统

用VBA制做ACCESS登录系统用VBA制作ACCESS登录系统介绍本文档将指导您使用VBA编程语言制作一个简单的ACCESS登录系统。

通过该系统,用户可以输入用户名和密码进行身份验证,并根据其角色访问不同的功能和数据。

步骤和说明下面是实现ACCESS登录系统的步骤和说明:步骤 1: 创建登录表格首先,打开ACCESS数据库并创建一个新的表格,用于存储用户的登录信息。

表格应包含以下字段:- 用户名(Username):作为主键,用于唯一标识每个用户。

- 密码(Password):用于验证用户身份。

步骤 2: 创建登录表单接下来,创建一个用户登录的表单,以便用户可以输入他们的用户名和密码。

在表单上添加以下控件:- 用户名文本框(TextBox):用于用户输入用户名。

- 密码文本框(TextBox):用于用户输入密码。

- 登录按钮(Button):用于触发登录过程。

步骤 3: 编写VBA代码在表单的VBA编辑器中,编写以下代码来实现登录系统的功能:Private Sub LoginButton_Click()Dim rs As DAO.RecordsetDim strSQL As String' 获取用户输入的用户名和密码Dim username As StringDim password As Stringusername = ernameTextBox.Valuepassword = Me.PasswordTextBox.Value' 构建查询语句,用于验证用户信息strSQL = "SELECT * FROM LoginTable WHERE Username='" & username & "' AND Password='" & password & "'"' 执行查询并判断结果Set rs = CurrentDb.OpenRecordset(strSQL)If Not rs.EOF Then' 登录成功,跳转到主界面DoCmd.OpenForm "MainForm"Else' 登录失败,显示错误消息MsgBox "用户名或密码错误,请重新输入。

全国二级ACCESS教程第9章VBA数据库编程

单/击/此/处/添/加/副/标/题/内/容
第9章 VBA数据库编程
授课教师:邓广彪 联系电话: 电子邮箱:
Access数据库程序设计
9.1.1 VBA常见操作
打开和关闭操作
打开窗体:DoCmd.OpenForm 窗体名
② 打开报表: DoC m d .O p en Rep or t 报表名
③ 关闭操作: DoCmd.Close 对象类型, 对象名
分析如下代码,考虑为什么提示的结果是55。
Sub abc() Dim sum, i, j As Integer sum = 1 For i = 2 To 4 For j = 1 To 3 sum = sum + i * j Next Next MsgBox sum
End Sub
分析如下代码,考虑为什么提示的结果是25。
End Sub
如果想对当前读取到的记录进行修改,可以使用“字段变量 = 值”的格式进行修改,但在修改前必须要使用rs.Edit表示 允许进行修改,修改后必须使用rs.Update进行更新。
举例:对“班级信息表”中“班级名称”以“艺术”开头的 班级,将人数增加100。
代码见下一张幻灯片。
Sub abc() Dim db As DAO.Database Dim rs As DAO.Recordset Dim mc As DAO.Field Dim num As DAO.Field Set db = CurrentDb() Set rs = db.OpenRecordset("班级信息表") Set mc = rs.Fields("班级名称") Set num = rs.Fields("人数") Do While Not rs.EOF If mc Like "艺术*" Then rs.Edit num = num + 100 rs.Update End If rs.MoveNext Loop rs.Clone db.Close

第8章 Access编程——VBA模块讲义

变量
五、运算符和表达式
算术运算符
连接运算符
逻辑运算符
六、程序结构
顺序:按照语句顺序依次执行的结构
条件:
循环:当型循环、直到型循环
七、程序控制语句(p255)
1.条件分支语句
(1)行If语句
If条件Then语句1 [else]语句2
(2)块If语句
If条件Then
语句组l
Eபைடு நூலகம்se
语句组2
End If
(3)如果条件复杂,还可以对块if语句变形成嵌套结构。
3、数组
突破方法
通过实例演示
所用基础
知识提示
详细内容及教学过程
一、VBA(Visual Basic for Application)简介
1、在实际的应用系统中有些需求是交互式操作或宏所无法完成的,只能通过编写程序来实现。
2、VBA是Microsoft Office软件的内置编程语言,VBA的语法与Visual Basic编程语言相互兼容。
3、在Access中使用VBA语言不仅能够完成某些操作或宏力不能及的事,而且能够开发出功能更加强大,结构更加复杂的数据库系统。
二、VB编辑器
编写程序可以利用Visual Basic编辑器,启动编辑器的常用方法有三种:
通过事件过程启动
通过模块对象
通过“工具”菜单中的“VB编辑器”
三、VBA的编程环境—VBE
2.多分支语句
从上面的多重嵌套的if语句看出,这种句子结构十分复杂,可读性低,有效的方法是使用Select Case语句来控制多分支。
3.循环控制结构
(1)While循环结构
While条件
循环体
Wend
(2) Do...Loop语句
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第8章编程入门VBAVBA编程入门内容提要8-1VBA VBA概念概念8-2VBA VBA编程基础编程基础8-3 VBA 3 VBA常用语句常用语句8-4 VBA 4 VBA程序流程控制程序流程控制8-5 5 数组数组8-6 VBA 6 VBA与宏与宏8-7 7 小结及练习小结及练习VBA(Visual Basic for Application)是Microsoft Office Microsoft Office系列软件的内置编系列软件的内置编程语言,其语法结构与程语言,其语法结构与Visual Basic Visual Basic编编程语言互相兼容,采用的是面向对象的编程机制和可视化的编程环境。

8-1 VBA 1 VBA概述概述8-1-1 VBA 1 VBA简介简介1.集合和对象VBA VBA中的应用程序是由许多对象组成的,如中的应用程序是由许多对象组成的,如表、窗体、查询等。

对象是帮助构造应用程序的元素,以特定的方式组织这些对象,就形成了应用程序。

数据库窗口把可供选择的对象排列在一起,形成不同的类。

8-1-2 2 面向对象程序设计的基本概念面向对象程序设计的基本概念2.对象的属性、事件和方法2.对象的属性、事件和方法属性属性描述了对象的自身性质。

其格式为:属性==属性值对象名对象名..属性事件事件是指可以发生在一个对象上且能够被该对象所识别的动作。

单击””事如:单击某个命令按钮就产生该按钮的“如:单击某个命令按钮就产生该按钮的“单击件当某个对象发生某一事件后,就会驱动系统去执行预先编好的、与这一事件相对应的一段程序。

方法方法是系统事先设计好的,可以完成一定操作的特殊过程,是附属于对象的行为和动作。

在需要使用的时候可以直接调用。

其调用格式为:对象名..方法名对象名Access Access中除数据库的中除数据库的77个对象外,还提供一个重要的对象:DoCmd DoCmd对象对象除窗体、控件的除窗体、控件的SetFocus(SetFocus(获得控制焦点获得控制焦点))方法外,用得最多得是DoCmd DoCmd对象对象的一些方法。

使用这些方法,可以在法。

使用这些方法,可以在VBA VBA中运行中运行Access Access 的操作。

打开当前数据库中的打开当前数据库中的““雇员雇员””窗体DoCmd.OpenForm "Employees"在数据库窗口中选择在数据库窗口中选择““雇员雇员””窗体DoCmd.SelectObject acForm,"Employees ",True 在数据库窗口中关闭在数据库窗口中关闭““雇员雇员””窗体DoCmd.Close acForm, “Employees ”, acSaveYes 删除数据库中的删除数据库中的““雇员雇员””表DoCmd.DeleteObject "Employees"DoCmd DoCmd 对象的常用方法(参照教材对象的常用方法(参照教材P190P190页)页)新建一个窗体并添加两个命令按钮,1 新建一个窗体并添加两个命令按钮,例8-1运行窗体后,单击第一个按钮,新式一个消息框;单击第二个按钮,退出当前窗体。

页)P191页)(参照教材(参照教材P191通过此例,体会可视化编程、面向对象、事件过程、应用方法等基本概念。

进入进入VBEVBE编程环境编程环境VBEVBE窗口的组成窗口的组成VBEVBE窗口由工具栏、工程资源管理器窗口、窗口由工具栏、工程资源管理器窗口、属性窗口、代码窗口和立即窗口组成。

在VBEVBE环境中编写环境中编写VBAVBA代码代码8-1-3 VBA3 VBA编程环境编程环境标准工具条视图视图Microsoft Access Microsoft Access按钮:切换按钮:切换Access 2000Access 2000窗口窗口 插入按钮:插入模块或过程 运行子过程运行子过程//用户窗体按钮:运行模块中的程序 中断按钮:中断正在运行的程序重新设置按钮:结束正在运行的程序设置模式按钮:在设计模式和非设计模式之间切换 工程资源管理器按钮:用于打开工程资源管理器 属性窗口按钮:用于打开属性窗口对象浏览器按钮:用于打开对象浏览器Microsoft Accsee 插入模块运行子过程/用户窗体设计模式中断重新设计工程资源管理器对象浏览器属性窗口工程窗口-选择对象属性窗口-选择对象的属性代码窗口选择事件VBEVBE编程环境编程环境8-2-1 1 常量、变量常量、变量8-2 VBA 2 VBA编程基础编程基础常量:在程序运行中其存储的值不会改变。

变量:在程序运行中其值可以改变。

VBA VBA使用常量、变量来存储值。

用来保存使用常量、变量来存储值。

用来保存在程序运行期间数据。

常量在程序运行过程中,其值不会被改变的量称VBA中有三类常量:中有三类常量:为常量。

在VBA为常量。

在直接常量如:10,20%,123.0,“AB”,“VBA程序设计”等符号常量系统常量指VBA系统预先定义好的,用户可以直接引用的量。

如:acForm,acQuery,vbOk,vbRed符号常量在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。

VBA VBA中使用关键字中使用关键字Const 声明符号常量声明符号常量。

其格式如下:Const 常量名[类型符号类型符号]=]=常数表达式常数表达式如:Const PI #=#=33.1415926变量变量是内存中的临时单元,存放在程序执行过程中产生的中间结果和最后输出结果。

在程序中使用变量,就要给变量定义名称及类型,即对变量进行声明。

变量命名规则变量名必须以字母或汉字开头,后可跟字母、汉字、数字或下划线组成(不能含有小数点和空个字符的字符串;255个字符的字符串;格),长度不超过格),长度不超过255中的关键字;VBA中的关键字;不能使用VBA不能使用VBA中不区分变量名的大小写;中不区分变量名的大小写;VBA、!、##、$变量名的最后一个字符可以是%%、&、!、变量名的最后一个字符可以是等表示数据类型的声明符。

说明:常量名的命名规则与变量名的命名规则相同8-2-2数据类型与变量的声明2 数据类型与变量的声明中,数据类型用来决定变量在VBAVBA中,数据类型用来决定变量支持多种数据VBA支持多种数据可以保存何种数据。

可以保存何种数据。

VBA类型,为用户编程提供了方便。

1 VBA的数据类型页表88-1 VBA的数据类型参照教材P196参照教材P196页表VBAVBA的数据类型的数据类型数据类型类型声明符存储空间取值范围整型(Integer)%2-32768~32767长整型(Long)&4-2147483648~2147483647单精度浮点型(Single)!4负数:-3.402823E38~-1.401298E1.401298E--45正数:1.401298E1.401298E--45~3.402823E38双精度浮点型(Double)#8负数:-1.79769313486232E308~-4.94065645841247E4.94065645841247E--324正数:4.94065645841247E4.94065645841247E--324~1.79769313486232E308货币型(Currency)@8-922337203685477.5808~922337203685477.5807日期型(Date)8100年1月1日~9999年12月31日字符型(String)$0字符~65400个字符字节型(Byte)10~255逻辑型(Boolean)2True或False对象型(Object)4任何引用的对象变体型(Variant)变量声明用Dim| Static Dim| Static语句显式声明局部变量语句显式声明局部变量格式:格式:Dim Dim 变量名变量名[AS [AS 类型类型]]或Dim Dim 变量名类型符变量名类型符语句中的语句中的““As As 类型类型””子句是可选的。

如果使用该子句,就可以定义变量的数据类型。

未使用,默认变量的类型为变体型(使用,默认变量的类型为变体型(Variant Variant)。

)。

例如:例如:Dim i As integer, sDim i As integer, s 表示声明了一个名为表示声明了一个名为i i 的整型变量和一个名为的整型变量和一个名为s s 的变体型变量。

关键字Dim或Static的区别:Dim 声明:随过程的调用而分配存贮单元,每次调用都对变量初始化;过程体结束,变量的内容自动消失,存储单元释放。

Static 声明:Static 声明的变量,也称为静态变量。

静态变量在程序运行过程中一直保留其值,即每次调用过程,变量保持原来的值。

隐式声明变量未进行上述的声明而直接使用变量,称变量的隐式声明。

采用隐式声明的变量都是变体型(变体型(Variant Variant )。

)。

注意注意::VBA VBA中允许不事先声明而直接使用变量,可以通过中允许不事先声明而直接使用变量,可以通过语句Option Explicit ,来要求所使用的变量必须事先声明,否则事先声明,否则VBA VBA会发出警告信息。

会发出警告信息。

下面是一个简单的程序a,b,其使用的变量a,下面是一个简单的程序,,其使用的变量都没有事先定义。

Sum都没有事先定义SumPrivate Sub Form_Click()Sum=0a=10b=20Sum=a+b"Sum=";;SumPrint"Sum="End Sub先声明变量,,后使用变良好的编程习惯应该是““先声明变量良好的编程习惯应该是,同时也使程序易这样做可以提高程序的效率,量”,这样做可以提高程序的效率中可以强制显式声明,,可以在窗体模。

VBA中可以强制显式声明于调试。

于调试块、标准模块和类模块的通用声明段中加入语句:Option Explicit变量的初始化声明而未赋值的变量的值为:数值型变量初始化为数值型变量初始化为00;字符型变量为零长度字符串;变体型变量初始化为Empty。

Empty。

页)P199页)运算符和表达式(教材P1993 运算符和表达式(教材8-2-3运算符算术运算符连接运算符:&、+(字符串连接)例如:"123" + "456"结果"123456""123" & "456"结果"123456"使用上&与+的区别:例如:"abcdef" & 12345结果为"abcdef12345"abcdef12345""123" & 456结果为"123456"结果为出错"abcdef" +12345"abcdef" +12345 结果为结果为579"123" + 456 结果为"123" + 456关系运算符将两个操作数进行大小比较,结果为逻辑值。

相关文档
最新文档