2
営業担当者がフィールド内にある間に更新できるExcelドキュメントにデータベースのコピーを設定しようとしています。私はリスト行のために実行されるinsert文のコードを持っていますが、たった20行でオーバーフローエラーが出ます。ここに私のコードです:Excelから数行しか挿入しないとオーバーフローエラーが発生しました
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行だけですので、オーバーフローエラーが予想されませんでした。 ご協力いただければ幸いです!
Customer As Long
に変更
にあるint型は、自動的に静かにバックグラウンドでロングスにtransmogrifiedはないと思われますか? – 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:[興味深い読書](http://stackoverflow.com/questions/26717148/integer-vs-long-confusion);) –
あなたはシッドハースです! 私の同僚にコードを大声で説明していたときに私はそれに遭遇しました。あなたのコメントを見たとき、それは確認されました! ありがとうございました! :) –