2014-02-14 68 views
0

我試圖將名爲New_ParcelNum的字段更新爲FLAG,具體取決於字母字符是否位於字符串中。訪問SQL。檢測字符串中的字母字符

'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), invalid SQL statement. Expected DELETE, INSERT, PROCEDURE, SELECT, UPDATE.

回答

1

錯誤消息告訴你的問題:你不能爲複雜的程序代碼中使用RunSql(其實,我不hink你可以在Access中完成SQL 的所有工作,其中 - 他們正在使用特定的T-SQL擴展)。

的 「SQL語句」 部分被如此描述:

A string expression that's a valid SQL statement for an action query or a data-definition query. It uses an INSERT INTO, DELETE, SELECT...INTO, UPDATE, CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, or DROP INDEX statement. Include an IN clause if you want to access another database.

查看完整描述here

0

如何與where子句類似立足您的SQL Server更新: WHERE則IsNumeric(tblParcelNumber)= 1 < < >>