标题: Select语句中 为什么 top 的值不能用参数 ? [打印本页] 作者: 红过刘德华 时间: 2006-6-18 17:50 标题: Select语句中 为什么 top 的值不能用参数 ? 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编辑过]
作者: wuaza 时间: 2006-6-18 18:39
SQL语句中包括top在内的一些关键字是不能用变量的。如表名。作者: andymark 时间: 2006-6-18 19:22
可以在窗体中实现[attach]18571[/attach] 作者: 红过刘德华 时间: 2006-6-19 14:33
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”了吗?这两种方式那个更好呢?