Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

求助:窗体和数据表子窗体的事件问题

钱钱雨  发表于:2007-10-23 14:51:35  
复制

只好重新发一遍,狂汗啊。

 

环境是这样的:

我从窗体A的按钮打开窗体B,同时传入窗体A的一个字段值,在openargs位置传入。

窗体B含有一个数据表视图子窗体C,在窗体B的formload事件,筛选窗体C的记录。

me.窗体C.recordsource = "………… where 字段 = "  & me.openargs

窗体C的字段getfocus有事件,执行dlookup取相关的记录。

 

出错:

点击窗体A上的按钮,提示”运行时错误94,无效引用null“。窗体C内记录未筛选。(光标停在窗体C的字段的getfocus事件内的dlookup语句,因为记录未筛选,所以查不到记录,为null) 

 

于是我在打开窗体B的click事件,和窗体B的formload事件,加了msgbox语句(看我传的openargs是否都传过去了)。

结果仍然和支前一样,不弹出msgbox。

 

我就不明白了,为什么不弹出msgbox,就先做数据表视图的字段getfocus事件并报错。

不弹出msgbox,我该如何去找错误呢。

 

语法是没有问题的,因为我其他窗体也调用这个B窗体且方法一样,正常。

 

请高手指点。我是无奈死了。

 

Top
竹笛 发表于:2007-10-23 15:11:05

'假定窗体A的名称为frmA,窗体A中有文本框txtA(txtA就是楼上说的参数)

'假定窗体B的名称为frmB

'则:

'如果参数是文本型:

me.窗体C.recordsource = "………… where 字段 = '" & forms!frmA!txtA &"'"

'如果参数是数字型:

me.窗体C.recordsource = "………… where 字段 = " & forms!frmA!txtA

 

'上方的前提是frmA必须处于打开状态,如果frmA处理关闭状态,则只需要在模块中设置一个全局变量即可。

 



钱钱雨 发表于:2007-10-23 15:22:22

我这么做了,还是一样的,没有用



钱钱雨 发表于:2007-10-23 15:37:28

我把窗体C的记录源设定语句从窗体B的formload事件搬到窗体C的formload事件里就不出错了。

 

发现msgbox,是窗体C 的formload先弹出,窗体B的formload后弹出,这是为什么?

 

谢谢笛子在这么繁忙的时候还回复我。



竹笛 发表于:2007-10-23 16:32:47
请提供你的示例发到我的邮箱,或与我QQ联系,这样有助于你问题的解决.

钱钱雨 发表于:2007-10-24 15:55:54

程序问题已经解决了啦,我只是多嘴问一下机制问题而已。



小龙女 发表于:2007-10-24 16:19:40

解决了就给点分给我吧,谢谢!



总记录:6篇  页次:1/1 9 1 :