VBA Excel SQL查询更新超过255个字符的字段

请寻求一些帮助/build议。

问题:我想在VBA Excel中运行SQL查询来更新Excel Spreadsheet(.xlsx)列/字段值大于255个字符但我收到以下错误:

The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data. 

代码:我的连接string如下:

  Sub Open_Conn(strDb As String) On Error GoTo conError Debug.Print (Time() & " - Connecting to: " & strDb) Set CON = New ADODB.Connection CON.Provider = "Microsoft.ACE.OLEDB.12.0" CON.Open "Data Source=" & strDb & ";" & _ "Extended Properties=""Excel 12.0 XML;HDR=Yes""" Debug.Print (Time() & " - Connected") Exit Sub conError: MsgBox ("There was an error processing the connection: " & strSQL & vbNewLine & Error(Err)) Resume Next End Sub 

和我的SQL查询代码是:

 Public Sub AddChangeRecord(ByVal strFieldName As String, ByVal strFieldValueNew As String, ByVal strFieldValueOld As String) Dim strSQL As String Dim strProgramNo, strUserID, strUpdateDate As String strProgramNo = frmMain.tbProgramNumberPD.Value strUserID = Environ("Username") strUpdateDate = Format(Date, "dd mmm yy") strSQL = "Insert Into [tblAuditLog$] (Program_No, UserID, UpdatedField, UpdateDate, OldValue, NewValue) " _ & "Values ('" & strProgramNo & "', '" & strUserID & "', '" & strFieldName & "', '" & strUpdateDate & "', '" & strFieldValueOld & "', '" & strFieldValueNew & "')" Call Open_Conn(strDb) Call Open_RS(strSQL) Call Close_Conn End Sub 

背景:我已经尝试了一些我已经在网上find的build议,包括在连接string中设置maxscanrowvariables,并确保我的第一行包含特定长度的缺省值(所以列的第一个值包含一个长于255个字符)。 我也读过,也许可以更改registry项,但我期待分发到其他机器和更改每个机器的registry项不幸的是不可能的。 有没有人有更多可能的build议让我尝试?

一如既往的感谢您的任何帮助/build议。

编辑:忘了提及表中已经存在大约16个logging与所讨论的列有不同的值长度。