Access交流网
电 话:0760-88315075
热 线:0760-88315075
邮 编:528463
咨询QQ:1918333016
营销QQ:4008553990
Email:1918333016@qq.com
![]() | 主题:Access动画式关闭窗体-高手之路 听课人数:160人 |
![]() | 主讲:王宇虹 演讲时间:2015-07-29 15:30 至 2015-07-29 16:30 |
![]() | 讲课内容简介: Access培训报名:http://www.office-cn.net/thread-118946-1-1.html |
Access动画式关闭窗体,窗体可以从各个方向逐步消失,形成动画效果,是窗体更炫 更酷 更专业。从上,从下,从左,从右关闭窗体,也能以移动的方式关闭窗体。从中我们可以学习到VBA代码的应用的精妙之处 | |
培训优势:使用新版Access2013+思维导图模式+Access源码剖析+在线课堂+PPT课件培训 | |
培训目标:让你 听得懂 学得会 记得住 用得上 要求:有一定的Access 或 VBA的基础 |
Access动画式关闭窗体 |
打开窗体
关闭窗体
移动窗体
实现随机取数
美化窗体
可以让界面更炫 更酷 更专业
随机数
抽奖
随机取数
API
去实现一些高难度的系统相关的功能
动画式关闭窗体 Office中国-王宇虹 连续10年微软最有价值专家
1 应用场景
1.1 可以让界面更炫 更酷 更专业
1.2 随机数
1.2.1 抽奖
1.2.2 随机取数
1.3 API
1.3.1 去实现一些高难度的系统相关的功能
2 相关知识点
2.1 随机数
2.1.1 Randomize
Randomize 语句初始化随机数生成器。
语法
Randomize [number]
可选的 number 参数是 Variant 或任何有效的数值表达式。
说明
Randomize 用 number 将 Rnd 函数的随机数生成器初始化,该随机数生成器给 number 一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。
如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的种子值。
注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的
2.1.2 RND函数
RND函数的用法如下。
格式:Rnd(<数值表达式)
功能:求(0,1)之间的一个随机数 语法: Rnd[(number)]
如果 number 的值是 Randomize 生成
小于 0 ,每次都使用 number 作为随机数种子得到的相同结果。
大于 0 ,以上一个随机数为种子产生下一个随机数。
等于 0 ,产生与最近生成的随机数相同的随机数。
省略, 以上一个随机数为种子产生下一个随机数。
说明 Rnd 函数返回小于 1 但大于或等于 0 的值。
number 的值决定了 Rnd 生成随机数的方式。
对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的前一个数作为下一个数的种子。
在调用 Rnd 之前,先使用无参数的Randomize
语句初始化随机数生成器(若带参数,则产生由参数对应的一个特定序列的随机数),该生成器具有根据系统计时器得到的种子。
为了生成某个范围内的随机整数,可使用以下公式:
Int(最大值 -最小值+ 1) * Rnd + 最小值)
这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。
注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。
2、Int((upperbound - lowerbound + 1) * Rnd + lowerbound)编辑本段Rnd 函数示例
本示例使用 Rnd 函数随机生成一个 1 到 6 的随机整数。
DimMyValue MyValue = Int((6 * Rnd) + 1) ' 生成 1 到 6 之间的随机数值 ,这里的int 是把后面产生的小数转换成整数
2.1.2.1 Int((100 - 1 + 1) * Rnd +1)
2.2 API
2.2.1 MoveWindow
2.2.1.1 docmd.MoveSize
2.2.1.2 所需参数
2.2.1.2.1 'hWnd是窗口的句柄? 'X是窗口在X轴的位置? 'Y是窗口在Y辆的位置? 'nWidth是窗口的宽度? 'nHeight是窗口的高度? 'bRepaint是设置是否重画窗口和父窗口
2.2.2 GetWindowRect
2.2.2.1 该函数返回指定窗口的边框矩形的尺寸
2.2.2.2 所需参数
2.2.2.2.1 'hWnd:窗口句柄。 'lpRect:指向一个RECT结构的指针,该结构接收窗口的左上角和右下角的屏幕坐标。
2.2.2.3 返回值
2.2.2.3.1 返回值为非零:如果函数失败,返回值为零
3 代码剖析
3.1 窗体打开事件
3.1.1 Randomize Timer()
3.1.1.1 初始化随机数生成器
3.1.2 从5种样式中选择一种样式
3.1.2.1 从1-5选择
3.1.2.1.1 Int((5 - 1 + 1) * Rnd +1)
3.2 窗体关闭事件
3.2.1 Form_Close
3.2.1.1 判断用户选择哪种风格
3.2.1.1.1 lngOpt = Me.optWipeType.Value
3.2.1.2 调用动画关闭窗体的通用函数
3.2.1.2.1 WipeEffect
3.2.1.2.1.1 通过API函数GetWindowRect获取当前窗体的尺寸 lngRet = GetWindowRect(frm.hwnd, r) lngFormWidth = r.right - r.left lngFormHeight = r.bottom - r.top
3.2.1.2.1.2 计算出每次宽度或高度变化大小
'步长 50步 lngIncrementW = lngFormWidth \ lngIncrement '1000/50 lngIncrementH = lngFormHeight \ lngIncrement
3.2.1.2.1.3 向上擦除效果
For lngX = 1 To lngIncrement lngRet = MoveWindow(frm.hwnd, r.left, r.top, _ lngFormWidth, lngFormHeight - lngX * lngIncrementH, 1) Next lngX
3.2.1.2.2 WipeEffect(Me, lngOpt, lngIncrement)
1. 直接超值购买:
包含:Access示例完整源码+实现思路与代码讲解高清视频+Access培训课件 绝对低价超值
2. 购买前咨询:
在线咨询QQ:1918333016
企业热线QQ:4008553990 (使用QQ搜索: 搜索服务)