设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2357|回复: 7
打印 上一主题 下一主题

[窗体] ADP存储过程中如何引用某窗体中某控件值

[复制链接]
跳转到指定楼层
1#
发表于 2003-11-5 23:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[B]ADP存储过程记录筛选条件表达式中如何引用某窗体中某控件的值?[/B][em07][em07]

评分

参与人数 1经验 +2 收起 理由
tzjj + 2

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-11-7 16:29:00 | 只看该作者
密切关注,我也存在同样的问题,请各位高手不吝指教!
3#
发表于 2003-11-7 19:51:00 | 只看该作者
既然有不止一个人关注,那就说一说。
要解决一个概念问题。在ADP里面,整个查询的东西都往服务器那儿送。所以,如果一个查询的sql语句是 select * from table1 where column1 = [窗体]![控件].value 这种类型时,ADP送过去的是:

"select * from table1 where column1 = [窗体]![控件].value"

这么一串东西。你一看就知道,sql服务器如何明白"[窗体]![控件].value"是什么?它只能把这些字符当成要查询的内容。所以,结果要么不正确,更多的时候是出错。

sql服务器实际需要的是这样的东西 (假定 [窗体]![控件].value 的内容是 "testtest")
"select * from table1 where column1='testtest'"

可以用一个简单的方法来完成这些任务,代码是少不了的,不过ADP编程,就是要敢于写大量的代码,这是硬道理。不接受这个现实,就不会成功。

你可以先在一个查询设计器里面做你的查询设计,然后在查询设计的工具栏上选择SQL,现在,你可以在查询设计器的最下面看到sql语句。将它拷贝下来,然后编写代码。

例如,你要执行上面说的一个查询:
Dim rs As New ADODB.recordset
set rs = currentproject.connection.execute("SELECT * FROM table1 WHERE " _
           & " column1 = '" & [窗体]![控件].value & "'"
这样就把[窗体]![控件].value的实际值组合到sql语句当中了。
自己慢慢体会吧。



[此贴子已经被作者于2003-11-7 11:52:17编辑过]

4#
发表于 2003-11-7 22:22:00 | 只看该作者
你这应当是在客户端写的查询代码吧,并不是服务器端存贮过程呀.如果是远程用户的话,这样查询的速度会不会有所减慢呢?
5#
发表于 2003-11-8 21:21:00 | 只看该作者
以下是引用majian77在2003-11-7 14:22:17的发言:
你这应当是在客户端写的查询代码吧,并不是服务器端存贮过程呀.如果是远程用户的话,这样查询的速度会不会有所减慢呢?


存储过程道理是一样的。参数的传递也是这么替换进行 [em03]


[此贴子已经被作者于2003-11-8 13:24:01编辑过]

6#
发表于 2003-11-9 04:06:00 | 只看该作者
那就写存储过程不就得了?传个参数过去而已,没什么大不了啊?
7#
发表于 2007-5-15 06:18:00 | 只看该作者
请问cg1,写存储过程,参数怎么传过去呀?另外在rs记录集赋值后,怎么象查询一样显示出来呀?
8#
发表于 2007-5-17 06:16:00 | 只看该作者
怎么传递参数呢?

[此贴子已经被作者于2007-5-23 9:43:11编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 18:08 , Processed in 0.113152 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表