access query wegschrijven naar excel

Status
Niet open voor verdere reacties.

Friend

Verenigingslid
Lid geworden
31 jan 2009
Berichten
1.128
Beste forummers,

Ik zou graag een query in access (qwrNaw) willen wegschrijven naar excel (niet als csv maar als xls bestand).

Is het ook mogelijk om dit te doen naar een bestaand bestand in excel en naar een specifiek werkblad?? ( bv C:\NAW.xls en dan het werkblad "update")

Friend
 

Bijlagen

  • testExport-2.rar
    24,9 KB · Weergaven: 25
als je de instructie Docmd.Transferspreadsheet gebruikt kan je de filename en range als optionele argumenten meegeven
 
NoellaG, hartelijk dank voor je reactie
Mijn kennis van vba is helaas rond het 0 punt.

Denk je dat het mogelijk is om dit in VBA als voorbeeld te kunnen aanreiken?

Hartelijk dank

Friend
 
Voor de volgende code heb ik:
* in mijn database een query qryContactList die een lijst van contactnamen genereert
* op mijn computer een excel bestand E:\develop\test1.xlsx
* in die excel file is een range met de naam test gedefinieerd

Code:
Public Sub sExportToRange()
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qryContactList", "E:\develop\test1.xlsx", True, "test"
End Sub
 
NoellaG,

Fantastisch, dat werkt super :thumb:

Knap hoe jullie dit altijd weer kunnen.

Mag ik nog één aanvulling vragen: hoe kan ik aan de code een autostart toevoegen als de query wordt weggeschreven naar Excel zodat de excel file geopend wordt via een ja/nee msg box?

Ik vind dit voor de msg box alleen dat opent natuurlijk niet de file.

Code:
Sub JaNeeBestand()
Dim Antwoord As String
Dim Dialoog As String
Dialoog = "Wil je het excel bestand nu openen?"
Antwoord = MsgBox(Dialoog, vbQuestion + vbYesNo, "Bestand openen")
If Antwoord = vbNo Then

?????????????????????


MsgBox "Oke dan doen we dit niet"
Else
MsgBox "Thanks"
End If
End Sub

Friend
 
Code:
Private Sub KnopNaarExcel_Click()
Dim tFile As String
Dim xlApp As Object, wkBK As Object
    tFile = "C:\Users\OctaF\OneDrive\_HelpMij\friend\test1.xlsx"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qwrNaw", tFile, True, "Test"
    Set xlApp = CreateObject("Excel.Application")
    With xlApp
        .Visible = True
        Set wkBK = .Workbooks.Open(tFile)
    End With
End Sub
Wel uiteraard het pad aanpassen.
 
En met Ja/Nee vraag:
Code:
Private Sub KnopNaarExcel_Click()
Dim tFile As String
Dim Antwoord As Variant
Dim xlApp As Object, wkBK As Object
    Antwoord = MsgBox("Wil je het excel bestand nu openen?", vbQuestion + vbYesNo, "Bestand openen")
    If Antwoord = vbYes Then
        tFile = "C:\Users\OctaF\OneDrive\_HelpMij\friend\test1.xlsx"
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qwrNaw", tFile, True, "Test"
        Set xlApp = CreateObject("Excel.Application")
        With xlApp
            .Visible = True
            Set wkBK = .Workbooks.Open(tFile)
        End With
    Else
        MsgBox "Oke dan doen we dit niet"
    End If
End Sub
 
OctaFish,

Hartelijk dank voor je reactie :thumb:

Dat werkt subliem, precies wat het moet doen:)

Nogmaals dank.

Friend
 
Is het ook mogelijk om dit te doen naar een bestaand bestand in excel en naar een specifiek werkblad?? ( bv C:\NAW.xls en dan het werkblad "update")
Ook dat kan:
Code:
Private Sub KnopNaarExcel_Click()
Dim rst As ADODB.Recordset
Dim conn As ADODB.Connection
Dim tFile As String
Dim Antwoord As Variant
Dim xlApp As Object, wkBK As Object

    Set conn = CurrentProject.Connection
    Set rst = New ADODB.Recordset
    rst.Open "qwrNaw", conn
    Set xlApp = CreateObject("Excel.application", "")
    tFile = "C:\NAW.xlsx"
    xlApp.Visible = True
    Set wkBK = xlApp.Workbooks.Open(tFile)
    wkBK.Worksheets("Update").Range("A2").CopyFromRecordset rst

End Sub
 
Octafish,

Even in de haast want ik moet weg.

Bij je laatste code krijg ik een foutmelding:

fout1.JPG

Wat doe ik verkeerd?
Friend
 
Je moet de Ado recordset aanzetten in de verwijzingen.
 
OctaFisch,

Welke zou dat precies moeten zijn?

Er staan namelijk vele verwijzingen :

data1.JPG

Friend
 
Altijd de meest recente pakken, dus 6.1. Al doen de oudere het ook nog steeds prima, dus het maakt niet eens zo heel veel uit.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan