Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

den aktiven Drucker in Access 2000 über Programmierung festlegen





Frage

Hallo, wie kann ich den aktiven Drucker in Access 2000 über Programmierung festlegen (über VBA od. API). (Access ist auf Win NT installiert worden uns es handelt sich um keinen richtigen Drucker sondern um einen Treiber für Faxsoftware, er ist aber als Drucker in Windows eingetragen).

Antwort 1 von .struppi

 
Hier gibt es Hilfe
 
---------------------------------------
In A2000 können über das Printer-Object weitere Eigenschaften abgefragt und eingestellt werden.
---------------------------------------
Es gibt aber auch sehr einfache Methoden den Standarddrucker zu wechseln:
1. Über das die Word.Application. Aus ihr kann AkcivePrinter auf den Druckernamen eingestelt werden.

2. Mit folgendem Trick kann auf das Kontexmenü im Druckerordner zugegriffen werden und der Standarddrucker gewechselt werden. Der Funktion muß der Druckername als String übergeben werden:

Function Printerwechsel(Printer As String)
Dim shell As shell
Dim item As Shell32.FolderItem
Dim folder As Shell32.folder

Set shell = CreateObject("Shell.Application")
Set folder = shell.NameSpace(4)

For Each item In folder.Items
   If item.Name = Printer Then item.InvokeVerb "Als S&tandard definieren"
Next
End Function

3. Eine weitere Möglichkeit besteht den Drucker mit Hilfe des Network-Objectes zu wechseln. Der DruckerName muß hier in einem Formularfeld mit Namen Drucker stehen (ZB Kombifeld mit definierten Druckernamen) Außerdem liest die Funktion noch weitere Dtails der Netzwerkumgebung aus und schreibt diese als text in ein Bezeichnungsfeld mit Namen B8, daß auch existieren muß:

Function NetworkDrucker()
Dim Netzwerk As Object
Dim Domaen, UName, NDrucker, CName, nd, ndListe, Info As String, ndcollection As Variant

Set Netzwerk = CreateObject("Wscript.Network")
Netzwerk.setDefaultPrinter (Me.Drucker)
Domaen = Netzwerk.UserDomain
UName = Netzwerk.UserName
CName = Netzwerk.ComputerName
Set ndcollection = Netzwerk.EnumPrinterConnections
For Each nd In ndcollection
ndListe = ndListe & nd & Chr(13) & Chr(10)
Next
Info = ""
Info = Info & "User-Domain:   " & Domaen & Chr(13) & Chr(10) _
            & "User-Name:     " & UName & Chr(13) & Chr(10) _
            & "Computer-Name: " & CName & Chr(13) & Chr(10) _
            & Chr(13) & Chr(10) & Chr(13) & Chr(10) _
            & "Permanente Netzwerk_Drucker Verbindungen:" & Chr(13) & Chr(10) _
            & Chr(13) & Chr(10) _
            & ndListe & Chr(13) & Chr(10)
 Me.B8.Caption = Info

--------------------------------------
Der momentane Standarddrucker läßt sich aus der Registry auslesen und zu Vergleichen benutzen.

Gruß struppi