sql - Excel VBA 中 SQL 更新函数的正确语法

标签 sql excel vba

我正在尝试使用 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 & ";"

关于sql - Excel VBA 中 SQL 更新函数的正确语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58604788/

相关文章:

mysql - 带条件乘法的sql语句应该怎么写?

xml - 创建一个可以导入到 EXCEL 的 XSD,具有基于元素值的限制

vba - 如何扫描特定单词的列并在触发时删除前 4 个字符

mysql - 将信息拉取到未绑定(bind)字段

vba - 如何使用 Worksheet.Function 在 VBA 中求负 SumIf

sql - 如何找到特定的员工总数

mysql - 将多个 SQL 语句组合成一个

mysql - 合并在空表的插入语句中不起作用

arrays - 将vba中2个日期之间的所有日期存储到数组中

excel - 数据更改时刷新excel电子表格中的所有数据透视表