You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动