设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[与其它组件] Select语句中 为什么 top 的值不能用参数 ?

[复制链接]
跳转到指定楼层
1#
发表于 2006-6-18 17:50:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PARAMETERS 组 Long, items_lng Short;
SELECT TOP [items_lng] 交易基本数据.物理单号ID, 交易基本数据.组号ID, 交易基本数据.序列号ID, 交易基本数据.人员号ID, 交易基本数据.加盟店编号ID, 交易基本数据.获赠次数, 交易基本数据.推荐人增援物理单号ID, 交易基本数据.是否结算, 交易基本数据.自定义次数
FROM 交易基本数据
WHERE (((交易基本数据.组号ID)=[组]) AND ((交易基本数据.是否结算)=False))
ORDER BY 交易基本数据.序列号ID;

top 值 一使用参数就 报错 ! 其它用参数都没有问题.

感谢!

[em06]

[此贴子已经被作者于2006-6-18 9:55:50编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-6-18 18:39:00 | 只看该作者
SQL语句中包括top在内的一些关键字是不能用变量的。如表名。
3#
发表于 2006-6-18 19:22:00 | 只看该作者
可以在窗体中实现

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
 楼主| 发表于 2006-6-19 14:33:00 | 只看该作者
Private Sub Command0_Click()
Dim Sql As String
Dim AQueryDef As QueryDef
Dim Message, Title, Default, MyValue
Title = "请输入Top Number"    ' 设置标题。
Default = 20      ' 设置缺省值。
MyValue = InputBox(Message, Title, Default)
CurrentDb.QueryDefs.Refresh
Set AQueryDef = CurrentDb.QueryDefs("查询1")
AQueryDef.Sql = "SELECT TOP " & MyValue & " *  FROM 教师"
If (Err) Then
   Exit Sub
End If
AQueryDef.Close
CurrentDb.QueryDefs.Refresh
DoCmd.OpenQuery "查询1"
End Sub

这是用 DAO 的方式,需要查询中必需含有“查询1”的查询,如果ADO来编写,可以直接VBA 书写 sql 语句。这样不是不需要在查询中创建“查询1”了吗?这两种方式那个更好呢?

如果查询中有多个参数,如何用 ADO 来实现参数的传递?需要数组吗?

再次感谢!
5#
发表于 2006-6-19 19:46:00 | 只看该作者
ADO并不提供直接建立查询,这方面还是通过DAO或ADOX 实现 比较好

6#
 楼主| 发表于 2006-6-19 21:05:00 | 只看该作者
那么 ADO 是否可以调用 带 参数 的查询呢?

再次感谢!
7#
发表于 2006-6-19 21:44:00 | 只看该作者
在ADO上加上参数可以,反过来可能得不能你想要的效果,

把你的例子传上来看看



8#
发表于 2013-6-29 00:45:01 | 只看该作者
内行看门道!外行看热闹
学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-28 10:32 , Processed in 0.093664 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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