Access ADP查詢的where語句中引用窗體中控件的值

2002-04-18 03:26:00
版主們-Office交流網
原創
3129
如何在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]
鎖定窗體數據不被修改的幾種方法
分享