|
#临时表不是普通表,一般来说只在存储过程中产生和使用
如果你在报表中使用,传递窗体上的文本框中的值你要这样用:
首先,你要设计一个存储过程,为了简单起见,这里假设你的窗体上文本框都是文本值,分别对应临时表的a,b,c字段- CREATE PROCEDURE [dbo].[sp_FromFORM] (
- @a nvarchar(50),
- @b nvarchar(50),
- @c nvarchar(50)
- ) AS
- BEGIN
- SET NOCOUNT ON
- /* 创建临时表 */
- 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 会在存储过程运行结束时自动删除,*/
- /* 不用明确使用 DELETE 删除 */
- END
复制代码 再设计窗体, 窗体上放置三个文本框,分别命名为 txtA, txtB, txtC, 最后放置一个打印按钮。如图:
将窗体命名为 frmRpt
在打印按钮事件处理中写入如下代码:- Private Sub cmdPrint_Click()
- DoCmd.OpenReport "rptFromFORM", acViewPreview
- End Sub
复制代码 保存窗体。
然后,我们设计报表,如图
设置报表的属性
记录源: sp_FromFORM
数据源标识符为: dbo
输入参数为: @a nvarchar(50)=Forms!frmRpt!txtA, @b nvarchar(50)=Forms!frmRpt!txtB, @c nvarchar(50)=Forms!frmRpt!txtC
如图:
在主体上放置三个文本框,分别将其【控件来源】属性设置为fldA, fldB, fldC
最后,将报表命名为 rptFromFORM, 保存
打开窗体,输入数据,点击按钮,得如下效果:
附上源码:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|