Access ADP查询的where语句中引用窗体中控件的值

2002-04-18 03:26:00
版主们-Office交流网
原创
2422
如何在ADP查询的where语句中引用窗体中控件的值?
如果要使用全局变量,应如何使用?好像查询中不支持此方法?

tmtony
1.你在运行此查询时引用的窗体要打开
2.字符型字段:字段='" & 窗体.控件 & "'"
3.数字型字段:字段=" & 窗体.控件 


yuab
在ADP的查询中不能直接象mdb中一样引用窗体控件,但是有两种方法可做到。
一种是象tony那样直接在VBA中写SQL语句可用ADO,或用docmd.runsql也行。
另一种是运用存储过程来写,然后在VBA中存取有参数的存储过程,这种方法应该在大量数据的情况下比前一种速度快。

zhuyiwen
赞成 yuab 版主的说法, 只是用存储过程, 代码稍有些复杂, 但执行效率高得多, 全在服务器端执行已编译了的存储过程.

yuab
怎么做啊,我只简单写一个存储过程程序好吗。如果不明白用QQ联系我。
CREATE PROCEDURE pro_stk_单据_N 
@登入仓库 varchar(2)
AS
SELECT 单据索引, 录入仓库,发货仓库, 收货仓库, 单据号码, 交易日期, 交易编号, 订单编号, 仓管员, 领货人, 交易类型, 是否批核, 票据类型
FROM dbo.[tbl_stk_单据]
WHERE (是否批核 = 0) and  录入仓库 like '%'+ @登入仓库 + '%'

GO
注解:@登入仓库是一个参数,参照到登入窗体的值, 登入窗体记录全公司的仓库,当以不同的身份登入时,这个参数就以将该仓库的资料筛选出来,%符号相当于mdb中的*号。

tmtony
不错,不过我习惯使用英名命名,以便在SQL SERVER7各个环境下可重用, 好象SQL SERVER2000应该没有这个问题了

zhuyiwen
这是一个例子:(combox)
Access示例代码: 文件下载

tmtony
十分不错!! 你的动态IP在这些地方能让很多人受益哦

(ADP-相关文章技巧链接):
ADP中如何用代码设置窗体或报表的各个参数
Access键盘快捷键大全[上]
ACCESS与SQLSERVER系列之一 免费Access培训公开课[3]
锁定窗体数据不被修改的几种方法
分享