在Excel VBA中有比SQL字符串更好的方法吗?

在Excel VBA中有比SQL字符串更好的方法吗?,sql,vba,string,Sql,Vba,String,我有一个带有CTE和case语句的SQL代码,大约700行和90个字段输出 我正在努力将其转换为VBA sqlstring。我已经克服了“太多行连续体”,但现在遇到了“语句太复杂”。这是在清理查询并使用转换器工具并将其分解为块之后进行的 然后使用SQL字符串从记录集中复制并粘贴到工作表中 我以前成功地使用过这种方法,但在如此复杂的查询中没有。我只需要VBA,用户就可以在where子句中更改id 有没有比SQL字符串更好的方法来获得所需的效果,因为这是一个非常麻烦的问题,并且很难调试和修改?您可以

我有一个带有CTE和
case
语句的SQL代码,大约700行和90个字段输出

我正在努力将其转换为VBA sqlstring。我已经克服了“太多行连续体”,但现在遇到了“语句太复杂”。这是在清理查询并使用转换器工具并将其分解为块之后进行的

然后使用SQL字符串从记录集中复制并粘贴到工作表中

我以前成功地使用过这种方法,但在如此复杂的查询中没有。我只需要VBA,用户就可以在
where
子句中更改id


有没有比SQL字符串更好的方法来获得所需的效果,因为这是一个非常麻烦的问题,并且很难调试和修改?

您可以使用该查询创建一个视图,然后在VBA中使用一个非常简单的查询来查询该视图

您可以使用该查询创建一个视图,然后在VBA中使用一个非常简单的查询来查询该视图

可能重复的可能重复的可能重复的可能重复的可能重复的可能重复的可能重复的@DasalKalubowila然后找人谁有权为你做这件事。如果您所在的地方有一个DBA,并且该DBA正在做他们的工作,那么他们会非常乐意您从代码中删除任意的字符串化SQL查询。如果需要参数,请制作一个存储过程,然后使用
ADODB.Command
安全地运行它,并使用
ADODB.Parameter
对象作为值。请参见。创建视图绝对是解决方案。它简化了一切。@DasalKalubowila然后找一个有权为你做这件事的人。如果您所在的地方有一个DBA,并且该DBA正在做他们的工作,那么他们会非常乐意您从代码中删除任意的字符串化SQL查询。如果需要参数,请制作一个存储过程,然后使用
ADODB.Command
安全地运行它,并使用
ADODB.Parameter
对象作为值。请参见。创建视图绝对是解决方案。它简化了一切。