VBA code onder een knop voor 2 printen

Status
Niet open voor verdere reacties.

jan62

Gebruiker
Lid geworden
19 jan 2010
Berichten
36
hoi,

Ik heb een vraag over hoe je met vba code onder een knop kan aangeven dat je 2 printjes wil
De code die ik gebruik voor 1 print en opsla als pdf zie je hieronder.

vr groet, Jan

Code:
Private Sub Knop22_Click()
Dim stDocName As String
Dim sqlTemp As String
Dim qDef As QueryDef

Set qDef = CurrentDb.QueryDefs("qofferte")
    sqlTemp = "SELECT Id, memo, datum, naam, adres, plaats, postcode FROM offerte WHERE Id=" & Me.Id
    qDef.SQL = sqlTemp
    stDocName = Right("0000" & Me.Id, 4) & "-" & Format(Date, "yyyymmdd")
    DoCmd.OutputTo acOutputReport, "rpofferte", acFormatPDF, "h:\offerte\" & stDocName & ".pdf"
    DoCmd.Rename stDocName, acReport, "rpofferte"
    DoCmd.OpenReport stDocName, acNormal, , "Id=" & Me.Id, acHidden, sFilter
    DoCmd.Rename "rpofferte", acReport, stDocName

End Sub
 
Laatst bewerkt door een moderator:
hoi,

Ik heb de hoop nog niet opgegeven dat iemand mij een tip geeft

Vr Groet, Jan
 
Die ga je ook wel krijgen; ik heb er nog geen tijd voor gehad, maar zal de code straks voor je opzoeken.
 
Je kan het zo eens proberen. Het is bepaald niet mijn favoriete werkwijze die je gebruikt; ook snap ik niet waarom je een QueryDef gebruikt en het tóch nog nodig is om het rapport te filteren; dat zou niet nodig moeten zijn. In een via de query gefilterd rapport hoef je dat niet te openen, en gaat het afdrukken dus een stuk sneller. Dat is dus als je de regel met SelectObject gebruikt.
Code:
Private Sub Knop22_Click()
Dim stDocName As String
Dim sqlTemp As String
Dim qDef As QueryDef

Set qDef = CurrentDb.QueryDefs("qofferte")
    sqlTemp = "SELECT Id, memo, datum, naam, adres, plaats, postcode FROM offerte WHERE Id=" & Me.Id
    qDef.SQL = sqlTemp
    stDocName = Right("0000" & Me.Id, 4) & "-" & Format(Date, "yyyymmdd")
    DoCmd.OutputTo acOutputReport, "rpofferte", acFormatPDF, "h:\offerte\" & stDocName & ".pdf"
    DoCmd.Rename stDocName, acReport, "rpofferte"
    DoCmd.OpenReport stDocName, acViewPreview, , "Id=" & Me.Id, acHidden, sFilter
    ‘DoCmd.SelectObject acReport, stDocName, True
    DoCmd.PrintOut , , , , 2 
DoCmd.Rename "rpofferte", acReport, stDocName

End Sub
 
Hoi Octafish,

soms snap ik niet hoe ik het moet aangeven in een Query en dan vind ik iets wat wel werkt en daar ben ik dan al weer erg blij mee.
Ik moet nog veel leren en met de hulp hier heb ik toch wel diverse dingen samen met leden van het forum goed gekregen. Ik ben dan ook heel blij met dit Forum.
De twee printen komen eruit , enige wat er nog niet goed gaat is dat het rapport terug moet worden gerenamed naar de naam
rpofferte en dat gaat nog niet goed, heb al wat dingen geprobeerd maar na het printen geeft hij op deze regel in de code en fout.
Het rapport heeft dan nog de naam hoe ik hem opsla als Pdf. ik ben zoekende maar heb het nog niet gevonden

gr Jan



Code:
DoCmd.Rename "rpofferte", acReport, stDocName
 
Laatst bewerkt door een moderator:
Ik snap niet waarom je het rapport überhaupt hernoemt, lijkt mij nergens voor nodig gezien je code.
 
Hoi Octafish

