welke printer

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.682
Hallo,
Als ik een printopdracht heb dan wordt sowieso altijd de default printer gekozen.
Ik zou echter, voor er effectief geprint wordt, een keuzevenster willen zien waarin ik de printer kan kiezen waar de printopdracht naartoe moet gestuurd worden.
Hoe doe je dat?

Bedankt
JP
 
Je kunt de printers uitlezen en met ActivePrinter een andere printer op je rapport zetten. Overigens onthoudt Access de bij een rapport aangegeven printer dus volgens mij hoef je dat niet echt verder aan te passen.
 
Dat klopt maar ik wil soms een andere printer kunnen kiezen...
 
Zoals ik al zei: dat kan door de huidige printer (ActivePrinter) in een variabele te steken, de andere printer daarna toe te wijzen, af te drukken en daarna de ActivePrinter weer terug te zetten naar de oorspronkelijke.
 
En dan krijg je zoiets. Je wilt de printers kunnen kiezen, dus je zult ze sowieso aan een keuzelijst moeten toewijzen. Dat kun je doen op je formulier door deze code te gebruiken.
Code:
Private Sub Form_Load()
Dim strP As String
Dim prtLoop As Printer, aPrinter As Printer

    On Error GoTo ShowPrinters_Err
    If Printers.Count > 0 Then
        For Each prtLoop In Application.Printers
            With prtLoop
                If Not strP = vbNullString Then strP = strP & ";"
                strP = strP & .DeviceName
            End With
        Next prtLoop
    End If
    With Me.cboPrinters
        .RowSourceType = "Value list"
        .RowSource = strP
    End With
    Exit Sub
     
ShowPrinters_Err:
    MsgBox Prompt:=Err.Description, Buttons:=vbCritical & vbOKOnly, _
        Title:="Error Number " & Err.Number & " Occurred"
     
End Sub

Uiteraard combineren met andere code die je hebt staan bij de gebeurtenis <Bij laden>. Bij het kiezen (=veranderen) van de printer, moet je het rapport openen in Designmodus, de printer toewijzen met (dummy code uiteraard)
Code:
Set Reports!MyReport.Printer = Application.Printers(Me.CboPrinters)
En daarna het rapport weer opslaan. Na het afdrukken moet je op dezelfde manier de printer weer terugzetten.

Waarom niet het rapport openen in de afdrukweergave, en de gebruiker zelf laten bepalen welke printer hij/zij kiest vanuit het afdrukmenu zonder al deze poespas? Beyond my comprehension :).
 
Michel,

Ik krijg de foutmelding: "kan de methode of het gegevenslid niet vinden op de lijn met: With Me.cboPrinters

JP
 
Ik gebruik een keuzelijst die cboPrinters heet. Je zult de naam moeten overnemen, of de code moeten aanpassen.
 
Michel,
De situatie is als volgt:
het programma loopt op de c drive van een pc die een verdiepje lager staat.
Op de PC in mijn bureau neem ik het scherm over van PC1 en werk ik gewoon verder.
Dit gaat super goed, alleen, als ik een printopdracht geef dat komt dit uit de printer op de gelijkvloerse verdieping. Ik wil dat het document uit mijn printer, 1 verdiepje hoger komt.
dus, dacht ik, ik bouw iets op dat me de keuze laat waar ik de printeropdracht naartoe wil sturen.
Misschien te omslachtig maar toch...

Dus, op basis van je voorbeeldje maak ik een formulier aan
Plaats ik een keuzelijst met 2 keuzes: printer boven en printer beneden
Deze keuzelijst noem ik cboPrinters
Ik krijg nu geen foutmelding meer op deze lijn maar wel op de lijn er onder

Dus, indien mogelijk, nog even een handje

Bedankt
JP
 
JEPEDEWE zei:
Plaats ik een keuzelijst met 2 keuzes: printer boven en printer beneden
Dat snap ik niet; je printers zullen vast niet 'printer boven' en 'printer beneden' heten. Je kunt uiteraard best een keuzelijst gebruiken die deze omschrijvingen gebruikt, maar dan moet je de gekozen waarde bij kiezen gebruiken om de juiste printerdefinitie in te stellen. De namen daarvan kun je dus uitlezen met mijn code. Overigens, als je toch altijd op een bepaalde verdieping zit, en dus de daar aanwezige printer wilt gebruiken, en datzelfde probleem ook hebt bij medewerkers die beneden zitten, wat is er dan op tegen om de printer standaard voor elke gebruiker op de eigen etage te zetten? Waarom dan nog laten kiezen?
 
Er is 1 matrix printer bij en die staat alleen beneden dus dacht ik...
 
Er is 1 matrix printer bij en die staat alleen beneden dus dacht ik...
Dat maakt toch niks uit voor het vraagstuk? Een printer is een printer, en een rapport is een rapport. Een rapport wordt opgemaakt voor een specifieke printer, en als de instellingen op beide printers bruikbaar zijn, is het rapport op beide printers prima af te drukken. Met de geleverde code zou je in staat moeten zijn om de printers tijdelijk om te zetten. Waar die printers staan, boeit natuurlijk niet, zolang ze maar in het netwerk te benaderen zijn.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan