请寻求一些帮助/建议。
问题:我正在尝试在VBA Excel中运行SQL查询以更新Excel电子表格(.xlsx)列/字段,其值大于255个字符但我收到了以下错误:
The field is too small to accept the amount of data you attempted to add.
Try inserting or pasting less data.
代码:我的连接字符串如下:
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
后台:我已经尝试了一些我在网上找到的建议,包括在连接字符串中设置maxscanrow变量,并确保我的第一行包含特定长度的默认值(因此列第一个值包含一个长度超过255个字符的随机字符串)。我还读过可能有可能更改注册表项,但我希望将其分发给其他计算机,并且不幸的是不可能更改每台计算机的reg键。有没有人有更多可能的建议供我尝试?
一如既往地感谢您提供任何帮助/建议。
编辑:忘记提及表格中已存在约16条记录,且相关列的值不同。