Office中国论坛/Access中国论坛

标题: ADP的怪问题? [打印本页]

作者: royi    时间: 2003-11-29 06:49
标题: ADP的怪问题?
子窗体订单录入数据源是一存储过程:
CREATE PROCEDURE 生产组.订单录入(@ClientID int)
AS SELECT 订单号, 合同号,  产品名称, 厂家ID
FROM dbo.产品订单
WHERE (厂家ID = @ClientID)
GO
参数为:forms![订单录入父窗体]![厂家ID]
父窗体:订单录入父窗体数据源为客户表(名称,厂家ID)
输入厂家ID后刷新子窗体可以出来我想要的数据,问题出在:
在子窗体订单录入做一个“按选定内容筛选"后,再在父窗体移动记录时子窗体记录不再跟着变化,若不做筛选时怎么移动都可以,不知为何,此问题困我好长时间啦,一直得不到解决,版主和各位高手救急!!!!
作者: Eiffel    时间: 2003-11-29 08:04
刷新子窗体代码中需要重新设置子窗体的关联!
作者: cg1    时间: 2003-11-30 03:51
关于ADP中筛选后出现类似问题很多人都提问过,似乎没有一个好的解决方法
作者: 阿罗    时间: 2003-11-30 20:24
一般来讲, 比较适宜的方法,是按照主窗体的要求,每次重新定义子窗体的纪录源. 例如在主窗体的current事件中,输入类似的代码, 而不是在设计时定义存储过程的参数

private sub form_current()
me.childform.form.recoresource = "生产组.订单录入 " & me.[厂家ID]
end sub

值得注意的一个技巧是, 当设计子窗体的时候, 可以用绑定数据源的方法来快速设计,完成以后甚至可以将此数据源删除. 也可以按照主窗体刚打开时希望显示的子窗体内容来定义子窗体的绑定.

当然, 关联字段是需要添上的,这样当输入新定单的时候,access就会自动做正确的插入.

当数据库中有大量数据的时候,这种方法可以极大地提高程序的响应速度.




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