Sql 仅从Excel插入几行后出现溢出错误

Sql 仅从Excel插入几行后出现溢出错误,sql,vba,excel,adodb,Sql,Vba,Excel,Adodb,我正在尝试将数据库的副本设置到excel文档中,销售代表可以在外出时更新该文档。我已经得到了为列表行运行insert语句的代码,但是在仅仅20行之后就出现了溢出错误。这是我的密码: Sub ConnectTODB() Dim CustomersConn As ADODB.Connection Dim CustomersCmd As ADODB.Command Dim lo As Excel.ListObject Dim ws As Excel.Worksheet Dim l

我正在尝试将数据库的副本设置到excel文档中,销售代表可以在外出时更新该文档。我已经得到了为列表行运行insert语句的代码,但是在仅仅20行之后就出现了溢出错误。这是我的密码:

Sub ConnectTODB()

  Dim CustomersConn As ADODB.Connection
  Dim CustomersCmd As ADODB.Command
  Dim lo As Excel.ListObject
  Dim ws As Excel.Worksheet
  Dim lr As Excel.ListRow

  Set ws = ThisWorkbook.Worksheets(8)
  Set lo = ws.ListObjects("TCustomers")

  Set CustomersConn = New ADODB.Connection
  Set CustomersCmd = New ADODB.Command

  CustomersConn.ConnectionString = SQLConStr
  CustomersConn.Open
  CustomersCmd.ActiveConnection = CustomersConn

  For Each lr In lo.ListRows
    CustomersCmd.CommandText = _
    GetInsertText( _
    Intersect(lr.Range, lo.ListColumns("Type").Range).Value, _
    Intersect(lr.Range, lo.ListColumns("Customer").Range).Value, _
    Intersect(lr.Range, lo.ListColumns("Name").Range).Value, _
    Intersect(lr.Range, lo.ListColumns("Contact").Range).Value, _
    Intersect(lr.Range, lo.ListColumns("Email").Range).Value, _
    Intersect(lr.Range, lo.ListColumns("Phone").Range).Value, _
    Intersect(lr.Range, lo.ListColumns("Corp").Range).Value)

    CustomersCmd.Execute
  Next lr

  CustomersConn.Close

  Set CustomersConn = Nothing

End Sub

Function GetInsertText(CType As String, Customer As Integer, Name As String, Contact As String, Email As String, Phone As String, Corp As String) As String
  Dim SQLStr As String

  SQLStr = _
  "INSERT INTO Customer (" & _
  "Type, Customer,Name,Contact,Email,Phone,Corp)" & _
  "VALUES (" & _
  "'" & CType & "'," & _
  "'" & Customer & "'," & _
  "'" & Name & "'," & _
  "'" & Contact & "'," & _
  "'" & Email & "'," & _
  "'" & Phone & "'," & _
  "'" & Corp & "')"

  GetInsertText = SQLStr

End Function
表的总大小只有1600行,所以我没想到会出现溢出错误。
任何帮助都将不胜感激

出现溢出错误是因为其中一个变量无法处理提供给它的输入。我强烈怀疑罪魁祸首是中的
客户作为整数

函数GetInsertText(CType作为字符串,Customer作为整数,Name作为字符串,Contact作为字符串,Email作为字符串,Phone作为字符串,Corp作为字符串)作为字符串


客户更改为整数
客户

只要INT不是自动且安静地在后台转换为长?@StormsEdge:;)没错,你是西德哈特!当我向我的一位同事大声解释代码时,我偶然发现了它,当我看到你的评论时,它被证实了!谢谢!:)谢谢@siddharth!