设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] ACCESS中的长语句换行

[复制链接]
跳转到指定楼层
1#
发表于 2009-5-4 14:50:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
大体意思是在窗体中使用子窗体查询.但由于数据量比较大,考虑到直接将源数据记录属于子窗体,窗体加载时速度太慢,现在想通过在执行查询时,再将子窗体的数据源数据属于子窗体.

假如是这样的,在这段代码中插入语句
Me.DBquery.Form.RecordSource ="需插入的SQL语句"
由于过长,需要分行,试了几次用_ 或&_都不行,
望高手指教,需要插入的代码如下:"
SELECT DBBackup.tnoid, DBBackup.tnam, DBBackup.gnam, DBBackup.jial, Sum(DBBackup.xqnum) AS 需求量, Sum(DBBackup.dgnum) AS 订购量, Round(Sum(DBBackup.dgnum)*100/Sum(DBBackup.xqnum),0) & '%' AS 订单满足率, DBBackup.mark1, DBBackup.mark2, DBBackup.formats, DBBackup.scale, DBBackup.ctype, DBBackup.dtype FROM DBBackup GROUP BY DBBackup.tnoid, DBBackup.tnam, DBBackup.gnam, DBBackup.jial, DBBackup.mark1, DBBackup.mark2, DBBackup.formats, DBBackup.scale, DBBackup.ctype, DBBackup.dtype HAVING (((DBBackup.tnoid) Like IIf(IsNull(Forms!自助查询!Text1),'*','*' & Forms!自助查询!Text1 & '*')) And ((DBBackup.tnam) Like IIf(IsNull(Forms!自助查询!Text2),'*','*' & Forms!自助查询!Text2 & '*')) And ((DBBackup.gnam) Like IIf(IsNull(Forms!自助查询!Text3),'*',Forms!自助查询!Text3)) And ((DBBackup.jial) Like IIf(IsNull(Forms!自助查询!Text4),'*',Forms!自助查询!Text4)) And ((Sum(DBBackup.dgnum)) Between IIf(IsNull(Forms!自助查询!Text5),0,Forms!自助查询!Text5*Sum(DBBackup.xqnum)/100) And IIf(IsNull(Forms!自助查询!Text6),5000,Forms!自助查询!Text6*Sum(DBBackup.xqnum)/100)) And ((DBBackup.mark1) Like IIf(IsNull(Forms!自助查询!Text7),'*',Forms!自助查询!Text7)) And ((DBBackup.mark2) Like IIf(IsNull(Forms!自助查询!Text8),'*',Forms!自助查询!Text8)) And ((DBBackup.formats) Like IIf(IsNull(Forms!自助查询!Text9),'*',Forms!自助查询!Text9)) And ((DBBackup.scale) Like IIf(IsNull(Forms!自助查询!Text10),'*',Forms!自助查询!Text10)) And ((DBBackup.ctype) Like IIf(IsNull(Forms!自助查询!Text11),'*',Forms!自助查询!Text11)) And ((DBBackup.dtype) Like IIf(IsNull(Forms!自助查询!Text12),'*',Forms!自助查询!Text12)));
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
8#
 楼主| 发表于 2009-5-5 08:46:40 | 只看该作者
就一个DBBackup表,完全可以删除字段前的DBBackup。
todaynew 发表于 2009-5-4 20:28


晕,老是通过设计来完成,直接复制里面的SQL语句,也忘了精简~~

惭愧啊,谢谢各位老大了~~~~~~~~~
7#
发表于 2009-5-4 21:51:53 | 只看该作者
真的是很长啊
6#
发表于 2009-5-4 20:28:03 | 只看该作者
就一个DBBackup表,完全可以删除字段前的DBBackup。
5#
发表于 2009-5-4 15:42:44 | 只看该作者
发个文件上来,你这代码太长了,直接改不好改,少个空格什么的都很难看得出来
4#
 楼主| 发表于 2009-5-4 15:28:11 | 只看该作者
呵呵,谢谢楼上的,原来问题就出在空格上,真费事啊~~

谢谢了~~~
3#
发表于 2009-5-4 15:09:24 | 只看该作者
str="SELECT DBBackup.tnoid, DBBackup.tnam, DBBackup.gnam, DBBackup.jial, " & _
       " Sum(DBBackup.xqnum) AS 需求量, Sum(DBBackup.dgnum) AS 订购量," & _
   " Round(Sum(DBBackup.dgnum)*100/Sum(DBBackup.xqnum),0) " & _
         ...................
你是这样写的吗?第一句 DBBackup.jial, "空格"& "空格"_ (不加空格会出错)
        第二句  "空格SUm.....  (这里最前面不加空格也会出错)
                下面的一样格式
多试试就知道了,反正错误的格式字会变红。
2#
发表于 2009-5-4 14:59:00 | 只看该作者
太长了,晕!可以考虑用几个变量来代替条件嘛
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-11 01:31 , Processed in 0.089366 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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