我正在尝试将名为New_ParcelNum
的字段更新为FLAG
,具体取决于字符串中是否包含字母字符。
'FLAG anything with a letter.
sql_UpdateNew = "DECLARE @Counter INT;" & _
"SET @Counter = ASCII('A');" & _
"WHILE Counter <= ASCII('Z') " & _
"BEGIN" & _
"IIF(INSTR(tblParcelNumber, CHAR(@Counter)) > 0, " & _
"UPDATE tblParcelNumber SET tblParcelNumber.New_ParcelNum = 'FLAG', " & _
"tblParcelNumber.New_ParcelNum);" & _
"SET @Counter = @ Counter + 1;" & _
"END;"
DoCmd.RunSQL sql_UpdateNew
我一直遇到运行时错误:
(3129),SQL语句无效。预期DELETE,INSERT,PROCEDURE,SELECT,UPDATE。
答案 0 :(得分:1)
错误消息告诉您问题:您不能将RunSql用于复杂的过程代码(事实上,我不认为您可以在Access SQL 中完成那些 - 那些正在使用特定的T-SQL扩展)。
因此描述了“SQL语句”部分:
字符串表达式,它是操作查询或数据定义查询的有效SQL语句。它使用INSERT INTO,DELETE,SELECT ... INTO,UPDATE,CREATE TABLE,ALTER TABLE,DROP TABLE,CREATE INDEX或DROP INDEX语句。如果要访问其他数据库,请包含IN子句。
请参阅完整说明here。
答案 1 :(得分:0)
如何使用类似于以下内容的where子句进行SQL Server更新: 在哪里IsNumeric(tblParcelNumber)= 1&lt;&lt;&gt;&gt;