MS Access 2010“Too many line continuations”错误解决问询
解决MS Access VBA中“Too many line continuations”错误的方案
首先得明确一个关键事实:VBA语言本身硬限制了续行符(_)的使用次数为24次,这个限制是语言层面的规范,无法通过设置取消——不管是MS Access还是其他VBA宿主(比如Excel),都受这个约束,没有任何系统设置或选项能修改它。
既然不能取消限制,我们可以通过重构代码来绕过这个问题,以下是几种适配你表单记录更新场景的实用方法:
1. 拆分长语句为多步变量赋值
如果你是因为拼接超长更新SQL语句导致续行过多,完全可以放弃续行符,分步骤完成赋值:
示例:重构超长更新SQL
原来的代码(续行超限):
strUpdateSQL = "UPDATE FormRecords SET " & _ "Field1 = '" & Me.txtField1 & "' " & _ "Field2 = '" & Me.txtField2 & "' " & _ "Field3 = '" & Me.txtField3 & "' " & _ '... 超过24个续行 "WHERE ID = " & Me.txtID
改成无续行的写法:
Dim strUpdateSQL As String strUpdateSQL = "UPDATE FormRecords SET " strUpdateSQL = strUpdateSQL & "Field1 = '" & Me.txtField1 & "', " strUpdateSQL = strUpdateSQL & "Field2 = '" & Me.txtField2 & "', " strUpdateSQL = strUpdateSQL & "Field3 = '" & Me.txtField3 & "', " '... 逐个添加字段更新语句 strUpdateSQL = strUpdateSQL & "WHERE ID = " & Me.txtID
更简洁的方式可以用数组+Join函数:
Dim sqlSegments As Variant sqlSegments = Array( "UPDATE FormRecords SET", "Field1 = '" & Me.txtField1 & "'", "Field2 = '" & Me.txtField2 & "'", "Field3 = '" & Me.txtField3 & "'", '... 其他字段更新项 "WHERE ID = " & Me.txtID ) strUpdateSQL = Join(sqlSegments, " ")
2. 使用With语句简化表单记录更新
如果你的代码是在更新表单记录时用了大量续行(比如AddNew后的字段赋值),With语句可以彻底消除续行需求:
原来的代码:
Me.Recordset.AddNew _ !Field1 = Me.txtField1.Value _ !Field2 = Me.txtField2.Value _ !Field3 = Me.txtField3.Value _ '... 超过24个续行 .Update
改成:
With Me.Recordset .AddNew !Field1 = Me.txtField1.Value !Field2 = Me.txtField2.Value !Field3 = Me.txtField3.Value '... 每个字段单独一行,清晰无续行 .Update End With
关于你提到的@Andre建议出现语法错误
你尝试@Andre的方案后出现的“Syn...”(应该是Syntax Error,语法错误),大概率是续行符使用不规范导致的:
- 续行符
_必须是该行的最后一个字符,后面不能有任何空格或其他字符 - 续行符前面可以有空格,但必须保证它是行尾唯一的内容
- 如果是拼接字符串,续行符前的
&不能省略,否则会触发语法错误
你可以检查代码中续行符的位置,修正后再试。
内容的提问来源于stack exchange,提问作者New Guy




