设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 新手求助,也许有相关扫盲帖子但没搜到

[复制链接]
跳转到指定楼层
1#
发表于 2011-7-30 08:28:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
VBA中常出现VBOKonly,或VBOKquit这种句子是执行什么?msgbox"..."后面若加上vbOKquit代表什么?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-7-30 09:49:46 | 只看该作者
加号表示同时兼容两种功能。VBOKquit好像没见过。
例如:S
  1. Sub test()
  2. MsgBox "Haha", vbQuestion + vbYesNoCancel
  3. End Sub
复制代码
前面一个表示询问,显示为一个问号泡泡,后面则会显示为“是”、“否”、“取消”的按钮。
3#
 楼主| 发表于 2011-7-30 16:19:50 | 只看该作者
回复 roych 的帖子

谢谢,那像VBOKONLY是什么涵义您知道么?按照您的意思就是VB+一个语句就是显示这个语句所执行的事件咯?
4#
 楼主| 发表于 2011-7-30 16:25:29 | 只看该作者
回复 roych 的帖子

Private Sub com2_Click()
  If Me!密码_1 = Me!密码_2 Then
    DoCmd.RunSQL ("update 登录 " & "set 用户名='" & Me!用户名_1 & "'" & "where 用户名='" & Me!用户名_1 & "'")
    DoCmd.RunSQL ("update 登录 " & "set 密码='" & Me!密码_1 & "'" & "where 用户名='" & Me!用户名_1 & "'")
    Forms!F2.Refresh
    DoCmd.GoToControl "com1"
    com2.Enabled = False
    Me!用户名_1 = Me!用户名
    Me!密码_1 = Me!密码
    Me!密码_2 = " "
    Me!用户名_1.Enabled = False
    Me!密码_1.Visible = False
    Me!密码_2.Visible = False
    Me!User_remark.Visible = False
  Else
  '*************************Add*************************'
   
  '*************************Add*************************'
  End If
End Sub
就是这个VBA语句,要在两个ADD之间加一个语句,要求密码与确认密码不同时候弹出对话框:密码输入错误。只加MSGBOX“密码输入错误”似乎不对。。
5#
发表于 2011-7-30 22:03:50 | 只看该作者
修改密码?这是我很久以前做的一个修改密码的窗体
  1. Private Sub Cmd_Submit_Click()
  2. '设置不弹出更新查询提示对话框
  3. DoCmd.SetWarnings False
  4. '用旧密码输入不正确或者没有输入,则弹出错误提示。用Dlookup来查找比ADO要简单很多。
  5. If DLookup("pwd", "T_User", "[Login User]='" & Me.Txt_User & "'") <> Me.Txt_oldPwd Or IsNull(Me.Txt_oldPwd) Then
  6.         MsgBox "旧密码错误", vbCritical, "出错"
  7.         Me.Txt_User.SetFocus
  8. '如果新密码或确认密码没有输入
  9.     ElseIf IsNull(Me.Txt_NewPwd) Or IsNull(Me.Txt_CfmPwd) Then
  10.         MsgBox "请输入新密码", vbInformation, "出错"
  11.         Me.Txt_NewPwd.SetFocus
  12. '如果新密码和确认密码不匹配
  13.     ElseIf Me.Txt_NewPwd.Value <> Me.Txt_CfmPwd.Value Then
  14.         MsgBox "确认密码和新密码不一致", vbCritical, "出错"
  15.         Me.Txt_CfmPwd = ""
  16.         Me.Txt_NewPwd = ""
  17.         Me.Txt_NewPwd.SetFocus
  18.     Else
  19. '一切验证正确后,开始执行更新查询。
  20.         SSql = "UPDATE T_User SET T_User.Pwd = '" & Me.Txt_NewPwd.Value & "' WHERE ( T_User.[Login User] = '" & Me.Txt_User.Value & "')"
  21.         DoCmd.RunSQL (SSql)
  22. '这里就有VBOKOnly了。只弹出一个确定(OK)的提示框加上一个信息泡泡(就是蓝色叹号的那个小气球)。
  23. '这部分其实可以不写的。执行后直接关闭窗体就行了。
  24.             If MsgBox("已成功更改密码" & Chr(13) & Chr(13) & "新密码为:" & Me.Txt_NewPwd & Chr(13) & Chr(13) & "请记住新密码", vbInformation + vbOKOnly, "成功更新密码") = vbOK Then
  25.                 DoCmd.Close acForm, "frm_ChgPwd", acSaveYes
  26.             End If
  27. End If
  28. End Sub
复制代码
6#
发表于 2011-7-30 22:16:41 | 只看该作者
回复 fmlzy531 的帖子

我不知道是我没理解你的意思还是你没理解这些对话框的类型。
事件往往是靠用户的一些操作来能触发的(例如单击、双击什么的,即便加载事件也是要用户打开软件才能执行的)。
弹出对话框类型并不是事件,而是作为一种提示来跟用户进行交互的。有些重要操作(例如清空数据),我们应该提醒用户,以免误操作。
理论的东西讲得很枯燥的,你还是看看5L的代码再体会下吧。
7#
 楼主| 发表于 2011-7-30 22:48:26 | 只看该作者
回复 roych 的帖子

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

本版积分规则

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

GMT+8, 2024-9-21 03:27 , Processed in 0.103662 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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