技術(shù) 點
- 技術(shù)
- 點
- V幣
- 點
- 積分
- 71645
|
7#
發(fā)表于 2012-9-17 10:40:04
|
只看該作者
#臨時表不是普通表,一般來說只在存儲過程中產(chǎn)生和使用
如果你在報表中使用,傳遞窗體上的文本框中的值你要這樣用:
首先,你要設(shè)計一個存儲過程,為了簡單起見,這里假設(shè)你的窗體上文本框都是文本值,分別對應臨時表的a,b,c字段- CREATE PROCEDURE [dbo].[sp_FromFORM] (
- @a nvarchar(50),
- @b nvarchar(50),
- @c nvarchar(50)
- ) AS
- BEGIN
- SET NOCOUNT ON
- /* 創(chuàng)建臨時表 */
- CREATE TABLE #TempTable (
- [fldA] nvarchar(50),
- [fldB] nvarchar(50),
- [fldC] nvarchar(50)
- )
- /* 向臨時表中插入值 */
- INSERT #TempTable (
- [fldA],
- [fldB],
- [fldC]
- )
- VALUES (
- @a,
- @b,
- @c
- )
- /* 返回臨時表中的記錄集 */
- SELECT [fldA], [fldB], [fldC] FROM #TempTable
- /* 臨時表 #TempTable 會在存儲過程運行結(jié)束時自動刪除,*/
- /* 不用明確使用 DELETE 刪除 */
- END
復制代碼 再設(shè)計窗體, 窗體上放置三個文本框,分別命名為 txtA, txtB, txtC, 最后放置一個打印按鈕。如圖:
將窗體命名為 frmRpt
在打印按鈕事件處理中寫入如下代碼:- Private Sub cmdPrint_Click()
- DoCmd.OpenReport "rptFromFORM", acViewPreview
- End Sub
復制代碼 保存窗體。
然后,我們設(shè)計報表,如圖
設(shè)置報表的屬性
記錄源: sp_FromFORM
數(shù)據(jù)源標識符為: dbo
輸入?yún)?shù)為: @a nvarchar(50)=Forms!frmRpt!txtA, @b nvarchar(50)=Forms!frmRpt!txtB, @c nvarchar(50)=Forms!frmRpt!txtC
如圖:
在主體上放置三個文本框,分別將其【控件來源】屬性設(shè)置為fldA, fldB, fldC
最后,將報表命名為 rptFromFORM, 保存
打開窗體,輸入數(shù)據(jù),點擊按鈕,得如下效果:
附上源碼:
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?注冊
x
|