本帖最后由 fatmingli 于 2018-1-9 13:53 编辑
问题如下Sub CSQL() A =Screen.ActiveForm.Name ' 获取当前窗体名称 Dim qdfAs DAO.QueryDef Dimstrsql strsql ="TRANSFORM DSum(成交数量, " & A & ",证券代码='002489') AS 成本价格 SELECT "& A & ".发生日期 FROM " & A & " WHERE(((" & A & ".证券代码) = '"& Forms(A)!Text2 & "')) GROUP BY " & A & ".发生日期 PIVOT [证券代码] & [证券名称];" Set qdf =CurrentDb.QueryDefs("成本分析查询") qdf.SQL =strsql DoCmd.OpenForm "成本曲线图" End Sub
运行后生成的 “成本分析查询“” 的SQL语句是 TRANSFORM DSum(成交数量,交易记录,证券代码='002489') AS 成本价格 SELECT 交易记录.发生日期 FROM 交易记录 WHERE (((交易记录.证券代码)='002489')) GROUP BY 交易记录.发生日期 PIVOT [证券代码] & [证券名称];
我检查后发现DSUM语句不正确,查询不能正常运行, 正确的DSUM是有双引号的,正确的SQL语句是 TRANSFORM DSum("成交数量","交易记录","证券代码='002489'") AS 成本价格 SELECT 交易记录.发生日期 FROM 交易记录 WHERE (((交易记录.证券代码)='002489')) GROUP BY 交易记录.发生日期 PIVOT [证券代码] & [证券名称];
请问要如何修改这段代码,才能生成正确的SQL语句,我对这些符号格式实在头痛 strsql ="TRANSFORM DSum(成交数量, " & A & ",证券代码='002489') AS 成本价格 SELECT "& A & ".发生日期 FROM " & A & " WHERE(((" & A & ".证券代码) = '"& Forms(A)!Text2 & "')) GROUP BY " & A & ".发生日期 PIVOT [证券代码] & [证券名称];" 谢谢
|