bestand bewerken van uit access nadat je het naar excel hebt gekopierd

Status
Niet open voor verdere reacties.
Heb je wel de Excel bibliotheek geladen, en eerst een Excel sessie geopend?
 
Maar je hebt de vraag nog niet helemaal beantwoord: heb je wel eerst een Excel sessie geopend?
 
De vraag stellen is mijn vraag beantwoorden :). Als je denkt dat je kunt volstaan met het koppelen van de Excel bibliotheek, en dat dan alle Excel commando's werken, dan denk je een beetje te kort door de bocht. Access is een database pakket, en kent opdrachten als woorkbooks("filename").sheets("name").cells(1,6) = woorkbooks("filename").sheets("name").cells(1,5) (en zeker niet met typfouten ;) ) niet.
Een WorkBook is een Excel eigenschap, en niet een Access eigenschap. Je moet dus, voordat je überhaupt wat kunt doen in Excel, eerst een Excel sessie maken, openen, etc.

Dat kan met Late binding en Early binding. (google maar op de verschillen).
Code:
'-----------------------------------------------------------------------------------------------------

'Deze variabelen gebruiken bij Late Binding...
'-----------------------------------------------------------------------------------------------------
''Dim xlApp As Object
''Dim xlWBk As Object
''Dim xlWSht As Object
''Dim xlRng As Object
'================================================================

'-----------------------------------------------------------------------------------------------------
'Deze variabelen gebruiken bij Early Binding...
'-------------------------------------------------------------------------------------------------------------
Dim xlApp As Excel.Application
Dim xlWBk As Excel.Workbook
Dim xlWSht As Excel.Worksheet
Dim xlRng As Excel.Range
'================================================================

En daarna kun je de sessie openen, bestand ophalen etc.
Zomaar een stukje code dat ik zelf gebruik, en waarbij in een lus een aantal bestanden worden geopend en bijgwerkt op basis van een recordset.
Code:
    Set xlApp = CreateObject("Excel.Application")       'Create an Excel instance
    xlApp.Visible = False                               'Control whether or not to show Excel to your user
    For x = LBound(sFiles) To UBound(sFiles)
        Application.Echo False
        DoCmd.Hourglass True
        DoCmd.Echo False, "Bezig met: " & sFiles(x)
        Set xlWBk = xlApp.Workbooks.Open(sFiles(x), True)       'Open the specified workbook
        Set xlWSht = xlWBk.Worksheets("Medewerkers")
        With xlWSht
            .Activate
            .Unprotect Password:="x"
            .Visible = xlSheetVisible
        End With
        i = 1
        Set xlRng = xlWSht.Cells(1, i)
        xlRng.CurrentRegion.Delete
        On Error Resume Next
        xlWSht.Range("A1").Select
        xlRng.Select
        For Each fld In rst.Fields
            Set xlRng = xlWSht.Cells(1, i)
            xlRng.Value = fld.Name
            i = i + 1
        Next
        rst.MoveFirst
        xlWSht.Range("A2").CopyFromRecordset rst
        With xlApp.Application
            .ScreenUpdating = True
            .EnableEvents = True
        End With
        With xlWSht
            .Activate
            .Protect Password:="x", UserInterfaceOnly:=False
            .Visible = xlSheetHidden
        End With
        xlWBk.Close SaveChanges:=True
        Call EditActie
    Next x
    For Each xlWBk In Workbooks
        xlWBk.Close SaveChanges:=True
    Next
    xlApp.Application.Quit
    xlApp.Quit
    Set xlRng = Nothing
    Set xlWSht = Nothing
    Set xlWBk = Nothing
    Set xlApp = Nothing
Het is een voorbeeldje hè, dus waarschijnlijk niet bruikbaar voor jou :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan