会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > 编程心得绝招 > 实际编程 > 正文

Access2000快餐第二部分(共十一章)

时间:2003-12-21 09:07 来源:现代教育技术支持 作者:WangTian… 阅读:

3. 消息框

 

我们在运行很多(几乎是所有)Windows程序时,会发现这些程序的界面非常友好。友好的人机界面会大大提高用户对程序的好感,使程序变得易用、更容易被接受。一个程序如果有一个好的界面,那么它就成功了一半。同样的,我们用VBA也可以实现良好的人机界面。其中很重要的就是消息框。消息框可以在程序运行中告诉用户下一步该做什么、不该做什么,以及那里除了错误,该如何处理等。消息框就是程序员同用户的对话。那么,下面我们来学习如何利用消息同用户对话。

首先,我们新建一个窗体,上面放上三个控件:文本框“txt姓名”、文本框“txt性别”和命令按钮“com加入”。在窗体模块中写入以下代码:

Option Compare Database

Private Sub com加入_Click()

'声明Name、Sex变量,分别表示姓名,性别

Dim Name As Variant, Sex As Variant

'声明消息框函数将要用到的3个变量,分别代表消息内容、消息框标题和消息常数

Dim Msg, Title, Response

Name = Me.txt姓名 '将“txt姓名”文本框的值赋给变量

Sex = Me.txt性别 '将“txt性别”文本框的值赋给变量

'如果“txt姓名”没有键入值,则弹出错误消息框

If IsNull(Name) = True Then

Beep '发出“嘟”的警告声

Msg = "“姓名”不能为空!" ' 定义信息。

Style = vbOKOnly ' 定义按钮。

Title = "输入错误" ' 定义标题。

Response = MsgBox(Msg, , Title)

End If

'如果“txt性别”没有键入值,则弹出错误消息框

If IsNull(Sex) = True Then

Beep '发出“嘟”的警告声

Msg = "“性别”不能为空!" ' 定义信息。

Style = vbOKOnly ' 定义按钮。

Title = "输入错误" ' 定义标题。

Response = MsgBox(Msg, , Title)

'如果“txt性别”键入值不是“男”或“女”,则弹出错误消息框

ElseIf Sex <> "男" Or Sex <> "女" Then

Beep '发出“嘟”的警告声

Msg = "“性别”只能“男”或“女”!" ' 定义信息。

Style = vbOKOnly ' 定义按钮。

Title = "输入错误" ' 定义标题。

Response = MsgBox(Msg, , Title)

End If

End Sub

程序中用到了MsgBox()函数,这是VBA自带的。其格式如下:

MsgBox(消息[, 命令个数及形式] [, 标题文字] [, 帮助文件, 帮助文件号])

上面的参数除“消息”是必须的,其它都是可选的。默认的“命令个数及形式”是“确定”按钮。当中间若干个参数不写时,“,”不可缺少。上面例子值指定了“消息”和“标题文字”两个参数。

运行程序,将会得到类似于下图的结果:

上面程序中,当你未输入姓名、性别时将会弹出消息,通知你输入必要信息。如果你将性别写成“男”或“女”以外的值,将会告诉你输入错误。并发出“嘟”的警告声。可以警告并防止用户进行错误操作。

4. 新建表、删除表

虽然我们可以在设计时间对数据表进行新建和删除等操作,但我们在运行时或程序编译后却不能通过主设计窗体对其进行该动作。但我们有时也许需要经常地进行一些临时表的新建和删除工作,该怎么办呢?这时也需要VBA。

举一个例子。新建一个窗体,放置三个控件:文本框“txt表名”、命令按钮“com新建”和命令按钮“com删除”。我们需要在其中实现表的新建和删除。在窗体模块中写入以下代码:

Option Compare Database

'声明表名称变量

Dim strName As String

Private Sub com删除_Click()

'将文本框“txt表名”的值赋给变量strName

strName = Me.txt表名

On Error GoTo 删除表_Err

’删除名为“strName”的表,“strName”是一个变量

DoCmd.DeleteObject acTable, strName

删除表_Exit:

Exit Sub

删除表_Err:

MsgBox strName & "表不存在或已被删除" '捕获错误并传递消息

Resume 删除表_Exit

End Sub

Private Sub com新建_Click()

'将文本框“txt表名”的值赋给变量strName

strName = Me.txt表名

On Error GoTo 新建表_Err

Dim db As Database '声明数据库变量

Dim tb As New TableDef '声明新表变量

Dim fldName As New Field '声明新字段(姓名)变量

Dim fldSex As New Field '声明新字段(性别)变量

'指定数据库变量为当前数据库变量

Set db = CurrentDb()

'给新表指定名称

tb.Name = strName

'分别定义姓名字段的名称、数据类型

fldName.Name = "姓名"

fldName.Type = dbText

'保存姓名字段到新表

tb.Fields.Append fldName

'分别定义性别字段的名称、数据类型

fldSex.Name = "性别"

'保存性别字段到新表

fldSex.Type = dbText

tb.Fields.Append fldSex

'保存新表到数据库

db.TableDefs.Append tb

新建表_Exit:

Exit Sub

新建表_Err:

MsgBox strName & "表已存在" '如果该表已存在,则提示错误

Resume 新建表_Exit

End Sub

程序运行结果应当如下图:

程序建立的新表应该如下图:

新建该表时,如果该表已存在,则程序会提示并不再新建;删除该表时,如果该表不存在,程序会提示错误。

[1] [2] [3] [4] 下一页

(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: