Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Printen in VB

Wiep Corbier
5 antwoorden
  • Ik wil de mogelijk in mijn programma inbouwen om bepaalde gegevens uit te printen.
    Ik doe dit met de opdracht printer.print
    Het programma neemt dan automatisch de standaard printer die in windows is ingesteld. Het probleem is dat het programma crasht als het geen printer kan vinden (er is geen printer ingesteld, de printer is niet aangesloten, de printer staat uit, enz)
    Dit is op z'n zachts gezegd dus nogal zwakjes.
    Hoe kan ik mijn programma nu laten controleren of er wel een printer beschikbaar is?
  • on error goto 100
    printer.print
    100 'geen printer

    werkt dit niet?
  • Ik denk het niet :smile:
    en goto moet je zo min mogelijk proberen te gebruiken, eigenlijk helemaal niet. Je krijgt er op den duur namelijk hele onoverzichtelijke code van.
  • De meeste on error statements doen eigenlijk hetzelfde als goto, en hoewel het gebruik van goto's sterk afgeraden wordt is het toch geen slechte zaak als ze gebruikt worden zoals in error afhandeling. Een 'on error resume label' is dus bruikbaar
  • Commondialog kun je ook gebruiken voor de standaard printer (RTF = richtext):
    Private Sub printer()
    On Error GoTo Printercanceled
    CMDialog1.Flags = cdlPDReturnDC + cdlPDNoPageNums
    If RTF.SelLength = 0 Then
    CMDialog1.Flags = CMDialog1.Flags + cdlPDAllPages
    Else
    CMDialog1.Flags = CMDialog1.Flags + cdlPDSelection
    End If

    'Document geladen, dan printen
    CMDialog1.ShowPrinter
    RTF.SelPrint CMDialog1.hDC
    If RTF.SelLength = 0 Then
    CMDialog1.Flags = CMDialog1.Flags + cdlPDAllPages
    Else
    CMDialog1.Flags = CMDialog1.Flags + cdlPDSelection
    End If
    CMDialog1.ShowPrinter
    If CMDialog1.hDC > 0 Then RTF.SelPrint CMDialog1.hDC
    End If
    Printercanceled: Exit Sub
    End Sub

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.