Printpreview maken met Visual Basic

Pagina: 1
Acties:
  • 212 views sinds 30-01-2008
  • Reageer

  • jobo
  • Registratie: Februari 2001
  • Laatst online: 29-01 16:32
Hallo allemaal.

Ik heb een probleem. Ik ben een programma aan het schrijven. hierin moet een mogelijkheid komen om een afdrukvoorbeeld te maken van een rapport. Ik weet niet hoe ik dit voor elkaar kan krijgen. Bij MSDN kan ik ook al niet veel vinden. Eer tweede probleem wat ik heb is dat ik geen printer kan selecteren vanuit mijn programma. Wanneer ik een print opdracht geef, komt deze direct uit de printer die als standaard is ingesteld. Is het mogelijk om eerst een scherm zoals in Wordt te laten verschijnen waarop nog enkele printerinstellingen gewijzigd kunnen worden?

Ik hoop dat iemand mij verder kan helpen. Ik zou het zelf echt niet meer weten.

need more coffee!!!


Verwijderd

Om een printer te selecteren en eventuele settings aan te passen kan je de "Mircosoft Common Dialog Control" gebruiken.

Deze kan je dan aanroepen met: CommonDialog1.ShowPrinter

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17-09 08:12

Crazy D

I think we should take a look.

Print preview is een gedoe, al is het wel goed mogelijk. Bij m'n vorige baas hebben we een eigen raport engine geschreven, incl. sleep'n'pleur layout bepalen, en was zo goed als WYSIWGY incl. print preview.
Maja of de manier waarop we dat opbouwden bruikbaar is voor jou is afhankelijk van wat en hoe je print.

Die instellingen kun je idd via de commondialog control aanroepen. Je zou ook zelf een formpje kunnen maken.

Exact expert nodig?


  • jobo
  • Registratie: Februari 2001
  • Laatst online: 29-01 16:32
ik wil wel proberen om het met commondialogbox te laten slagen, maar kan dit wel in combinatie met het oproepen van een rapport uit Access. Ik roep het nu aan via OLE met ac.docmd.openreport. dan wordt het rapport gelijk geprint op de standaard printer. Kan ik dat met CommonDialogBox oom wijzigen?

need more coffee!!!


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17-09 08:12

Crazy D

I think we should take a look.

De commondialog is alleen maar het venstertje tonen, nadat er op OK geramt is moet je de waardes uitlezen, en doorgeven aan Access (als dat mogelijk is).

Exact expert nodig?


  • jobo
  • Registratie: Februari 2001
  • Laatst online: 29-01 16:32
ik snap het ff niet niet meer, sorrie

Ik heb een commando om te printen, maar kan geen printer kiezen, Als ik het goed begrijp moet ik dus eerst de commondialogbox tevoorschijn halen, dan ok OK rammen en dan het rapport aanroepen met ac.docmd.openreport en wordt het rapport naar de juiste (gekozen) pinter gestuurd?

need more coffee!!!


Verwijderd

je kan er in ieder geval je default printer mee wijzigen, dus daarna zou het rapport op die printer afgedrukt moeten worden...

(CommonDialog.DefaultPrinter = TRUE voordat je de printer selectie aanroept)

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17-09 08:12

Crazy D

I think we should take a look.

Op dinsdag 04 september 2001 10:33 schreef r-e-m het volgende:
je kan er in ieder geval je default printer mee wijzigen, dus daarna zou het rapport op die printer afgedrukt moeten worden...

(CommonDialog.DefaultPrinter = TRUE voordat je de printer selectie aanroept)
Volgens mij doet de commondialog niets meer als het windowtje tonen waarin de gebruiker de boel kan selecteren. Nadat er op ok is geramt kun je die keuzes dan weer uitlezen via properties, en knu je daar wat mee doen. In jouw geval dus (indien mogelijk) Access vertellen welke printer ed. ie moet gebruiken om te printen.

Exact expert nodig?


  • RobzQ
  • Registratie: Februari 2000
  • Laatst online: 21-12-2020

