Results 1 to 4 of 4

Thread: Importing data from a excel sheet into access table(linked sql server table)

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    VBAX Newbie
    Joined
    Mar 2011
    Location
    Indiana
    Posts
    3
    Location

    Importing data from a excel sheet into access table(linked sql server table)

    Excel 2010
    Access 2010


    i DO NOT WANT TO USE DOCMD.transferspreadsheet please.


    I have a unique situation where i need to import data from an excel sheet to an access table..

    Sometimes the users are using different formatting for columns.

    i'm think i need to just try and take the cell(value) and not the displayed value in the cell.
    and import it.

    I'm trying to insert the data into a linked sql server table.

    Does this code seem sufficient ?

    Dim lngColumn As Long
    Dim xlx As Object, xlw As Object, xls As Object, xlc As Object
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    Dim blnEXCEL As Boolean
    blnEXCEL = False
    ' Establish an EXCEL application object
    On Error Resume Next
    Set xlx = GetObject(, "Excel.Application")
    If Err.Number <> 0 Then
        Set xlx = CreateObject("Excel.Application")
        blnEXCEL = True
    End If
    Err.Clear
    On Error GoTo 0
    ' Change True to False if you do not want the workbook to be visible when the code is running
    xlx.Visible = True
    ' Replace C:\Filename.xls with the actual path and filename of the EXCEL file from which you will read the data
    Set xlw = xlx.Workbooks.Open("C:\Filename.xls", , True) ' opens in read-only mode
    ' Replace WorksheetName with the actual name of the worksheet in the EXCEL file
    Set xls = xlw.Worksheets("WorksheetName")
    ' Replace A1 with the cell reference from which the first data value (no-header information) is to be read
    Set xlc = xls.Range("A2") ' this is the first cell that contains data
    Set dbs = CurrentDb()
    ' Replace QueryOrTableName with the real name of the table or query that is to receive the data from the worksheet
    Set rst = dbs.OpenRecordset("QueryOrTableName", dbOpenDynaset, dbAppendOnly) write data to the recordset
    Do While xlc.Value <> ""
        rst.AddNew
        For lngColumn = 0 To rst.Fields.Count - 1
            rst.Fields(lngColumn).Value = xlc.Offset(0, lngColumn).Value
        Next lngColumn
        rst.Update
        Set xlc = xlc.Offset(1,0)
    Loop
    rst.Close
    Set rst = Nothing
    dbs.Close
    Set dbs = Nothing
    ' Close the EXCEL file without saving the file, and clean up the EXCEL objects
    Set xlc = Nothing
    Set xls = Nothing
    xlw.Close False
    Set xlw = Nothing
    If blnEXCEL = True Then xlx.Quit
    Set xlx = Nothing
    Thanks
    fordraiders
    Last edited by Aussiebear; 04-24-2023 at 01:36 AM. Reason: Added the code tags

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •