1

これがExcelシートの私のコードです

Private Sub btnUpdate_Click()

On Error GoTo errH

    Dim con As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim strPath As String
    Dim intImportRow As Integer
    Dim strFirstName, strLastName As String

    Dim server, username, password, table, database As String


    With Sheets("Settings")

            server = .txtServer.Text
           table = .txtTable.Text
           database = .txtDatabase.Text
         ' server = "LB-HO-NAYEF\MYMSSQLSERVER"
        '  table = "tblLSItems"
        '  database = "LMStock"





            If con.State <> 1 Then

                con.Open "Provider=SQLOLEDB;Data Source=" & server & ";Initial Catalog=" & database & ";Integrated Security=SSPI;"
                'con.Open

            End If
            'this is the TRUSTED connection string

            Set rs.ActiveConnection = con

            'delete all records first if checkbox checked
            If .cbDelete Then
                con.Execute "delete " & table & ""
            End If

            'set first row with records to import
            'you could also just loop thru a range if you want.
            intImportRow = 2

            Do Until Sheet1.Cells(intImportRow, 1) = ""
               Dim strItemCode As String
            Dim strScanCode As String

                 Dim strStyle As String
                  Dim strDescription As String
                   Dim strPrice As String
                    Dim strSalePrice As String


                strItemCode = Sheet1.Cells(intImportRow, 2)
                strScanCode = Sheet1.Cells(intImportRow, 3)
                strStyle = Sheet1.Cells(intImportRow, 4)
                strDescription = Sheet1.Cells(intImportRow, 5)
                strPrice = Sheet1.Cells(intImportRow, 6)
                strSalePrice = Sheet1.Cells(intImportRow, 7)
                   'insert row into database
              COMMANDSTRING = "insert into tblLSItems (ItemCode, ScanCode,Style,Description,Price,SalePrice) values ('" & strItemCode & "','" & strScanCode & "','" & strStyle & "', '" & strDescription & "','" & strPrice & "','" & strSalePrice & "')"


            '    con.Execute "insert into tblLSItems (ItemCode, ScanCode,Style,Description,Price,SalePrice) values ('" & strItemCode & "','" & strScanCode & "','" & strStyle & "', '" & strDescription & "'," & strPrice & "," & strSalePrice & ")"
        con.Execute COMMANDSTRING

                intImportRow = intImportRow + 1
            Loop
             MsgBox ("Done importing")
            con.Close
            Set con = Nothing

    End With

Exit Sub

errH:
    MsgBox Err.Description
    MsgBox (COMMANDSTRING)
End Sub

Excel シートには 129848 レコードあります

レコード32766で常にエラーが発生しています

どんな記録でも

エクセルシートのダウンロードリンクはこちら

シート 2 には、データベースに接続するために必要な設定があります

4

1 に答える 1

2

VBAドキュメントの数値の操作セクションから

Integer、Long、および Byte データ型

...

Integer と Long の両方のデータ型は、正または負の値を保持できます。これらの違いはサイズです。整数変数は -32,768 から 32,767 までの値を保持できますが、Long 変数は -2,147,483,648 から 2,147,483,647 までの値を保持できます。

に置き換えDim intImportRow As IntegerますDim intImportRow As Long

于 2013-04-11T11:27:11.843 に答える