RobzQ

greedy as a pig

Als je in Access werkt moet je de report generator gebruiken!

Daarmee kun je op eenvoudige wijze een pagina aanmaken op basis van een query en hier het printvoorbeeld van opvragen.

In oudere versies van Access zit dit nog niet ingebouwd, toen had je nog crystal report voor hetzelfde doel. (Bestaat nog steeds trouwens)

..so be wary of any man who keeps a pig farm..


  • jobo
  • Registratie: Februari 2001
  • Laatst online: 29-01 16:32
Hoe zit het dan met printpreviews? kan ik met de commondialogbox ook een printpreview weergeven? zo niet, hoe kan ik dat dan wel doen. Ik heb alles al geprobeerd, maar niets lukt. Ik heb zelfs al een progje gedownload van internet waarmee ik volgens beschijvingen een preview kan maken in VB60. Dit wil alleen niet lukken en hub dus de moed met dat progje opgegeven. Kan iemand mij verder helpen?

need more coffee!!!


  • ParaNoiMia
  • Registratie: Mei 2000
  • Laatst online: 20:28
Ik gebruik momenteel MS-Word in een VB applicatie voor printpreview. Maar weet niet of dat een optie is (we gebruiken Word zowiezo al om te mailmergen)

En ik heb ook ooit een RichTextBox gebruikt voor een preview

  • jobo
  • Registratie: Februari 2001
  • Laatst online: 29-01 16:32
Hoe heb je dat dan gedaan? ik ben zelf al diverse dingen aan het proberen geweest, maar wil niet lukken. Ik heb dus een rapport in Access en wil hiervan een preview in m'n progje.

need more coffee!!!


  • ParaNoiMia
  • Registratie: Mei 2000
  • Laatst online: 20:28
Het ging niet om een rapport in Access, gewoon met VB een tekstfile geschreven als outputfile en die tonen in een read-only RichTextbox of aansturen van Word met die file.

Welke optie wil je weten ? Dan wil ik het wel mailen :)

Printpreview met Word gaat zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Function PrintPreview(strFileName As String)
Dim objWord As Object

Set objWord = CreateObject("Word.Application")
objWord.WindowState = 1

objWord.Documents.Open (strFileName)
objWord.PrintPreview = True

Set objWord = Nothing

End Function

  • jobo
  • Registratie: Februari 2001
  • Laatst online: 29-01 16:32
ik heb het inmiddels voor elkaar gekregen om te printen naar een zelf te kiezen printer. Wat ik alleen nog vreemd vind is dat ik mijn standaard printer terug kan zetten. Wanneer ik bij afdrukken een printer selecteer met commonDialog, dan wordt de standaardprinter van windows gewijzigd. Hoe kan ik er nu voor zorgen dat ik na het printer mijn originele standaard printer weer terug krijg?

Het lukt me ook nog niet om een printpreview te maken, ik heb al van allerlei mogelijkheden geprobeerd, maar niets lukt. Weet iemand daar ook nog iets voor?

need more coffee!!!


Verwijderd

Ik maak in mijn programma's gebruik van pdf.ocx, dit is gewoon de Acrobat Reader, maar dan in jouw programma gehezen. Zo heb je ook geen omkijken meer naar zoomen, afdrukken, meerdere pagina's e.d.
Om PDF bestanden te maken maak ik gebruik van Ghostscript.
Ik genereer uit een database een PostScript-file (.ps) en converteer deze mbv Ghostscript naar een .pdf.

  • jobo
  • Registratie: Februari 2001
  • Laatst online: 29-01 16:32
Ik denk niet dat ik hier iets aan heb, kan ik hiermee dan ook de opmaak overnemen die ik heb gebruikt op het rapport?

ff een andere weg nemen....

Is het niet mogelijk om met OLE een commando aan access te geven dat deze het rapport selecteerd, in het menu bestand de optie afdrukvoorbeeld kies? Ik ben hiermee al aan het stoeien geweest, maar krijg het zelf nog niet voor elkaar. Weet iemand hier iets meer over?

need more coffee!!!


  • jobo
  • Registratie: Februari 2001
  • Laatst online: 29-01 16:32
Is er helemaal niemand die mij verder kan helpen?

need more coffee!!!


  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Ik dacht dat dat via OpenCurrentDatabase moest dus ik heb daar even op gezocht in MSDN en wat gevonden op

http://support.microsoft.com/support/kb/articles/Q147/8/16.ASP

Previewing or Printing a Report
You can use the following sample procedure for printing or previewing a report in Microsoft Access from an Automation controller:
'----------------------------------------------------------------------
'DECLARATIONS
'----------------------------------------------------------------------

Option Explicit

'----------------------------------------------------------------------
'This procedure prints or previews a report, and then closes the current
'instance of Microsoft Access (because objAccess is a procedure-level
'variable). To call this procedure, use the following syntax:
' PrintAccessReport _
' dbname:= _
' "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb",
' rptname:="Sales by Category", preview:=True
'----------------------------------------------------------------------
Sub PrintAccessReport(dbname As String, rptname As String, _
preview As Boolean)
Dim objAccess As Object
On Error GoTo PrintAccessReport_ErrHandler
Set objAccess = CreateObject("Access.Application")
With objAccess
.OpenCurrentDatabase filepath:=dbname
If preview Then 'Preview report on screen.
.Visible = True
.DoCmd.OpenReport reportname:=rptname, _
view:=Access.acPreview
Else 'Print report to printer.
.DoCmd.OpenReport reportname:=rptname, _
view:=Access.acNormal
DoEvents 'Allow report to be sent to printer.
End If
End With
Set objAccess = Nothing
Exit Sub

PrintAccessReport_ErrHandler:
MsgBox Error$(), , "Print Access Report"
End Sub

  • jobo
  • Registratie: Februari 2001
  • Laatst online: 29-01 16:32
Ik zal het ff gaan proberen. In ieder geval bedankt. Ik denk dat ik hier wel mee verder kom.

Je gebruikt gewoon OLE om Access aan te sturen. Ik was daar al mee bezig geweest. Printen lukte dus wel maar een preview........

je hoort nog van me of het gelukt is.

bedankt.

need more coffee!!!


  • jobo
  • Registratie: Februari 2001
  • Laatst online: 29-01 16:32
HET IS GELUKT!!!. Ik kan nu eindelijke en printpeview maken. er is alleen 1 maar....het scherm van access dat verschijnt moet eigenlijk gemaximaliseerd worden. Het rapport dat verschijnt eigenlijk ook. Ik ben al een het zoeken geweest, maar kan ook dit probleem niet oplossen. Weet 1 van jullie misschien nog iets?

Groeten Joël

need more coffee!!!


  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Met
code:
1
DoCmd.Maximize

kan je het actieve venster in Access maximaliseren.
Maar hoe je Access zelf moet maximaliseren weet ik zo ff niet, ik zal kijken of ik daar morgen wat over kan vinden.

  • jobo
  • Registratie: Februari 2001
  • Laatst online: 29-01 16:32
Als ik het goed begrijp moet je dit commando dus zetten tussen het openen van acces en het openen van m'n rapport? Ik zal het ff proberen. Bedankt!

Mocht er iemand nog een antwoord weten op het maximaliseren van mijn access rapport dan houd ik me aanbevolen!

Ik heb nu nog een klein probleempje. Wanneer ik het gehele programma compile naar een .exe en ik maak daar vervolgens een installatie van, krijg ik bij het installeren op een andere computer de melding: "Can't create activeX obect". Weet iemand wat ik nu ben vergeten? Ik kan er zelf nog niet echt uit komen.

(8> Groeten JoBo (8>

need more coffee!!!


Verwijderd

Ik snap nog steeds niet waarom MS de print preview functie niet in windows integreerd (bij de common dialog Pint, een knop print en een knop preview).

Zat er bij ons in '92 op de NeXT al in...
Pagina: 1