获取前2000记录

时间:2015-01-22 09:47:23

标签: ms-access query-optimization fetch

我有以下查询

strfinal ="         TRANSFORM格式(Sum([Mandays]。[Hours]),""#0.0"")AS [The Value]         选择             Mandays.WorkTypeCode AS WONo,             格式(总和([校长]。[小时]),"" 0000.0"")AS总计         来自Mandays         GROUP BY Mandays.WorkTypeCode         PIVOT UCase([Ent By]); "

查询返回2048条以上的记录,然后无法在VB6中显示MSHFLexGrid(Limit为2048)。 如何更改查询以便必须提取前2000条记录

1 个答案:

答案 0 :(得分:0)

最有效的方法是这样做:

CurrentDB.CreateQueryDef("tmpQuery", "SELECT Top 2000 * FROM Mandays")

strfinal = "TRANSFORM Format(Sum([tmpQuery].[Hours]),""#0.0"") AS [The Value] 
SELECT tmpQuery.WorkTypeCode AS WONo, Format(Sum([tmpQuery].[Hours]),""0000.0"") AS 
Total FROM tmpQuery GROUP BY tmpQuery.WorkTypeCode PIVOT UCase([Ent By]); "

可以放置" Top 2000"在当前代码中的SELECT语句之后,但在另一个查询中执行它将会加快速度。

如果您愿意,还可以在CreateQueryDef中放置ORDER BY语句,以便控制使用哪些2000条记录。