Ik selecteer eerst in een form de bewuste offerte zodra ik hem in beeld heb klik op de knop dat deze offerte moet worden opgeslagen met de naam Idnummer en datum als pdf.
de naam van het rapport veranderd in de naam Bijv: 0001-20012019 daarna print hij hem twee keer uit en de naam 0001-20012019 veranderd weer in rpofferte
hij hoeft wat mij betreft de naam niet te veranderen maar ik kreeg het niet voor elkaar zonder dit te doen en dat is dan weer mijn gebrek aan kennis.
Ik wilde de offertes opslaan onder dat nr en datum en als hij met de rapportnaam rpofferte niks doet is het ook prima
de volgendee code werkt wel en maakt 2 prints en slaat hem op, dit door de hulp van jou,
Maar als het kan zonder de naam rpofferte eerst te veranderen en na het opslaan en printen weer terug te veranderen zou dat ook mooi zijn.

Vr groet Jan


Code:
Private Sub Knop22_Click()
Dim stDocName As String
Dim sqlTemp As String
Dim qDef As QueryDef

Set qDef = CurrentDb.QueryDefs("qofferte")
    sqlTemp = "SELECT Id, memo, datum, naam, adres, plaats, postcode FROM offerte WHERE Id=" & Me.Id
    qDef.SQL = sqlTemp
    stDocName = Right("0000" & Me.Id, 4) & "-" & Format(Date, "yyyymmdd")
    DoCmd.OutputTo acOutputReport, "rpofferte", acFormatPDF, "h:\offerte\" & stDocName & ".pdf"
    DoCmd.Rename stDocName, acReport, "rpofferte"
    DoCmd.OpenReport stDocName, acViewPreview, , "Id=" & Me.Id, acHidden, sFilter
    ‘DoCmd.SelectObject acReport, stDocName, True
    DoCmd.PrintOut , , , , 2 
DoCmd.Rename "rpofferte", acReport, stDocName

End Sub
 
Nogmaals: ik snap niet wat je aan het doen bent. Als je een rapport uit Access exporteert als PDF, kun je die elke naam geven die je wilt. Dat weet je, want dat dóe je ook! (DoCmd.OutputTo acOutputReport, "rpofferte", acFormatPDF, "h:\offerte" & stDocName & ".pdf").

Wat je daarná doet, dat verbaast me dus pas echt, want je vult een variabele op basis van een ID en een datum, dus behoorlijk variabel, en vervolgens probeer je een rapport te hernoemen naar die naam, dan open je dat rapport en druk je het af... Maar afdrukken kan altijd met een rapport, daar heeft de naam van het rapport helemaal geen invloed op. Het zal de printer echt een worst wezen hoe jouw rapport heet :).
Overigens gaf ik als tip dat je het rapport niet hoeft te openen, maar je doet dat nog steeds. Zou ik dus ook niet doen.
 
Hoi Octafish,

Volgens mij ben ik op de goede weg, ik heb nu de code zo dat hij de naam van het rapport niet meer wijzigt en dat hij 2 printjes maakt.
Ik open volgens mij nu geen rapport meer. Wil jij nog eens kijken naar de code die ik nu heb?

vr gr Jan

Code:
Private Sub Knop30_Click()
Dim stDocName As String
Dim sqlTemp As String
Dim qDef As QueryDef
Set qDef = CurrentDb.QueryDefs("qofferte")
    sqlTemp = "SELECT Id, memo, datum, naam, adres, plaats, postcode FROM offerte WHERE Id=" & Me.Id
    qDef.SQL = sqlTemp
    stDocName = Right("0000" & Me.Id, 4) & "-" & Format(Date, "yyyymmdd")
    DoCmd.OutputTo acOutputReport, "rpofferte", acFormatPDF, "h:\offerte\" & stDocName & ".pdf"
    DoCmd.SelectObject acReport, "rpofferte", True
    DoCmd.PrintOut , , , , 2

End Sub
 
Laatst bewerkt door een moderator:
Ziet er goed uit; dit zou dus op de optimale manier moeten werken.
 
Hoi Octafisch,

ja dit werkt prima en heb er mee geleerd dat het minder omslachtig kan.
Bedankt voor de tips en je hulp, ik ben nog steeds bezig het beter onder
de knie te krijgen, ik denk dat ik jou vast nog wel eens nodig heb hier.

fijn weekend en de vr gr Jan
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan