2017-06-13 62 views
0

我在MS Access中写了一个查询,我能够成功运行。但是,无论什么时候回到MS Access 2010中的设计视图,它都会将其更正为SQL,甚至不起作用!MS Access不断打破我的查询

这是我原来的SQL(我成功运行):

SELECT [AssetTypeCounts].DELIVERED_IDENTIFIER, 
[AssetTypeCounts].DELIVERED_SOURCE, 
Switch([AssetTypeCounts].TYPES<1,"Missing", 
[AssetTypeCounts].TYPES=1,"Correct",[AssetTypeCounts].TYPES>1,"Conflicting") AS STATUS 
FROM (
    SELECT DELIVERED_IDENTIFIER, DELIVERED_SOURCE, Sum(IIf(Len(PRODUCTTYPE)>0,1,0)) AS TYPES 
    FROM (
    SELECT DISTINCT DELIVERED_IDENTIFIER, PRODUCTTYPE, BILLINGCODE, DELIVERED_SOURCE  
    FROM AprilUsageFile) AS "DisctinctAssetIdBySource" 
    GROUP BY DELIVERED_IDENTIFIER, DELIVERED_SOURCE 
) AS AssetTypeCounts; 

我去后回设计视图我得到一个错误:

The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data.

我甚至没有得到一个机会编辑查询。

为什么Access会不断改变我的查询?

我可以禁用MS Access更改查询的功能吗?

+2

不要在视图模式下打开它,它不能正确显示它,因此它会中断。仅使用SQL视图。 –

+0

评论https://stackoverflow.com/questions/22078688/ms-access-error-the-field-is-too-small-to-accept-the-amount-of-data-you-attempt和https:// support.microsoft.com/en-us/help/896950/error-message-when-you-run-a-query-in-access-the-field-is-too-small-to-accept-the-amount-您尝试添加的数据的数据 – June7

+0

访问SQL不使用双引号标识符。尝试使用'AS DisctinctAssetIdBySource'将其删除。 – Parfait

回答

0

尝试通过在即时窗口打印到创建一个新的查询:

Dim qDef As DAO.QueryDef 
Set qDef = CurrentDb.QueryDefs("NameOfBrokenQuery") 
Debug.Print qDef.SQL 
0

一般来说在设计模式不打开SQL查询,因为访问都是会改变它的部分,然后这将是困难你要改变它。