我真的希望这里有人可以帮我解决我花费数小时试图解决的问题,但没有结果。
我正在尝试使用Excel VBA中的MS查询与csv文件建立数据连接。我需要通过在特定列上应用日期过滤器来将数据从csv文件过滤到电子表格中。如果日期固定(即在VBA中进行硬编码),则连接可以正常工作。但是,我希望日期成为用户输入的内容,因此这是我面临的问题。基本上,我不确定如何将日期变量传递给连接。
当宏正常工作时,SQL语句如下所示:
.CommandText = "SELECT * FROM " & csvName & " WHERE SECTYPE='GS' AND LAST TRADED DATE={ts '2016-01-29 00:00:00'}"
当我尝试通过变量sValnDate传递日期时,出现“ SQL语法错误”:
.CommandText = "SELECT * FROM " & csvName & " WHERE SECTYPE='GS' AND LAST TRADED DATE={ts " & sValnDate & "}"
我已经尝试了变量的几种配置。我试图将其作为日期,与正确命令完全相同的字符串,按正确命令中要求的格式格式化的日期,用变量的每种格式保留和删除大括号等形式传递,但是没有任何效果。
我刚刚在这里提出了1条语句,以使事情保持简单。但是,如果您需要查看整个区块(不超过15-20行),请告诉我。
提前致谢
PS:只是看了看预览。不知何故``LAST TRADED DATE附近''在这里已被删除。
假设这sValnDate
是一个看起来像的字符串,2016-01-29 00:00:00
那么您只是错过了对号(aka单引号或Chr(39))。
.CommandText = "SELECT * FROM " & csvName & _
" WHERE [SECTYPE]='GS' AND [LAST TRADED DATE]={ts '" & sValnDate & "'}"
如果sValnDate
是实际日期,则将其格式化为
.CommandText = "SELECT * FROM " & csvName & _
" WHERE [SECTYPE]='GS' AND [LAST TRADED DATE]={ts '" & _
Format(sValnDate, "yyyy-mm-dd hh:mm:ss" & "'}"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句