Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

access-VBA编程 第九章 VBA使用技巧1

时 间:2009-02-25 08:40:20
作 者:UMVsoft整理   ID:1445  城市:上海
摘 要:VBA
正 文:

第九章 VBA使用技巧1

显示窗体“第n条记录 共m条记录”的函数
调用方法:
=RecordNumber("第",me)'me指当前窗体
可在文框的控件来源中写:=RecordNumber("第",forms!当前窗体名)
在代码的窗体成为当前事件中写:me.文本框=RecordNumber("第", Me)
结果虽相同,但在代码中的要快!
但是,在代码的窗体成为当前事件中写:Me.标签.Caption = RecordNumber("第", Me)
用标签,速度明显要比前两个用法还要快!
Function RecordNumber(pstrPreFix As String, pfrm As Form) As String
On Error GoTo RecordNumber_Err
Dim rst
Dim lngNumRecords As Long
Dim lngCurrentRecord As Long
Dim strTmp As String
Set rst = pfrm.RecordsetClone
rst.MoveLast
rst.Bookmark = pfrm.Bookmark
lngNumRecords = rst.RecordCount
lngCurrentRecord = rst.AbsolutePosition + 1
strTmp = pstrPreFix & " " & lngCurrentRecord & " 页," & " 共 " & lngNumRecords & " " & "页"
RecordNumber_Exit:
On Error Resume Next
RecordNumber = strTmp
rst.Close
Set rst = Nothing
Exit Function
RecordNumber_Err:
Select Case Err
Case 3021
strTmp = "New Record"
Resume RecordNumber_Exit
Case Else
strTmp = "#" & Error
Resume RecordNumber_Exit
End Select
End Function
获取ACCESS错误号与对应的中文解释
Sub MMM()
For e = 1 To 100
Debug.Print e; " - "; Error(e)
Next
End Sub
执行上述代码将显示如下结果:
1 - 应用程序定义或对象定义错误
2 - 应用程序定义或对象定义错误
3 - 无 GoSub 返回
4 - 应用程序定义或对象定义错误
5 - 无效的过程调用或参数
6 - 溢出
7 - 内存溢出
对话框返回文本框内容
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
InputBox 函数的语法具有以下几个命名参数:
Prompt:必需的。作为对话框消息出现的字符串表达式。prompt 的最大长度大约是 1024 个字符,由所用字符的宽度决定。如果prompt 包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 来分隔。
Title:可选的。显示对话框标题栏中的字符串表达式。如果省略title,则把应用程序名放入标题栏中。
Default:可选的。显示文本框中的字符串表达式,在没有其它输入时作为缺省值。如果省略default,则文本框为空。
Xpos:可选的。数值表达式,成对出现,指定对话框的左边与屏幕左边的水平距离。如果省略xpos,则对话框会在水平方向居中。
Ypos:可选的。数值表达式,成对出现,指定对话框的上边与屏幕上边的距离。如果省略ypos,则对话框被放置在屏幕垂直方向距下边大约三分之一的位置。
Helpfile:可选的。字符串表达式,识别帮助文件,用该文件为对话框提供上下文相关的帮助。如果已提供helpfile,则也必须提供context。
Context: 可选的。数值表达式,由帮助文件的作者指定给某个帮助主题的帮助上下文编号。如果已提供context,则也必须要提供helpfile。
示例:
本示例说明使用 InputBox 函数来显示用户输入数据的不同用法。如果省略 x 及 y 坐标值,则会自动将对话框放置在两个坐标的正中。如果用户单击“确定”按钮或按下“ENTER”按键,则变量 MyValue 保存用户输入的数据。如果用户单击“取消”按钮,则返回一零长度字符串。
Dim Message, Title, Default, MyValue
Message = "Enter a value between 1 and 3" ' 设置提示信息。
Title = "InputBox Demo" ' 设置标题。
Default = "1" ' 设置缺省值。
' 显示信息、标题及缺省值。
MyValue = InputBox(Message, Title, Default)
' 使用帮助文件及上下文。“帮助”按钮便会自动出现。
MyValue = InputBox(Message, Title, , , , "DEMO.HLP", 10)
' 在 100, 100 的位置显示对话框。
MyValue = InputBox(Message, Title, Default, 100, 100)
根据屏幕分辨率自动调整窗体大小:
Option Compare Database
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Sub Form_Open(Cancel As Integer)
Dim x As Long, y As Long, a As Long, b As Long
x = GetSystemMetrics(SM_CXSCREEN)
y = GetSystemMetrics(SM_CYSCREEN)
a = 10000 / 800 * x
b = 7000 / 600 * y
DoCmd.MoveSize 1134, 1134, a, b
End Sub
获得系统的屏幕区域大小
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Sub Command0_Click()
Dim x As Long, y As Long
x = GetSystemMetrics(SM_CXSCREEN)
y = GetSystemMetrics(SM_CYSCREEN)
MsgBox x & " " & y
End Sub

上一节  下一节



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助