设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主:
打印 上一主题 下一主题

[窗体] 很烦的数据输入问题,如何避免控件值为空

[复制链接]
11#
发表于 2012-1-11 12:36:06 | 只看该作者
版主Henry D. Sy 的代码对呀,我试了,完全正确
12#
发表于 2012-1-12 04:55:42 | 只看该作者
本帖最后由 JosephTan 于 2012-1-12 11:08 编辑

应该在控件的退出事件加上消息框和setfocus方法的语句
并且要先把另外一个控件setfocus再把focus set回你想要的那个控件。
详细见我修改的你的第一个控件“工厂”的退出事件。

本帖子中包含更多资源

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

x
13#
发表于 2012-1-12 06:14:51 | 只看该作者
kingkang说的对,还有一个退出事件可以用。

本帖子中包含更多资源

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

x
14#
 楼主| 发表于 2012-1-12 13:03:07 | 只看该作者
谢谢楼上的几位朋友帮忙,我想问问,
Private Sub cbogongchang_Exit(Cancel As Integer)
         If Me.cbogongchang.Text = "" Then
                 MsgBox "工厂不可为空"
                 Me.txtriqif.SetFocus '加上这个
                 Me.cbogongchang.SetFocus
       End If
End Sub

如果Me.txtriqif也不准为空,或者说窗体中所有控件都不准为空,那这个焦点不就乱了呗~~~~
15#
发表于 2012-1-12 14:21:49 | 只看该作者
还有一个办法,在你点击保存按钮时再检查数据是否录入正确(录入的时候并不检查),正确的话就执行保存代码,否则,提示后将光标移到相应的控件,因为这时你点击了保存按钮,光标已经离开了相应的控件,再将光标移回去是没有问题的。这个方法是没有问题的。


另,一般讲,窗体上总有一个控件得到焦点后不引发事件的。
16#
发表于 2012-1-12 17:16:20 | 只看该作者
不必如此折腾,只需在表设计视图中将相关字段的“必填字段”属性设置为“是”即可。
17#
 楼主| 发表于 2012-1-12 18:52:26 | 只看该作者
todaynew 发表于 2012-1-12 17:16
不必如此折腾,只需在表设计视图中将相关字段的“必填字段”属性设置为“是”即可。

老汉我觉得你说得不完全正确,即使表设计中字段的必填字段为是,也解决不了控件为空时焦点落在当前控件的问题。

要实现该效果,前提还是要有代码DoCmd.RunCommand acCmdSaveRecord。
18#
 楼主| 发表于 2012-1-12 18:56:36 | 只看该作者
kangking 发表于 2012-1-12 14:21
还有一个办法,在你点击保存按钮时再检查数据是否录入正确(录入的时候并不检查),正确的话就执行保存代码 ...

我就是采用你所说的采用保存按钮的方法来实现了该效果。经过折腾,我好像找到一个原因,就是如果记录没有保存,那么焦点就不会落在当前控件上。即使是采用保存按钮的方式,如果没有DoCmd.RunCommand acCmdSaveRecord这段代码,好像也是实现不了我们想要的效果。而且我还发现,如果没有DoCmd.RunCommand acCmdSaveRecord代码,me.控件.undo也是无效的。

不知我说的对不对。

19#
 楼主| 发表于 2012-1-12 21:26:27 | 只看该作者
我又发现一个问题,本来我是点击保存按钮后就关闭窗体退出,其代码如下:

Private Sub cmdnext_Click()
   
    If IsNull(Me.cbogongchang) Then
        MsgBox "工厂不能为空,请重新输入"
        Me.cbogongchang.SetFocus
        Exit Sub
    End If

    …………

    DoCmd.RunCommand acCmdSaveRecord
      
End Sub

由于我要求窗体中的控件大部分不允许为空,然后我又使用了代码DoCmd.RunCommand acCmdSaveRecord,当我打开这个输入窗体,什么也不输入就关闭退出(比如不小心点错了按钮),结果无法退出,要求必须把为空的控件都输入值才行。

这怎么办呢,该如何处理呢。
20#
发表于 2012-1-12 22:24:08 | 只看该作者
本帖最后由 JosephTan 于 2012-1-12 22:32 编辑

哈哈,点多几下还是会退出的{:soso_e113:}
但是还是有办法,就是你的on load的时候就把焦点设在按钮上。就不会引发那个exit事件了。除非你一再多手又去点其它控件。{:soso_e113:}

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-2-25 20:41 , Processed in 0.109007 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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