sql - Excel VBA 中 SQL 更新函数的正确语法
问题描述
我正在尝试使用 Excel VBA 中的变量来使用 SQL Update、SET 和 Where 查询。我可以创建字符串来更新一个查询,但对于多个列,它被证明更加困难。请有人能指出我正确的方向吗?
con.Execute "UPDATE [Maint_Record] SET [Completed_] ='" & strCompleted & "'" & "Where [ID] = '" & intID & "'"
上面的代码行适用于 'completed_' 列。但是当我需要更新三列并且下面的代码不起作用时!
con.Execute "UPDATE [Maint_Record] SET [Priority_] ='" & strPriority & "'," [Assigned_To] ='" & strAssignedTo & "', " [Comments_] ='" & strComments & "', " [Completed_] ='" & strCompleted & "'" & "Where [ID] = '" & intID & "';"
我收到了来自 Excel 的语句结束警告等 :-( 有人可以帮忙吗?我已经很接近让这个工作了,但还不够接近 :-)
解决方案
您的字符串有问题 - 您"
在不需要的地方包含了额外的引号 ( )。请参阅下面突出显示的内容X
:
X
strPriority & "'," [Assigned_To] =
X
strAssignedTo & "', " [Comments_] =
X
strComments & "', " [Completed_] =
你需要再看一下这个字符串并纠正它的问题,给你类似的东西:
con.Execute "UPDATE [Maint_Record] SET [Priority_] ='" & strPriority & "', [Assigned_To] ='" & strAssignedTo & "', [Comments_] ='" & strComments & "', [Completed_] ='" & strCompleted & "' Where [ID] = '" & intID & "';"
你的最后WHERE
陈述是:
Where [ID] = '" & intID & "';"
如果intID
是数字 ( int
) 那么您不需要单引号:
Where [ID] = " & intID & ";"
推荐阅读
- kubernetes - 从 nginx 入口迁移到 istio
- webpack - webpack 4.8.3 e.merge 不是函数异常
- c# - 实体框架 6 -> 具有多个键的通用 DbSet.Find 方法
- string - 使用 Bash 替换字符串并将部分移动到结果
- java - 在 lambda 中使用集合时,PMD LocalVariableCouldBeFinal 仍然是有效规则吗?
- java - 使用 Spring Boot 和 AngularJS 以国际数字格式存储和处理数字
- css - Base64 背景图像被解析为服务器中的相对路径
- node.js - 如何在nodejs中访问app.use方法中的变量?
- javascript - 如何在 Winston 中实现“isDebugEnabled”防护?
- typescript - 离子 - Firebase 身份验证错误