Office中国论坛/Access中国论坛

标题: 关于存储过程与ACCESS组合框的问题 [打印本页]

作者: fengtao666    时间: 2006-8-6 02:55
标题: 关于存储过程与ACCESS组合框的问题
各位大虾好,我才刚刚学习ADP,现在在下遇到一些问题,特向各位请教。

我在SQL SEVER中建立了一个存储过程:

CREATE PROCEDURE dbo.存储过程1
@fengtao nvarchar(20),@zhaoying nvarchar(20)
AS SELECT DISTINCT  单位
FROM dbo.[6月] where 单号 LIKE ISNULL(@fengtao,'%')
and 转运网络 like isnull(@zhaoying,'%')
GO

我做这个存储过程的主要目的就像想让三个组合框中的行内容根据不同的值进行,行记录源的筛选:



<IMG>

例如我有这样一条记录:combo0:麦克维尔 combo3:武汉嘉泰 combo2:444930

我在ADP中的查询项中直接双击存储过程然后在参数上直接入值或者不如都可以得到我想要的记录,可是到了窗体控件上

我直接调用存储过程却跟直接双击存储过程得到的效果不一样。

调用存储过程的代码:Set Me.Combo0.Recordset = CurrentProject.Connection.Execute("dbo.存储过程1('" & Combo2 & "','" & Combo3 & "')")

我是在COMBO2的更新事件中写入这段代码的。

出来的效果就是当组合框combo2和combo3同时有值的时候,combo0的组合框的行记录源就会筛选到相应的值,可是如果其中一个组合框为空或者都为空的时候就筛选不出来结果,似乎MDB中的空值与SQL SERVER中的空值不同,可是又不知道该如何做才能到达我想要的效果,请高人指点。

还有就是如果把代码写成:Set Me.Combo0.Recordset = CurrentProject.Connection.Execute("dbo.存储过程1(" & Combo2 & "," & Combo3 & ")")这样,在COMBO2和COMBO3中录入NULL他又认,可是如果一个组合框录NULL,一个组合框录正常值他又报错,请高手指教一下。

这是我的数据结构:



<IMG>
作者: wuaza    时间: 2006-8-7 20:25
估计是把空值当空字符串处理了。这样试试。
CREATE PROCEDURE dbo.存储过程1
@fengtao nvarchar(20),@zhaoying nvarchar(20)
AS SELECT DISTINCT  单位
FROM dbo.[6月] where 单号 LIKE ISNULL(@fengtao+'%','%')
and 转运网络 like isnull(@zhaoying+'%','%')
GO




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