Veritabanının bir kopyasını, satış temsilcileri alandayken güncellenebilecekleri bir excel belgesine kurmaya çalışıyorum. Liste satırları için çalıştırılacak bir insert ifadesinin kodunu aldım, ancak yalnızca 20 satırdan sonra bir Taşma hatası alıyorum. İşte benim kodudur:Excel'den yalnızca birkaç satır ekledikten sonra taşma hatası
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
toplam tablo boyutu yalnızca 1600 satırları, bu yüzden bir taşma hatası beklemiyordum. Herhangi bir yardım mutluluk duyacaktır!
Customer As Long
değiştirin
içindedir Ints otomatik ve sessizce arkaplanda Longs Uçak transmogrified olmadığını sanıyorum? – StormsEdgeFunction GetInsertText(CType As String, Customer As Integer, Name As String, Contact As String, Email As String, Phone As String, Corp As String) As String
@StormsEdge: [İlginç Okuma] (http://stackoverflow.com/questions/26717148/integer-vs-long-confusion);) –
Doğru Siddharth! Kodları iş arkadaşlarımdan birine açıklarken ve yorumunuzu gördüğümde, bu doğrulandı! Teşekkür ederiz! :) –