首页 > 数据库

在VBA中模拟更改ACCESS子窗体的字段值

时间:2009-04-23 12:54:26  作者:xixi  我要投稿
Linux初探欢迎您的投稿,投放方法请点击这里查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
版权声明:可以任意转载,转载时请务必以超链接形式标明如下文章原始出处和作者信息及本声明作者:xixi出处:http://blog.csdn.net/slowgrace/archive/2009/04/21/40......

版权声明:可以任意转载,转载时请务必以超链接形式标明如下文章原始出处和作者信息及本声明

作者:xixi

出处:http://blog.csdn.net/slowgrace/archive/2009/04/21/4098649.aspx

唉,折腾了好几个小时,终于折腾出来了。出来的时候高兴了一下下。现在好像又没啥感觉了。闲话少说,赶紧记下来。

话说我要测试改字段值后的一系列变化,所以我想让程序模拟自动随机地改一个子窗体里的字段值,好激发这个字段对应的控件的dirty和beforeUpdate事件。代码如下:

说明如下:

(1)关键是用sendkeys函数模拟键盘消息

(2)sendkeys函数只能向当前有焦点的窗口发送键盘消息,所以要先把子窗体的控件设为有焦点,这样当前活动窗口获得键盘输入后才能把字母输入到合适的位置

(3)输入新的数值即会激发dirty事件,而beforeupdate事件的激发则要用shift tab键来使焦点移动后激发。

(4)我本来是直接写了另外一个控件.setfocus来移动焦点,但是发现这个消息貌似比之前的sendkeys走得快,导致新输入的字符串录入到另外一个控件里了。严重怀疑鼠标和键盘不走同一个队列。

(5)还试着用过API函数sendmessage发WM_SETTEXT消息。未果。因为ACCESS窗体的文本框控件貌似不是标准的带Hwnd的控件,用SPY 都查不到句柄。看一网友用enumchildwindow试着找类似的delphi窗体的控件句柄失败告终,我也就放弃了。

如果您需转载 在VBA中模拟更改ACCESS子窗体的字段值,请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目热门