Office中国论坛/Access中国论坛

标题: ACCESS查询的SQL语句转换 [打印本页]

作者: ty_1029    时间: 2009-2-6 13:03
标题: ACCESS查询的SQL语句转换
我本来的想法是通过查询设计完后,显示成SQL语句,然后放到窗体的确定事件中去,利用LISTVIEW来显示查询结果,其他的内容都不存在问题

现在的问题是将生成的SQL语句直接放到代码中去,执行显示缺少参数,我看了一下,好象是窗体的文本控件等值在代码中不能引用过来,显示缺少参数.

比方说,就是希望将下面转换为能在窗体命令按纽使用的:
SELECT tb藏书情况.书籍编号, tb藏书情况.书名, tb规则.类别, tb藏书情况.作者, tb出版社名单.出版社, tb藏书情况.单价, tb藏书情况.进书日期
FROM (tb藏书情况 INNER JOIN tb出版社名单 ON tb藏书情况.出版社ID = tb出版社名单.出版社ID) INNER JOIN tb规则 ON tb藏书情况.类别ID = tb规则.类别ID
WHERE (((tb藏书情况.书名) Like IIf(IsNull([Forms]![存书查询窗体]![书名]),'*','*' & [Forms]![存书查询窗体]![书名] & '*')) AND ((tb规则.类别) Like IIf(IsNull([Forms]![存书查询窗体]![类别]),'*',[Forms]![存书查询窗体]![类别])) AND ((tb藏书情况.作者) Like IIf(IsNull([Forms]![存书查询窗体]![作者]),'*','*' & [Forms]![存书查询窗体]![作者] & '*')) AND ((tb出版社名单.出版社) Like IIf(IsNull([Forms]![存书查询窗体]![出版社]),'*',[Forms]![存书查询窗体]![出版社])) AND ((tb藏书情况.单价) Between IIf(IsNull([Forms]![存书查询窗体]![单价开始]),0,[Forms]![存书查询窗体]![单价开始]) And IIf(IsNull([Forms]![存书查询窗体]![单价截止]),5000,[Forms]![存书查询窗体]![单价截止])) AND ((tb藏书情况.进书日期) Between (IIf(IsNull([Forms]![存书查询窗体]![进书日期开始]),#1/1/2000#,[Forms]![存书查询窗体]![进书日期开始])) And (IIf(IsNull([Forms]![存书查询窗体]![进书日期截止]),#12/31/2099#,[Forms]![存书查询窗体]![进书日期截止]))));

窗体下代码大概是:
DIM sql as string,
.....
sql="select * from tablie1"
.....
.....
现在就想把上面的代码转化成能替换select * from tablie1部分的代码,

另外,这里,换行是不是应该是& _ 方式吧,而不是 _ 换行吧~~~

我把网上的这个事列也放上来,麻烦大家了"
[attach]34860[/attach]
作者: ty_1029    时间: 2009-2-6 13:04
拜托大家帮兄弟这个忙啊~~~~
作者: koutx    时间: 2009-2-6 13:11
本帖最后由 koutx 于 2009-2-6 13:22 编辑

一、换行方法:
sql="select * from " & _
"tablie1"
二、替换方法可照如下规则细心修改一下试试:
sql="SELECT tb藏书情况.书籍编号, tb藏书情况.书名, tb规则.类别, tb藏书情况.作者, tb出版社名单.出版社, " & _
"tb藏书情况.单价, " & _tb藏书情况.进书日期 " & _
FROM (tb藏书情况 INNER JOIN tb出版社名单 ON tb藏书情况.出版社ID = tb出版社名单.出版社ID) INNER " & _
"JOIN tb规则 ON tb藏书情况.类别ID = tb规则.类别ID " & _
"WHERE tb藏书情况.书名 Like " & IIf(IsNull [Forms]![存书查询窗体]![书名],"*","*" & [Forms]![存书查询窗体]![书名] & "*")
作者: ty_1029    时间: 2009-2-6 13:24
好的,非常感谢,下午上班就开始折腾~~~
作者: changweiren    时间: 2009-2-7 02:36
借光学习得益了,谢谢.




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3