【发布时间】:2018-10-04 16:45:25
【问题描述】:
我有这个有效的代码:
sqlQuery = ("SELECT monthdata.VAL, monthdata.MONTHVAL, monthdata.GREEN, monthdata.RED, monthdata.RAG, monthdata.CREATOR FROM data LEFT JOIN monthdata ON data.UID = monthdata.DATAUID WHERE [UID] = '" & (IDcell) & "' AND [MONTHVAL] = #" & Format((month1), "mm/dd/yyyy") & "#")
我对结尾特别感兴趣,即这一点:
[MONTHVAL] = #" & Format((month1), "mm/dd/yyyy") & "#")
我现在有一个变量“month1formatted”,它已经是 mm/dd/yyyy 格式。所以我试图把它作为替换并丢失格式化位。这就是我最终得到的结果:
sqlQuery = ("SELECT monthdata.VAL, monthdata.MONTHVAL, monthdata.GREEN, monthdata.RED, monthdata.RAG, monthdata.CREATOR FROM data LEFT JOIN monthdata ON data.UID = monthdata.DATAUID WHERE [UID] = '" & (IDcell) & "' AND [MONTHVAL] = month1formatted"
但是,扼杀这行不通。我是否以错误的方式将变量放在最后?
当我打印变量 sqlQuery 时,它打印的是变量 (i.e AND [MONTHVAL] = month1formatted) 的文本名称,而不是变量的值,但我知道变量设置正确
【问题讨论】:
-
你是如何声明month1的?处理日期很棘手......我将变量声明为字符串,看看它是否返回正确的格式
-
喜欢这个
currentdate = Worksheets("Data").Cells(6, "A").Value month1 = Format(currentdate, "mm/dd/yyyy")编辑了我上面的评论 -
您应该参数化您的查询。想想
IDcell = "' GO; DROP TABLE data --"