Office中国论坛/Access中国论坛

标题: [求助]当光标从access外的程序转入尚未生成记录的表单子窗体时发生错误 [打印本页]

作者: min_summer    时间: 2007-5-28 23:58
标题: [求助]当光标从access外的程序转入尚未生成记录的表单子窗体时发生错误
假如: 我有一个窗体, 含有一个子窗体, 主窗体某一字段A为必填且不能为空, 打开这个窗体的时候为新增状态, 主窗的某些字段已经按预定的要求生成了, 在我还没有输入主窗中的字段A时, 我的鼠标移动到了其他程序, 比如MSN等, 当我从MSN回到ACCESS的这个窗体时, 要是我的光标不小心进入了子窗体的范围,就会跳出一个窗口, 提示错误, 非得点几十次才会恢复正常状态,  要是广播标点在主窗体的范围内,就还是很正常,

我想问的是:  如何判断进入该窗体之前的光标是在本ACCESS档案内,还是在ACCESS以外的程序,  或者 从其他程序转入ACCESS窗口时,让光标只能在主窗体范围内?

   

[此贴子已经被作者于2007-5-28 16:27:28编辑过]


作者: Grant    时间: 2007-5-29 02:11
将子窗体的添加属性 AllowAdditions 设置为 False

更新主窗体关键字段后返回 True

试试看,希望对你有帮助.
作者: min_summer    时间: 2007-5-29 04:07
Grant 版主,我试了, 可是 还是没有用,用setfocus 也没有用,

只要从其他程序返回到ACCESS  它都会有如下的提示

为这个字段的BeforeUpdate 或ValidationRule属性设置的宏或函数将阻止Microsoft office Access在字段中保存数据。   

* 如果这是一个宏, 可打开“宏”窗口的宏且删除实施保存的操作, 例如 gotoControl

* 如果宏中包含SetValue操作, 则可将此宏设置为控件的的Afterupdate属性

* 如果这是一个函数, 请在模块窗口中重新定义该函数

然后需要点这个提示框的确定按扭几十次, 才会去掉这个窗口的提示, 好烦的, 只是一个单纯的父子窗体, 就会变成这样了

版主在帮我想想啊!




作者: andymark    时间: 2007-5-29 04:47
应该是你的代码有问题,把例子传上来
作者: min_summer    时间: 2007-5-29 05:03
andymark, 谢谢你,

你帮我看看, 但窗体1打开后,  a b 字段都输了数据后, c字段不要输记录, 然后,你打开如msn 等窗口的聊天记录, 再转回到ACCESS 的窗口, 但光标移在子窗体的范围时, 就会有那个提示了

[attach]24681[/attach]

作者: min_summer    时间: 2007-5-29 05:12
andymark 你还没有走吧?
作者: andymark    时间: 2007-5-29 05:25
把表1的C字段的必填属性改为否
作者: min_summer    时间: 2007-5-29 19:04
Andymark,我知道C字段的必填属性改为否的话, 就好了, 可是 这个C字段我就是要必填啊, 而且不能为空, 一方面因为要求要填, 另一方面当这个字段为空的时候, 退出就不会保存记录拉, 当然还可以通过退出的时候取消这笔记录也可以,



可是既然发现了会有这样的问题,我还是想知道要是我不改字段属性的话, 该怎么解决这个问题
[em04]

[此贴子已经被作者于2007-5-29 11:42:05编辑过]


作者: Grant    时间: 2007-5-29 19:46
必填属性可以在窗体中用VBA来判断

或者你还可以试试设置子窗体属性可用 Enabled  为 False

更新后改为 True

试过均可行.
作者: min_summer    时间: 2007-5-29 23:21
谢谢Grant 板主, 用enalbe 可以了! [em01]谢谢




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3