ACCESS第9章 VBA程序设计(1新)
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课件(第9章模块与VBA程序设计)(数据库编程)
P301
➢ 使用命令对记录集中的记录或字段进行操作:
Do While Not rs.EOF …… rs.MoveNext
Loop
➢ 关闭记录集和数据库,并回收所占内存:
rs.Close db.Close Set rs = Nothing Set db = Nothing
举例 P301
【例1】创建一个窗体:要求单击其中的命令按钮后, 将“学生”表中Flag字段的值加1。(DAO窗体-1)
还可以将一个字段表达式赋予字段,如 rs.Fields("Flag")=Year(Date)-Year(rs.Fields("出生日期") )
举例 P301
➢ 命令按钮“退出”的Click事件代码:
rs.Close db.Close Set rs = Nothing Set db = Nothing DoCmd.Close
举例 P301
【例2】创建一个窗体。要求能在“学生信息表”中实 现记录的转移。 (DAO窗体-记录转移)
举例 P301
➢ 窗体的通用区域代码: Public ws As Workspace Public db As Database Public rs As Recordset Public fd As Field
举例 P301
➢ 窗体的“加载”(Load)事件代码:
Set ws = DBEngine.Workspaces(0) Set db = ws.OpenDatabase(" C:\选课管理.accdb ") Set rs = db.OpenRecordset("学生") Me.TxtXH = rs.Fields("学号") Me.TxtXM = rs.Fields("姓名") Me.TxtXB = rs.Fields("性别")
第九章 Access的编程语言VBA
… [Else
<语句组n+1>] End If
例9_5输入文本框中三个数,单击“排序” 按钮后,三个数按由大到小的顺序排列。 单击“重新输入”按钮后,清空文本框, 以便于重新输入。
Select Case语句(情况语句)
Select Case <表达式> Case 值1 语句组1 Case 值2 语句组2
If…Then…If…Then…Else…Else… 在VBA中规定,每一个Else与在它前面的、距
离最近的且没有被匹配过的If…Then配对。
块if语句 格式一:
If <条件> Then <语句组1>
Else <语句组2>
End If
格式二: If <条件1> Then
<语句组1> Elseif <条件2> Then
– 随机文件:每一条记录的长度是固定的,随 机文件中每一条记录都具有一个记录号。在 读取文件时,就可以直接访问文件中的某一 条记录。
VBA中对文件操作的语句
– 打开文件 Open “文件名” [For 模式] As [#]文件号
[Len=记录长度] – 格式:
OUTPUT:写操作
INPUT:读操作 APPEND:追加到文件未尾 Random:指定随机存取方式,也是默认方式 Binary:指定二进制方式
– 运算符是表示实现某种运算的符号。VB中的 运算符可分为:算术运算符、关系运算符、 逻辑运算符、字符串连接运算符和对象运算 符。
– 通过运算符和操作数组合成表达式,实现程 序编制中所需的大量操作。
算术运算符
关系运算符
逻辑运算符
ACCESS实例教程(数据库的编程)--ppt课件全
Set db=ws.OpenDatabase(数据库的地址与文件名) ' 打开数据库
Set rs=db.OpenRecordSet(表名、查询名或SQL语句) ' 打开记录集
ppt课件 ACCESS实例教程 9
Do While not rs.EOF ' 循环遍历整个记录集直至记录集末尾
……
' 对字段的各种操作
Access实例教程
ppt课件
1
ACCESS实例教程
——数据库编程(第9章)
ppt课件
2
本章要点: 1,用ADO访问数据库 2,用DAO访问数据库 3,程序运行错误处理
ppt课件 ACCESS实例教程 3
9.1 VBA数据库访问接口
VBA数据库访问接口是指VBA与后台数据库的连接部分, 也就是VBA与Access数据库连接的方法。
ppt课件 ACCESS实例教程 22
(5)转到窗体视图,如果输入的编号与表中的编号有重复,单 击命令按钮后显示消息框,输入的信息不能追加到表中。
mandType=查询类型
'指定命令对象的查询类型
mandText=查询字符串
'建立命令对象的查询字符串
rs. Open cm, 其他参数
'打开记录集
do while not rs.EOF
'循环开始
……
'对字段的各种操作
rs.movenext
'记录指针移到下一条
loop
'返回到循环开始处
作区和打开数据库两条语句用下面一条语句代替:
Set db = CurrentDb()
该语句是Access的VBA给DAO提供的数据库打开快捷方式。
Access编程语言VBA
学习 教程 教材 多媒体课件【友情
分享】GOOD GOOD STUDAY, DAY
DAY UP↗↗
3
2.常量的类型
变量的类型
含义
Byte
字符
Integer
短整数
Long
长整数
Single
单精实数
Double
双精实数
Sring Currency Boolean
Date Object Variant
次该事件。 (3)MouseMove事件:鼠标移动事件。 (4)MouseUp事件:鼠标释放事件。 (5)MouseDown事件:鼠标按下事件。
学习 教程 教材 多媒体课件【友情
分享】GOOD GOOD STUDAY, DAY
DAY UP↗↗
25
窗口事件:
(1)Open事件:打开事件。
(2)Close事件:关闭事件。
学习 教程 教材 多媒体课件【友情
分享】GOOD GOOD STUDAY, DAY
DAY UP↗↗
19
2.Function函数
在VBA中,除了系统提供的函数之外,还可以由用户来自 行定义函数。
Function函数的定义格式如下: [Private|Public] [Static] Function 函数名([参数[As类
[Private|Public] [Static] Property{Get|Let|Set} 属性名 [参数[As类型] ]
[语句组]
End Property
学习 教程 教材 多媒体课件【友情
分享】GOOD GOOD STUDAY, DAY
DAY UP↗↗
21
9.1.8 文件
《Access 2002数据库应用实训教程》第9章:宏操作
上一页
下一页
返回首页 返回本章
图9.1 宏窗口
上一页
下一页
返回首页 返回本章
图9.2 创建宏的窗口
上一页
下一页
返回首页 返回本章
图9.3选择操作窗口
上一页
下一页
返回首页 返回本章 5.用鼠标在窗口中选择相应的操作,操作参数显示的窗口 的下方,如图9.4所示,在表名称项选择“公司职员基本情况” 表,在视图项选择“设计”,在数据模式项选择“编辑”; 6.设置完各参数,将光标移至注释栏,添加注释,如图9.5所示; 7.再按上述步骤添加其他操作和操作参数,如图9.6所示; 8.关闭宏窗口,保存宏,确定宏名称,如图9.7所示。 注意:Access的宏只须使用鼠标选择即可,无论是宏的操作还是操作 参数的选择,注释部分,可以省略,主要是给自己标注操作内容,以 便将来修改,可以省略。
上一页
下一页
在设计实际信息管理系统时,有许多需要自动完成的任务, 返回本章 这就需要许多宏。为了避免宏数量的增多,减少维护数据库 的难度。可以将几个功能相关或相近的宏组织到一起构成宏组, 并为宏组分配一个名称,将其作为数据库对象,这样大大有利于 宏的管理和维护。我们为“迷你超市业务信息管理系统”创建一个 控制窗体,如图9.8所示,利用宏组在一个宏窗口下包含有多个 宏,而且每个宏拥有单独的名称并可以单独运行。 操作方法: 1.打开数据库“迷你超市业务信息管理系统”; 2.在“数据库”窗口,选择“窗体”为操作对象,按“新建”按 钮,进入“新建窗体”窗口;在“新建窗体”窗口,选择 “设计视图”,进入“窗体”窗口; 3.在“窗体”窗口,设置窗体的属性, 如图9.9所示;
上一页
下一页
9.2 项目二 用宏定制菜单
一个完整的数据库应用系统,应该有自己的菜单,菜单可 以通过“宏”的设计来完成。 下面我们为“迷你超市业务信息管理系统”设计主菜单,希望 能通过主菜单打开表、查询、窗体、报表以及退出系统,主菜单 的内容见表9.1所示。 表9.1“迷你超市业务信息管理系统”主菜单见教材
Access 2010数据库第九章 模块和VBA
对象有如下一些基本特点: 继承性:指一个对象可以继承其父类的属性及操作。 多态性:指不同对象对同样的作用于其上的操作会有不同的反 应。 封装性:指对象将数据和操作封装在其中。用户只能看到对象 的外部特性,只需知道数据的取值范围和可以对该数据施加的 操作,而不必知道数据的具体结构以及实现操作的算法。
1.运算符 VBA提供了算术运算符、字符串运算符、关系运算符和布尔运 算符。
2.表达式 用运算符把运算分量连接而成的符合VBA语法要求的式子就是表 达式,运算分量可以是常量、变量、对象属性和函数,根据表达式 值的数据类型可以分成如下几种: 算术表达式:(3+5) Mod 3 *(80/2)
5.Do-Loop循环语句 前测型循环: Do While 条件表达式 循环语句组 [Exit Do] Loop 后测型循环: Do 循环语句组 [Exit Do] Loop While 条件表达式
9.2.5 数组
1.定义数组 {Dim|Public}数组名(正整数常量) As 数据类型 2.数组应用 【例9-1】 随机产生10个100以内的随机整数,求其中比平均值 大的整数。为此设计如图9-9所示的窗体,放置三个锁定的只读 文本框Text1、Text2和Text3,并放置一个命令按钮cmd。适 当设置窗体及其控件的属性。
2.对象的属性 每个对象都有属性,对象的属性定义了对象的特征,诸如大 小、颜色、字体或某一方面的行为。使用VBA代码可以设置或者 读取对象的属性数值。修改对象的属性值可以改变对象的特性。 设置对象属性值的语法格式如下:
对象名.属性 = 属性值
有些属性并不能设置,这些属性或者只能读取此属性(只读属 性),或者只能写入此属性(只写属性)。还可以通过属性的返 回值,来检索对象的信息。
全国二级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
《数据库原理与应用(Access)》第9章:VBA编程
1.标准模块 . 简称“模块”,或称为“一般模块”。大多数模块都是标准模块,其中包 含的代码和特定的数据库对象并无关联,当数据库中对象被移动时,模块还 在原数据库中不动。 标准模块包含与任何其他对象都无关的常规过程,以及可以从数据库任何 位置运行的经常使用的过程。标准模块和与某个特定对象无关的类模块的主 要区别在于其范围和生命周期。在没有相关对象的类模块中,声明或存在的 任何变量、常量的值都仅在该代码运行时、仅在该对象中是可用的。 2.类模块 . 可以包含新对象定义的模块。一个类的每个实例都新建一个对象。在模块 中定义的过程成为该对象的属性和方法。类模块可以单独存在,也可以与窗 体和报表一起存在。和窗体、报表相关联的分别称为窗口(form)模块和报 表(report)模块,这种模块中的代码和特定的报表或窗口相关联。当对应的 窗口或报表被移动到另一个数据库时,模块和其中代码通常也会跟着被移动。 窗体模块 (窗体模块:该模块中包含在指定的窗体或其控件上事件发生 时触发的所有事件过程的代码。)和报表模块 (报表模块:该模块中包含在 指定报表或其控件上事件触发时的所有事件过程的代码。)都是类模块,它 们各自与某一特定窗体或报表相关联。窗体模块和报表模块通常都含有事件 过程 (事件过程:自动执行的过程,以响应用户或程序代码启动的事件或系 统触发的事件。),过程的运行用于响应窗体或报表上的事件。可以使用事 件过程来控制窗体或报表的行为,以及对它们操作的响应,如单击命令按钮。
Private Friend Function name arglist As type
statements name = expression End Function
VBA是事件驱动的,简单来说,它等待能激活它的事件发生,比如 说当鼠标被点击,一个键被按下或者一个表单被打开,等等。当事件 发生时,VBA调用Windows操作系统的功能去实现“模块”中设定好的 语句。这样看来,“模块”和“宏”的使用是差不多的。其实Access 中的“宏”也可以存成“模块”,这样运行起来的速度还会更快。 “宏”的每个基本操作在VBA中都有相应的等效语句,使用这些语句 就可以实现所有单独“宏”命令。 模块是书写和存放VBA代码的地方。它是一个代码容器,可以将 一段具备特殊功能的代码放入模块中,当指定的事件激活模块时,其 中包含的代码对应的操作就会被执行。模块有两种形态:
Access基础与应用教程PPT课件 第9章 VBA的数据库编程
完整版ppt
退出 2
9.1 数据库访问接口
为了在VBA程序代码中能方便地实现对数据库的数
据访问功能,VBA语言提供有相应的通用的接口方式。
VBA是通过 Microsoft Jet 数据库引擎工具来支持
对数据库的访问。所谓数据库引擎实际上是一组动态链
接库(DLL),当程序运行时被连接到 VBA 程序而实
14
2.TableDef 对象的CreateField方法
使用 TableDef 对象的 CreateField 方法可创建表 中的字段。
使用 CreateField方 法的语句格式: Set fed = tbe.CreateField(name, type, size)
其中: fed 是字段对象变量。tbe 是表对象变量。name 是字段名。type 是字段的数据类型,要用英文字符表 示,如 dbText 表示文本型,dbInteger 表示整型。 size 表示字段大小。
VBA的数据库编程
第
9
在开发Access数据库应
章
用系统时,为了能开发出
更实用、更有效的Access数
据库应用程序,以便能快
速、有效地管理好数据,
还应当学习和掌握VBA的
数据库编程方法。
完整版ppt
1
第9章 VBA的数据库编程
本章主要内容
9.1 数据库访问接口 9.2 数据访问对象(DAO) 9.3 ActiveX数据对象(ADO)
完整版ppt
5
9.2.1 DAO模型结构
完整版ppt
6
DAO 模型的分层结构图如图10-2所示。它包含了一个
复杂的可编程数据关联对象的层次,其中 DBEngine对象
Access数据库与VBA面向对象程序设计课后答案
Access数据库与VBA面向对象程序设计课后答案第1章数据库系统概述1. 什么是数据库?什么是数据库系统?请问:数据库(database)就是存放数据的仓库,严苛的讲,数据库就是长期存储在计算机内,存有非政府的,可以共享资源的大量数据子集。
数据库系统(database systems),是由数据库及其管理软件组成的系统。
它是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。
它是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。
2. 什么就是数据库管理系统?它存有哪些主要功能?答:数据库管理系统(database management system)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称dbms。
它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
数据库管理系统的主要功能存有:数据定义、数据操作方式、数据库的运转管理、数据组织、数据库的维护、数据库的保护和通信。
3. 说出几种常用的数据模型。
请问:层次模型、网状模型、关系模型。
4. 什么是关系模型?请问:关系模型就是用二维表的形式则表示实体和实体间联系的数据模型。
5. 简述数据库设计的步骤。
请问:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的创建和测试、数据库运行和维护。
第2章 SQL 语言简介1. 什么就是SQL语言?SQL语言具备哪些特点和功能?答:SQL是一种数据库查询和程序设计语言,用于存取数据以及查询更新和管理关系数据库系统。
SQL的特点和功能存有:查阅,操作方式,定义和掌控四个方面,SQL语言具备高度的非过程化,语言简约,语义显著,语法结构直观,直观易懂的特点。
SQL语言即为可以做为单一制语言采用,用户可以在终端键盘上轻易键入SQL命令对数据库展开操作方式,也可以做为嵌入式语言,内嵌至其他高级语言中。
2. SQL语言包含哪几个部分?请问:SQL语言涵盖4个部分:数据定义语言(DDL-Data Definition Language)、数据查询语言(DQL-Data Query Language)、数据压低语言(DML-Data Manipulation Language)、数据掌控语言(DCL-Data Control Language)3. 在联接查询中,包含哪几类联接?请问:联结可以分成3类:(1)内部联接(典型的联接运算,使用类似于 = 或 <> 的比较运算符)。
ACCESS数据库实验 实验十三 VBA程序设计(一)
实验十三VBA程序设计(一)实验目的1.熟悉VBA程序设计基本语言2.掌握VBA程序设计局的基本方法实验内容打开“student.mdb”。
一、根据输入的圆的半径,计算圆的周长和面积。
1、创建一个窗体,如下图所示,保存为“计算圆窗体”。
2、选择“计算”按钮,右键打开“事件生成器”中的“代码生成器”。
输入以下代码并填充完整。
其中绿色文字为注释,可以不用输入。
Private Sub 命令6_Click()Const pi = 3.1415Dim r As Single '变量r放圆的半径Dim zch As Single '变量zch放圆的周长Dim area '变量area放圆的面积Me.文本0= CSng(文本0.Text) 'csng函数用于将数据转换成单精度类型。
Me.文本2 = 2 * pi * r '计算周长Me.文本4 = '计算面积End Sub3、运行“计算圆窗体”,观察运行效果。
二、设计一个窗体,使得在购买某物品时,若所花的钱x在下述范围内,实际所付钱y按对应折扣支付。
当x<1000时,y=x当1000<=x<2000时,y=0.9x当2000<=x<3000时,y=0.8x当x>=3000时,y=0.7x1、创建一个窗体,如右图所示,保存为“折扣计算窗体”。
2、选择“计算”按钮,右键打开“事件生成器”中的“代码生成器”。
输入以下代码并填充完整。
其中绿色文字为注释,可以不用输入。
Private Sub 命令5_Click()Dim x As SingleDim y As SingleMe.文本1.setfocusx = CSng(文本1.Text)If x < 1000 Theny = xElseIf Then '当1000<=x<2000时y = 0.9 * xElseIf x >= 2000 And x < 3000 ThenElsey = 0.7 * xEnd If= y '将折扣后的金额y显示在第2个文本框中End Sub3、运行“计算圆窗体”,输入数据观察运行效果。
989010-Access 数据库技术-第9章 VBA编程
9.4.1 主窗体
例9.1:设计一个窗体,功能是引导数据库应用系 统的“登录”窗体,窗体运行结果。
9.4.2 查询窗体
例9.2:设计一个窗体,能够进行商品信息查询,功能是 可通过商品类型、商品品质及商品编号等参数,查询有关 商品的相关信息,如某一类型商品,某一品质商品,某类 型的某品质商品,指定商品编号的商品信息,窗体运行结 果。
利用定义Sub过程的语句 建立Sub过程,如图所示 。
3.调用Sub过程 子过程名 [<参数表>]
或: Call 子过程名([<参数表>])
9.3.4 过程
9.3.5 自定义函数
1.定义Function过程 [Public|Private][Static]Function <函数名>([<参数表>])[As<类型>] <局部变量或常数定义> <语句序列> [Exit Function] <语句序列> 函数名=返回值 End Function
9.3.5 自定义函数
2.创建Function过程 Function过程可在标准模块中,或在窗体模
块中建立。 3.调用Function过程
函数名(<参数表>)
9.4 VBA程序实例
❖ 9.4.1 主窗体 ❖ 9.4.2 查询窗体 ❖ 9.4.3 登录窗体
数据库技术及应用
——ACCESS
Database Technology and Application
第9章 VBA编程❖9.1 ❖9.2 ❖9.3 ❖9.4
标准模块 VBA程序设计基础 程序基本结构 VBA程序实例
Access数据库技术与应用基础_09模块与VBA编程基础
9.3 VBA程序设计基础
Visual Basic是微软公司推出的可视化应用程序开 发语言,简称VB。由于VB功能强大且编程简单易 学,因此微软公司将它的一部分代码结合到office 中,形成了VBA。VBA语法与Visual Basic 编程 语言互相兼容。在Access 程序设计中,当某些操 作不能用其他Access 对象实现,或者实现起来很 困难时,就可以利用VBA语言编写代码,完成这 些复杂任务。
2016/7/12
1、赋值语句 赋值语句可以将常量或常量表达式的值赋给变量 或对象的属性,一般格式为: <变量名>=<表达式> 或 [<对象名>.]<属性名>=<表达式> (1) <变量名>应符合变量的命名规则,<对象名> 缺少时为当前窗体或报表。 (2) 首先计算“=”(赋值运算符)右边表达式的 值,将此值赋给“=”左边的变量或对象属性。
2016/7/12
例9.1 创建一个名为Welcome的模块,其功能是 用来显示欢迎消息框。 操作步骤: (1)选择数据库窗口中的“模块”对象,单击 “新建”按钮,打开VBA编辑界面。 (2)执行“插入”|“过程”菜单命令。在弹出 的“添加过程”对话框中填写过程的名称、选择 过程类型和范围,单击“确定”按钮后,出现 Welcome过程的编写窗口。
2016/7/12
4.MsgBox函数和MsgBox语句 MsgBox函数或语句可以产生一个消息框,消息框中给出 提示信息,用户可以根据提示信息选择后面的操作。 函数格式为: MsgBox(消息字符串[,按钮与图标样式][,对话框标题 字符串]) 语句格式为: MsgBox 消息字符串[,按钮与图标样式][,对话框标题字 符串] 两种格式的区别是,MsgBox函数会产生一个返回值,用 户需要将返回值赋给一个变量。MsgBox语句无返回值, 仅是单纯的信息显示。
ACCESS-VBA编程(1)
ACCESS-VBA编程(1)program 2007-07-20 10:28:30 阅读49 评论0 字号:大中小订阅在VB中对窗体控件的引用键入包含控件的窗体或报表的标识符,后面紧接 ! 运算符和控件的名称。
例如,下列标识符将引用“订单”窗体上“订单ID”控件值:Forms![订单]![订单ID]引用子窗体或子报表上的控件,不必使用“窗体”或“报表”属性为窗体或报表指定完整的标识符。
例如,可以使用下列标识符来引用“订单”子窗体上的“数量”控件:Forms![订单]![订单子窗体]![数量]判断窗体或报表中控件的数目,然后将该数目赋给一个变量。
Dim intFormControls As IntegerDim intReportControls As IntegerintFormControls = Forms!Employees.CountintReportControls = Reports!FreightCharges.Count设置控件可见性Dim i, ii As IntegerFor ii = 3 To 10Me.Controls.Item(ii).Visible = TrueNextFor i = 11 To 22Me.Controls.Item(i).Visible = FalseNext按特殊名在VBA中设置控件的可见性:For i = 27 To 47If Me.Controls.Item(i).Name Like "A*" ThenMe.Controls.Item(i).Visible = FalseEnd IfNext指定一个控件能否接受焦点Enabled属性:me.控件.Enabled = true'能=false'不能指定一个控件能否被编辑:locked如:me.控件.Locked = trueme.控件.Locked = false设置控件标题显示的文字Me.控件.Caption = "显示窗体"设置标签颜色:belColor =200获得焦点及失去焦点时字段变更颜色。
《Access2016数据库教程》第9章模块与VBA程序设计
货币型 Currency
Date
日期型
String
字符串型
Boolean
布尔型
Object
对象型
Variant
变体型
取值范围
0~255
-32768~32767
-2147483648~2147483647
负数:-3.402823E38~-1.401298E-45
正数:1.401298E-45~3.402823E38
运算符
-
*
/
\
Mod
+
-
功能
乘幂
取负
乘法
除法
整除
取模
加法
减法
优先级
1
2
3
3
4
5
6
6
示例
24
-(-6)
3*5
15/2
15\2
17 Mod 5
3+5
8-3
结果
16
6
15
7.5
7
2
8
5
说明:
整除(\)运算和取模(Mod)运算时,如果参与运算的数不是
整数,先将带小数的数据进行四舍五入成为整数后再进行运算。
注意:
如果省略下标下界,则默认值为0。
例如:Dim s(3,2) As Integer
该数组包含4行(0~3)3列(0~2)
共12个数组元素
S(0,0) ~ s(3,2)
(0,0)
(0,1)
(0,2)
(1,0)
(1,1)
(1,2)
(2,0)
(2,1)
(2,2)
(3,0)
(3,1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VBA程序设计
本章要点
了解什么是标准模块,掌握 VBA程序设计相关内容,掌握程 序基本结构,能够利用VBA程序 设计主窗体、查询窗体、登录窗 体等。
引言: 计算机语言
机器语言------面向机器 使用机器语言来编写程序 011011 000000 000000 000001 110101 清除累加器,然后把内存地址为117的单元内容 与累加器的内容相加。
面向对象程序设计
对象的方法----动态操作
方法指对象能执行的动作,通过这个动作能实现 相应的功能或改变对象的属性 注意:对象的方法不会显示在属性表中,只可显 示在程序中。
面向对象程序设计的基本概念
对象的事件 事件是对象可以辨认的动作.可针对此类 动作编写相应的程序代码,以相应用户的 动作或系统行为. 每个对象都有一系列预先定义的事件集。 例如,命令按钮能响应单击、获取焦点、 失去焦点等事件,可以通过属性表的 “事件”选项卡查看。
VBA编程步骤
例 窗体上有一命令按钮控件,名称为 Command0,将命令按钮的标题设置为“确 定”。
在窗体设计视图中,将命令按钮的属性 “格式” 选项卡中的“标题”属性设置为“确定”。 在程序中设置代码:Command0.Caption=”确定” 在程序中设置代码:Me.Caption=”确定” 例:FORMS!用户登录!Command2.caption=“密码”
汇编语言------面向机器 采用一定的助记符表示机器语言中的指令和数据 CLA 00 017
引言: 计算机语言
高级语言------面向过程
如:
CLA C ADD D STD M CLA A ADD B DIV M STD X
X=(A+B)/(C+D)
与人们熟悉的自然语言和数学语言更接近,编程者 不必了解计算机的内部逻辑,主要考虑解题算法的 逻辑和过程的描述,把解决问题的执行步骤通过语 言告诉计算机。BASIC、COBOL、PASCAL、C
VBA编程步骤
属性的设置方法: 一是在窗体设计视图中,通过对象的属性设置; 二是通过程序代码设置,代码格式如下: 对象名称.属性=属性值 窗体或报表的对象名称有两种: Forms和Reports分别是窗体集合、报表集合的对 象名。为了引用某个窗体,可以使用的语法: Forms!窗体对象名称 Reports!报表对象名称 Me关键字是隐含声明的变量,在事件过程中,可以 用Me关键字引用窗体或报表。
面向对象程序设计的基本概念
面向对象程序设计的基本概念
事件过程
尽管系统对每个对象都预先定义了一系列的事 件集,但要判定它们是否响应某个具体事件以 及如何响应事件,就是编程的事情了。例如, 需要命令按钮响应Click事件,就把完成Click 事件功能的代码写到Click事件的事件过程中。 事件过程的形式如下:
VBA概述
Access提供了强大的交互操作功能,用户 通过创建表、查询、窗体、报表、页、宏 等对象,可以将数据整合在一起,快速建 立和管理简单的数据库应用系统。 创建过程虽然简单,但是所建系统会有一 定的局限性。要对数据库进行更加复杂和 灵活的控制,需要使用内置编程工具VBA。
VBA概述
VB(Visual Basic):一种面向对象程序设计语言 “Visual”指的是开发图形用户界面 (GUI) 的方 法。不需编写大量代码去描述界面元素的外观和 位置,而只要把预先建立的对象add到屏幕上即 可。 “Basic”指的是 BASIC语言。 VBA (Visual Basic For Application ) 是VB的应用程序版本,即夹在或者说寄生在应 用程序(Word、Excel、 PowerPoint、 Access、OutLook)中的VB版本 VBA是VB的子集
VBA编程步骤
cmd1. FontSize=12 „设置cmd1的字体大小 cmd1. FontBold=True „字体为粗体 cmd1.Caption=”确定” ‘标题为“确定” Me.Caption=”程序设计之一” ‘设置窗体的标题” Me.ScrollBars=0 „滚动条设为“两者均无” Me.RecordSelectors=False „记录选定器设为“否” Me.NavigationButtons=False „导航按钮设为“否” Me.DividingLines=False „分隔线设为“否”
Private Sub 对象名_事件名()
…(VB程序代码)
End Sub
VBA编程步骤
VBA编程有以下几个主要步骤: 创建应用程序界面 确定需涉及的窗体和窗体上的控件。 设置对象属性 在对象的属性窗口或使用VBA程序代码进行设置 编写对象事件代码(过程) 考虑针对哪些对象激活什么事件(单击、双击等), 并编写相应的事件代码 运行和调试 保存文件
VBA编程步骤
例二:编写一个简单程序。要求:在窗体上创建一个 文本框控件、三个命令按钮控件,命令按钮的标题 分别设置为“显示”、“隐藏”和“关闭”。要求: 单击“隐藏”按钮后文本框消失;单击“显示”按 钮显示出文本框;单击“关闭”结束程序执行。
VBA编程步骤
Private Sub cmd1_Click() txt1.Visible = False End Sub
引言: 计算机语言
非过程化语言------面向目标
如果说第三代语言要求人们告诉计算机怎么 做,那么第四代语言只要求告诉计算机做什么, 因此,将第四代语言称为是面向目标的语言。 dbase、foxbase、数据库中的查询语言SQL
如: SELECT 姓名,年龄 FROM 基本情况 FOR 年龄>50
视图Microsoft Access 运行子过程/用户窗体 终止运行/ 重新设计 对象浏览器
插入模块
中断
设计模式
属性窗口
VBA编程环境----VBE窗口
VBE通过多个不同的窗口来显示不同对象或完成不 同任务,可单击“视图”菜单中的命令来调出窗口。 代码窗口:代码窗口用来编写、显示以及编辑VBA 代码。
VBA编程环境
VBE的界面默认情况下只包含代码窗口。如需要, 可通过“视图”菜单打开项目资源管理器、属性 窗口、本地窗口、立即窗口、监视窗口等窗口。 不同窗口显示不同的对象,这为代码的设计和调 试提供了方便。
VBA编程环境
VBE界面的常用工具栏
“视图”菜单→“工具栏”→“自定 义”→“选项”卡中选择“显示关于工具栏的 屏幕提示”
面向对象程序设计
面向对象程序设计是一种以对象为基础,以事 件来驱动对象的程序设计方法。 对象和对象名称 对象是封装数据和相应代码的客体,它是代码 和数据的组合。 对象是VBA应用程序的基础构件。在开发一个 应用程序时,必须先建立各种对象,然后围绕 对象进行程序设计。 表、查询、窗体、报表等是对象,字段、窗体 和报表中的控件也是对象。
VBA编程环境
VBA的编程环境,称为VBE(Microsoft Visual Basic Editor),是编写和调试程序的重要环境。 当要为某控件的某一事件的响应方法编写VBA代码 时,就应该启动VBA的编程环境进行代码编辑。 Access提供了多种方法启动VBA编程环境。 在窗体或报表外进入VBE 按Alt+F11组合键 在数据库窗口中选择“工具”|“宏”|“Visual Basic编辑器”命令 单击数据库窗口中的“模块”按钮,然后单击 “新建”按钮,或双击要查看或编辑的模块
VBA编程环境
在窗体或报表中进入VBE
在设计视图中打开窗体或报表,然后单击“设计” 工具栏上的“代码”按钮,打开VBE环境。 设计视图中打开窗体或报表,然后右击需要编写 代码的控件,在弹出的菜单中选择“事件生成 器”,在“选择生成器”对话框中选择“代码生 成器”,单击“确定”按钮,打开VBE环境。 在设计视图中打开窗体或报表,然后双击需要编 写代码的控件,在属性表中选择事件,单击按钮, 在出现的“选择生成器”对话框中,选择“代码 生成器”,打开VBE环境。
VBA编程步骤
因为当单击命令按钮时,文本框的内容要发生变 化,因此要对命令按钮对象cmd1对应的Click事 件编程。 在“命令按钮”属性表中,选择“单击”事件, 并单击按钮,在出现的“选择生成器”中,选择 “代码生成器”,即可进入VBA编程环境。 在代码窗口中,输入cmd1的Click事件的代码 : txt1.Value=“Hello World!"。 为了使窗体界面更美观,设置窗体及控件的属性。 在代码窗口中,单击左上角的“视图”按钮,由 代码窗口切换回到Access窗口。
引言: 计算机语言
可视化编程语言------面向对象
“面向对象”概念是相对于“面向过程”的一次 革命。“面向对象”不仅仅作为一种语言,更作 为一种方法论贯穿于软件设计的各个阶段。面向 对象的技术在系统程序设计、数据库及多媒体应 用等诸多领域得到广泛应用。 Visual Basic、Visual FoxPro、Visual C++都 是面向对象的程序设计语言。
面向对象程序设计
对象名称(为便于识别,每个对象均有名称)
有效的名称须符合Access的命名规则,窗体、 报表、字段等对象的名称不能超过64个字符,而 控件对象的名称长度不能超过255个字符。
对象的属性----静态规格 属性是指对象的特征或某些行为。 每个属性都有一个缺省值,如果不改变该 值,应用程序就使用该缺省值,也可根据 要对它重新设置。
宏和VBA
宏本身就是程序,只不过是一种控制方式简单的 程序而已,只可以使用Access提供的命令,而VBA 需要开发者自行编写。 宏和VBA都可以实现操作的自动化。但是,是使用 宏还是使用VBA,取决于需要完成的任务。 对于简单的细节工作(如打开和关闭窗体等), 使用宏是一种很方便的方法。它可以简捷迅速 地将已创建的数据库对象联系在一起。 对于复杂的操作,如数据库的维护、使用内置 函数或自行创建函数等,宏难以实现,应该使 用VBA。