Visual Basic Application(in Access)
窗体设计例子
1.窗体的标题每隔1秒钟交替显示当前日期和当前时间。
窗体的属性表中的事件选项卡上,在事件过程中编辑弹出的VBE框和代码。
1 | Private Sub Form_Load() |
然后将属性表中的“计时器间隔”属性设置为1000,然后设置计时器触发代码如下:
1 | Private Sub Form_Timer() |
注意If后面一定要接End If。
2.输入口令的判别过程
也就是一个输入口令的框,然后设置1个密码,2个按键,分别写入确认和退出函数。
确认函数如下:
1 | Private Sub Command2_Click() |
退出函数如下:
1 | Private Sub Command3_Click() |
3.统计字符个数
也就是给出两个文本行,第一行随便输入字符,第二行输入要统计的字符,然后结果输入统计出来字符的个数。
统计命令的事件代码如下:
1 | Private Sub Command4_Click() |
4.查询学生政治面貌(这是一个查询实验)
窗体名称记为“学生政治面貌查询”。首先设计一个文本框写上“请输入政治面貌:”,然后添加一个列表控件List2,列表框附属标签标题为“学生信息查询:”。
然后添加命令按钮,标题”查找“,用来查找的。事件代码如下:
1 | Private Sub Command4_Click() |
VBA(Visual Basic for Applications)提供了大量的内置函数,这些函数覆盖了从数学计算到字符串处理,再到日期和时间操作等多种功能。以下是一些常用的VBA内置函数的介绍:
内置函数
数学函数
Abs(number)
:返回参数的绝对值。Round(number, numdecimalplaces)
:将数字四舍五入到指定的小数位数。Sqr(number)
:返回一个数的平方根。Log(number)
:返回一个数的自然对数(以e为底)。Exp(number)
:返回e的指定次方。Cos(number)
:返回一个角度的余弦值。Sin(number)
:返回一个角度的正弦值。Tan(number)
:返回一个角度的正切值。
字符串函数
Left(string, length)
:从字符串的左侧提取指定长度的子字符串。Right(string, length)
:从字符串的右侧提取指定长度的子字符串。Mid(string, start[, length])
:从字符串中提取子字符串,从指定位置开始,可选指定长度。UCase(string)
:将字符串转换为大写。LCase(string)
:将字符串转换为小写。Trim(string)
:移除字符串两端的空格。Len(string)
:返回字符串的长度。
日期和时间函数
Now()
:返回当前的日期和时间。Date()
:返回当前的日期。#用的时候一般直接Date即可。Time()
:返回当前的时间。#用的时候一般直接Time即可。Year(date)
:提取日期的年份部分。Month(date)
:提取日期的月份部分。Day(date)
:提取日期的日部分。Hour(time)
:提取时间的小时部分。Minute(time)
:提取时间的分钟部分。Second(time)
:提取时间的秒部分。
DoCmd使用方法
DoCmd
是Microsoft Access VBA(Visual Basic for Applications)中一个非常有用的内置对象,它提供了一组方法和属性,用于执行各种与用户界面(UI)相关的操作,如打开窗体、报表、执行宏、运行命令等。DoCmd
对象是Access VBA中Application
对象的一个成员,因此可以通过Application.DoCmd
来访问。
以下是DoCmd
对象的一些常用方法和属性:
打开和操作窗体和报表
DoCmd.OpenForm(formname, view, filtername, wherecondition, windowmode)
:- 打开一个窗体。
- 参数:
formname
:窗体的名称。view
:窗体的视图(如acNormal
,acDesign
,acFormDS
等)。filtername
:要应用的筛选器名称。wherecondition
:记录的条件筛选。windowmode
:窗体的窗口模式(如acWindowNormal
,acWindowHidden
等)。
DoCmd.OpenReport(reportname, view, windowmode)
:- 打开一个报表。
- 参数:
reportname
:报表的名称。view
:报表的视图(如acViewNormal
,acViewPreview
,acViewLayout
等)。windowmode
:报表的窗口模式。
执行宏
- ```
DoCmd.RunMacro(macroname, parameters)复制1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
- 执行一个宏。
- 参数:
- `macroname`:要执行的宏的名称。
- `parameters`:传递给宏的参数(可选)。
### 应用筛选器和排序
- `DoCmd.ApplyFilter`:
- 应用当前筛选器。
- `DoCmd.SetFilter filtername`:
- 设置当前筛选器名称。
- `DoCmd.Sort fieldNames, sortorder, [expression]`:
- 对记录进行排序。
- 参数:
- `fieldNames`:要排序的字段名称或名称列表。
- `sortorder`:排序顺序(`acAscending`或`acDescending`)。
### 导航记录
- `DoCmd.GoToRecord(record, offset)`:
- 导航到特定的记录。
- 参数:
- `record`:记录的类型(如`acNewRec`, `acFirstRecord`, `acLastRecord`等)。
- `offset`:从当前记录开始的偏移量。
- `DoCmd.Bookmark = bookmark`:
- 跳转到书签指定的记录。
### 其他命令
- `DoCmd.Close`:
- 关闭当前打开的窗体或报表。
- `DoCmd.Refresh`:
- 刷新当前数据库窗口的数据。
- `DoCmd.SetWarnings(warningstatus)`:
- 启用或禁用警告消息。
- 参数:
- `warningstatus`:布尔值,`True`启用警告,`False`禁用。
- `DoCmd.TransferSpreadsheet(spreadsheetname, spreadsheettype, databasepassword, hasusername, haspassword, username, password, drivername, servername, connectionstring)`:
- 将数据转移到Excel电子表格。
### 示例代码
‘ 打开窗体
DoCmd.OpenForm “Employees”, acNormal, , , acWindowNormal
‘ 执行宏
DoCmd.RunMacro “MyMacroName”
‘ 应用筛选器
DoCmd.ApplyFilter
‘ 导航到新记录
DoCmd.GoToRecord acNewRec
‘ 关闭当前窗体
DoCmd.Close
‘ 刷新数据
DoCmd.Refresh
```
DoCmd
对象提供了一种快速、简便的方法来执行常见的Access操作,而无需编写复杂的VBA代码。通过使用DoCmd
,你可以提高代码的可读性和维护性。