【问题标题】:VBA to Write SQL grabbing table info [duplicate]VBA编写SQL抓取表信息[重复]
【发布时间】:2020-06-10 08:29:31
【问题描述】:

我正在尝试解决一个问题。 我们有一个表格,其中有一列品牌,其中一个品牌使用撇号。 IE 品牌 = “鲍勃的”。来自表 Cataloginfo

在我的 VBA 代码中,我使用它构建到 SQL 中

WHERE z.brand = '" & strBrand & "' 

希望在 SQL 代码中,我将其视为“Bob's”,因此它将在 SQL 中工作,而不是我现在看到的“Bob's”,这就是它的样子在表中。这甚至可能吗?

这是在 VBA 中构建的,可作为 SQL Server Mgt studio 的传递运行。 任何帮助将不胜感激! 谢谢!

【问题讨论】:

  • 关于如何转义单引号有一个很好的答案here。凯文罗斯的answer 提到了SQL Injection。如果您在值得阅读之前没有遇到过它。
  • 谢谢大家,这太完美了!我仍在学习 SQL 以及我能用它做什么,所以这些都是非常宝贵的资源!

标签: sql-server vba ms-access


【解决方案1】:

当 SQL Server 遇到两个连续的单引号时,它只会看到一个单引号。所以你会在单引号上加倍,像这样:

WHERE z.brand = '" & REPLACE(strBrand,"'","''") & "' 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2019-07-16
    相关资源
    最近更新 更多