Tell me more ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

Here is my code in the excel sheet

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

the excel sheet has 129848 records

it is always giving the error in the record 32766

no matter what is the record

Here is a link to download the excel sheet

SHEET 2 HAS SETTINGS REQUIRED TO CONNECT TO THE DATABASE

share|improve this question
2  
Try Dim intImportRow as Long - it sounds like you are hitting a limit of the maximum value stored in a signed int – Charleh Apr 11 at 11:26

1 Answer

up vote 1 down vote accepted

From the Working with Numbers section of the VBA documentation:

The Integer, Long, and Byte Data Types

...

The Integer and Long data types can both hold positive or negative values. The difference between them is their size: Integer variables can hold values between -32,768 and 32,767, while Long variables can range from -2,147,483,648 to 2,147,483,647.

Replace Dim intImportRow As Integer with Dim intImportRow As Long.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.