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

时间:2015-10-20 11:01:38

标签: excel vba excel-vba adodb

请寻求一些帮助/建议。

问题:我正在尝试在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条记录,且相关列的值不同。

0 个答案:

没有答案