Office中国论坛/Access中国论坛

标题: ACCESS自作聪明的行为,谁能帮我解决? [打印本页]

作者: fannky    时间: 2006-9-13 23:16
标题: ACCESS自作聪明的行为,谁能帮我解决?
SELECT 查询1.名称, 查询1.类别, 查询1.用料, Sum(查询1.毛重) AS 毛, Sum(查询1.净重) AS 净
FROM (SELECT IIf([类别]="盖板",Left([产品名称],Len([产品名称])-2)+"板",[产品名称]) AS 名称, 用料清单.类别, 用料清单.用料, 用料清单.毛重, 用料清单.净重
FROM 用料清单) AS 查询1
GROUP BY 查询1.名称, 查询1.类别, 查询1.用料;


以上是我在查询中建立的语句,但是每次保存之后Access就自作聪明的把小括号“()”更改成方括号“[ ]”,结果就会导致查询语法错误!

谁能帮我搞定这个问题?使得在别人的机子上用这个数据库也不会出错?

下面是自动更改之后的代码:

SELECT 查询1.名称, 查询1.类别, 查询1.用料, Sum(查询1.毛重) AS 毛, Sum(查询1.净重) AS 净
FROM [SELECT IIf([类别]="盖板",Left([产品名称],Len([产品名称])-2)+"板",[产品名称]) AS 名称, 用料清单.类别, 用料清单.用料, 用料清单.毛重, 用料清单.净重
FROM 用料清单]. AS 查询1
GROUP BY 查询1.名称, 查询1.类别, 查询1.用料;

[此贴子已经被作者于2006-9-14 8:38:13编辑过]


作者: fan0217    时间: 2006-9-13 23:27
把例子发上来,这样更容易解决问题
作者: andymark    时间: 2006-9-13 23:33
是有这种情况,保存时用()才能保存,保存后ACCESS会自动更改为[]. as 的形式,但执行是没问题的

如果查询语句更改了,须把[]. AS 改成()才能保存
作者: qlm    时间: 2006-9-14 04:11
没试过
作者: fannky    时间: 2006-9-14 16:33
以下是引用fan0217在2006-9-13 15:27:00的发言:
把例子发上来,这样更容易解决问题



[attach]20324[/attach]


这就是例子,如果您打开查询出错或者根本不能修改查询,请直接复制我前面的查询语句建立新查询,就可以看到我需要的结果了
作者: fannky    时间: 2006-9-14 16:38
以下是引用andymark在2006-9-13 15:33:00的发言:


是有这种情况,保存时用()才能保存,保存后ACCESS会自动更改为[]. as 的形式,但执行是没问题的

如果查询语句更改了,须把[]. AS 改成()才能保存

初次建立是执行没问题的,但是一旦在查询视图模式下保存了就会出错.也就是说建立的查询不能做任何的筛选及排序.



更恼火的是,一旦出错,连设计模式都不能打开它!!
作者: 真主    时间: 2006-9-14 21:30
你错就错在你偷工减料,
修改方法:把你的查询表修改成另外一个名字就行了
原因:你的SQL语句有个[查询1],但你的外面文档在存档时也用[查询1]命名
作者: fannky    时间: 2006-9-14 21:40
以下是引用真主在2006-9-14 13:30:00的发言:


你错就错在你偷工减料,
修改方法:把你的查询表修改成另外一个名字就行了
原因:你的SQL语句有个[查询1],但你的外面文档在存档时也用[查询1]命名



呵呵,谢谢您的建议

我这里只不过是个例子,我实际开发过程中可没有这么做的。但是问题依旧存在
作者: 真主    时间: 2006-9-14 21:43
但我改了,筛选及排序都没问题了,你还是什么问题,传上来看看
作者: andymark    时间: 2006-9-14 22:10
改成这样试试:

SELECT a.名称, a.类别, a.用料, Sum(a.毛重) AS 毛, Sum(a.净重) AS 净
FROM [SELECT IIf(类别="盖板",Left(产品名称,Len(产品名称)-2)+"板",产品名称) AS 名称, 用料清单.类别, 用料清单.用料, 用料清单.毛重, 用料清单.净重
FROM 用料清单]. AS a
GROUP BY a.名称, a.类别, a.用料;





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