Van een Qry de gegevens overzetten naar een Word document.

Status
Niet open voor verdere reacties.

Marcotica

Gebruiker
Lid geworden
20 sep 2007
Berichten
83
Hallo,

Ik zit met het volgende. Als in ook een bepaalde knop druk wordt een qry gemaakt. Dit gaat goed. Van deze qry wil ik de getoonde gegevens overzetten naar een Word document. Hoe kan ik dit doen?
Ik heb reeds het volgende.

Code:
Private Sub KnopBrief1_Click()

    Dim myWord As Word.Application
    
On Error GoTo CreateWord

    Set myWord = GetObject(, "Word.Application")
    
    
    myWord.Visible = True
    myWord.Activate
    myWord.WindowState = wdWindowStateMaximize
    
    '        'Hier onder het pad en document dat wordt geopend
    myWord.Documents.Open ("N:\002_Risicobeheer\11_naselectie\DASPAS\Data\Brief1")

       
    
    '    Qry_Brief1
    DoCmd.OpenQuery ("Qry_Brief1"), acViewNormal, acReadOnly
    DoCmd.ApplyFilter , "tbl_01_DasPas.Ren_ID_PK=" & Me.Ren_ID_PK
    
    
With myWord.ActiveDocument
    .Bookmarks("bwRCNummer").Range.Text = Me.RCNummer.Value
    
End With

Set myWord = Nothing

CreateWord:
    Set myWord = CreateObject("Word.application")
    Resume Next
    
End Sub

Ik hoor graag van jullie mooie en goede oplossing!

Mvg

Marco
 
Wat is het probleem?
 
Wat is het probleem?

Hi Michel,
Alles goed?

Vanuit een formulier draai ik een qry als ik op een knop druk. Deze wordt dan geopend.
De inhoud van deze geopende qry wil ik dan opnemen in een (standaard)brief in Word. Hierin staan de bladwijzers waar de data moet komen.
Echter de qry draait wel goed, maar hoe kan ik de data van deze geopende qry naar Word krijgen.
Daarna moet de qry weer gesloten worden, zodat er niets gerommeld kan worden.

Ik heb 'm nu zo:

Code:
Private Sub KnopBrief1_Click()
    
    
    '    Qry_Brief1
    DoCmd.OpenQuery ("Qry_Brief1"), acViewNormal, acReadOnly
    DoCmd.ApplyFilter , "tbl_01_DasPas.Ren_ID_PK=" & Me.Ren_ID_PK

    
    
    Dim myWord As Word.Application
    
On Error GoTo CreateWord

    Set myWord = GetObject(, "Word.Application")
    
    
    myWord.Visible = True
    myWord.Activate
    myWord.WindowState = wdWindowStateMaximize
    
    '        'Hier onder het pad en document dat wordt geopend
    myWord.Documents.Open ("N:\002_Risicobeheer\11_naselectie\DASPAS\Data\Brief1")

  
    
    
With myWord.ActiveDocument
    .Bookmarks("bwRen_ID_PK").Range.Text = ActiveDocument.Ren_ID_PK.Value
    
End With

Set myWord = Nothing

CreateWord:
    Set myWord = CreateObject("Word.application")
    Resume Next
    
End Sub
 
Waarom maak je van je brief niet een Samenvoegdocument die de gegevens uit de query haalt? Is een stuk makkelijker te maken. Ik vroeg me eigenlijk af wat het probleem was met je code.... Je opent zo te zien op een correcte wijze je Word document, dus wat is precies het probleem?
 
Waarom maak je van je brief niet een Samenvoegdocument die de gegevens uit de query haalt? Is een stuk makkelijker te maken. Ik vroeg me eigenlijk af wat het probleem was met je code.... Je opent zo te zien op een correcte wijze je Word document, dus wat is precies het probleem?


Daar heb ik ook aan gedacht, maar dan zou je vanaf de andere kant beginnen. En dat is niet de bedoeling. Het moet echt vanuit de acces database.
Waar ik tegenaan loop is dat ie niet de geopende qry gebruikt om de dat in het word document op te nemen.
 
Ik zou zelf niet zo snel kunnen bedenken waarom je het perse vanuit Access wilt starten, maar dat weet jij beter als ik. Zelfs het starten van een Word samenvoeg document vanuit Access zou het al makkelijker maken.... Maar je haalt je veldwaarde Me.RCNummer.Value uit het formulier,niet vanuit de query. Dan zou je die moeten openen als Recordset, en vervolgens uitlezen.
 
Ik zou zelf niet zo snel kunnen bedenken waarom je het perse vanuit Access wilt starten, maar dat weet jij beter als ik. Zelfs het starten van een Word samenvoeg document vanuit Access zou het al makkelijker maken.... Maar je haalt je veldwaarde Me.RCNummer.Value uit het formulier,niet vanuit de query. Dan zou je die moeten openen als Recordset, en vervolgens uitlezen.

Michel,

Daar ligt mijn probleem dus. Hoe kan ik de query openen als Recordset. Dat lukt me dus niet (gewoon omdat ik dit nog niet ken), en dan uitlezen.
Blijft gewoon moeilijk!
Ik hoor graag weer van je.

gr. Marco
 
NOrmaal gesproken zou ik de query opbouwen via SQL omdat je er een extra filter op loslaat. Dus vermoedelijk moet je de SQL code nog aanpassen, maar het zou er dan zo uit kunnen zien:

Code:
    strSQL = "SELECT * FROM Qry_Brief1 WHERE [Ren_ID_PK]=" & Me.Ren_ID_PK
    With CurrentDb.OpenRecordset(strSQL)
        If .RecordCount = 1 Then
            With myWord.ActiveDocument
                .Bookmarks("bwRen_ID_PK").Range.Text = .Fields("Ren_ID_PK")
                .Bookmarks("klantnr").Range.Text = .Fields("klantnr")
                .Bookmarks("typewand").Range.Text = .Fields("typewand")
            End With
        End If
        .Close
    End With
 
Opgelost met tussen formulier die uit een Qry is opgebouwd. Vanuit de formulier kan ik de bookmarks naar Word exporteren. Werkt subliem.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan