设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2053|回复: 3
打印 上一主题 下一主题

[模块/函数] 求助,计时运行查询

[复制链接]
跳转到指定楼层
1#
发表于 2016-11-20 16:29:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在论坛里收到一个计时关闭Msgbox的例子,请高手帮我改改。我希望,1、将函数变为模块形式,可以任意设置计时时间,2.改为3秒后运行123查询,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2016-11-21 01:26:49 | 只看该作者
其实这个API真的没什么好封装的。。。不过既然楼主希望封装,那就随便封装下吧。
**如需改变弹出的信息,请在const部分修改相应的字符串。详细请参考附件(如果附件无法显示代码,请新建一个模块,把下面的代码贴上,再调用MsgboxTimeOut函数)
  1. Private Declare Function MessageBoxTimeout Lib "user32" Alias "MessageBoxTimeoutA" (ByVal hwnd As Long, _
  2.                                                                                     ByVal lpText As String, _
  3.                                                                                     ByVal lpCaption As String, _
  4.                                                                                     ByVal wType As Long, _
  5.                                                                                     ByVal wlange As Long, _
  6.                                                                                     ByVal dwTimeout As Long) As Long
  7. Const strMessage As String = "按确定后3秒将运行追加查询123"
  8. Const strTitle As String = "测试窗体"

  9. Public Function MsgboxTimeOut(ByVal lngHwnd As Long, ByVal dwTimeout As Long)
  10.     Dim lngMsg As Long
  11.    
  12.     If MessageBoxTimeout(lngHwnd, strMessage, strtile, vbInformation + vbYesNo, 0, dwTimeout) = 6 Then
  13.         DoCmd.SetWarnings False
  14.         DoCmd.OpenQuery "123查询"
  15.     End If
  16.    
  17. End Function
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
 楼主| 发表于 2016-11-21 15:34:07 | 只看该作者
roych 发表于 2016-11-21 01:26
其实这个API真的没什么好封装的。。。不过既然楼主希望封装,那就随便封装下吧。
**如需改变弹出的信息, ...

真的很谢谢大神,虽然您的代码我不太懂,但我想要的是几秒延时后直接运行查询,而不需要是按确定以后才能运行123查询。
4#
发表于 2016-11-21 16:55:57 | 只看该作者
123shusheng 发表于 2016-11-21 15:34
真的很谢谢大神,虽然您的代码我不太懂,但我想要的是几秒延时后直接运行查询,而不需要是按确定以后才能 ...

改下原句就好了。把vbyesno去掉和=6(vbyes)去掉就不会出现确认信息了。大体如下:
  1. Private Declare Function MessageBoxTimeout Lib "user32" Alias "MessageBoxTimeoutA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long,ByVal wlange As Long, ByVal dwTimeout As Long) As Long
  2. Const strMessage As String = "按确定后3秒将运行追加查询123"
  3. Const strTitle As String = "测试窗体"
  4. Public Function MsgboxTimeOut(ByVal lngHwnd As Long, ByVal dwTimeout As Long)    Dim lngMsg As Long   
  5.    If MessageBoxTimeout(lngHwnd, strMessage, strtile, vbInformation , 0, dwTimeout)  Then
  6.         DoCmd.SetWarnings False
  7.         DoCmd.OpenQuery "123查询"
  8.     End If
  9. End Function
复制代码




您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-10 09:37 , Processed in 0.087436 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表