expertenaustausch > microsoft.* > microsoft.access

Stefan Langkau (12.11.2005, 11:20)
Dann Versuch ich mein Glück mal hier:

Hallo zusammen,

wieder mal ein Problemchen mit dem ich nicht zurande komme:
In einer VBA Prozedur drucke ich berichte aus, indem ich zunächst den
Standarddrucker wechsle und dann mit

DoCmd.OpenReport varbericht, acViewNormal

den aktuellen Bericht aufrufe. (für mehrfachen Ausdruck mehrfache
Aufrufe)

Nur leider klappt das zuverlässig nur am direkt angeschlossenen Drucker
und nicht an einem per LAN angeschlossenen MFP 980.

Nun ist es möglich, das dies ein Druckerproblem und damit hier OT ist,
aber ich würde trotzdem gerne wissen, ob schonmal jemand ähnliche
Probleme hatte und ggfs lösen konnte.

Es ist nicht so als würde NIE etwas gedruckt, manchmal kommen die
Ausdrucke sofort, manchmal, wenn man den Drucker zwischendurch mal
abgeschaltet hat und manchmal muss man erst ein paar Aufträge aus der
Warteschleife löschen, damit er sich bequemt mit der Arbeit zu beginnen.

Vom Prinzip her scheint es also korrekt realisiert zu sein und trotzdem
muss irgendwo ein Denkfehler vorliegen.

System Win98SE, 128 MB RAM, 800MHz Duron, O97 Pro mit SP2

Für jeden Tip dankbar,

Stefan
Stefan Langkau (12.11.2005, 15:19)
Gunter Avenius wrote:

> Das ist IMO kein Access problem. Kannst Du nachvollziehen ob die
> Druckaufträge aus Access in der Druckerwarteschlage ankommen?


Das hatte ich fast befuerchtet.. ja, sie kommen in der
Druckerwarteschlange an, und werden bisweilen auch kompett abgearbeitet.

Wenn ich allerdings ueber das eingebaute Druckermenue drucke (Strg-P)
werden die Berichte IMMER gedruckt. Probleme macht es nur aus VBA heraus
und daher meine Frage. Es wirkt ein bissschen so, als wuerde beim
drucken aus vba heraus ein Signal an den Drucker fehlen.

Manchmal hilft es, den Drucker neu zu starten, manchmal muss man auch
einzelne Aufträge aus der Warteschlange loeschen, damit alle anderen
dann gedruckt werden.

Irgendwie ist das alles sehr mysterioes

Stefan
Ulrich Haarmeyer (12.11.2005, 17:31)
Hallo Stefan.

Stefan Langkau wrote:
[...]
> Das hatte ich fast befuerchtet.. ja, sie kommen
> in der Druckerwarteschlange an, und werden
> bisweilen auch kompett abgearbeitet.


Sobald die Druckaufträge in der Druckerwarteschlange
auftauchen, hat Access damit nichts mehr zu tun.
Es ist dann Aufgabe des Windows-Drucker-Spoolers,
diese Druckaufträge an den Rechner weiterzuleiten,
an dem der Drucker lokal angeschlossen ist.
Sobald das passiert ist, verschwinden die Druckaufträge
aus deiner Warteschlange.
Wenn das nicht passiert, handelt es sich dabei
offensichtlich um ein Windows bzw Netzwerk-Problem.
Ich würde mich an deiner Stelle mal an eine
Win98 NG wenden.

Gruß
Uli
Stefan Langkau (12.11.2005, 18:03)
Hallo Ulrich,

> Sobald die Druckaufträge in der Druckerwarteschlange
> auftauchen, hat Access damit nichts mehr zu tun.


Das ist dass, was ich eigentlich auch dachte. Auffaellig ist halt nur,
und darum steht die Frage hier, dass dieses Problem NUR beim Drucken aus
VBA heraus auftritt, NIEMALS aber beim Drucken ueber den normalen
Win-Druckdialog (Strg-P).

> Es ist dann Aufgabe des Windows-Drucker-Spoolers,
> diese Druckaufträge an den Rechner weiterzuleiten,
> an dem der Drucker lokal angeschlossen ist.


Das funktioniert ja auch tadellos. Nur der Drucker der per LAN
angeschlossen ist merkt nicht, wann er mit dem Drucken beginnen soll -
und wie gesagt auch nur, wenn der Druckauftrag mit VBA erstellt wird.

> Sobald das passiert ist, verschwinden die Druckaufträge
> aus deiner Warteschlange.
> Wenn das nicht passiert, handelt es sich dabei
> offensichtlich um ein Windows bzw Netzwerk-Problem.


Sollte ein Netzwerkproblem dann nicht auch bei Benutzung des
Standard-Druckdialogs zum Tragen kommen? Irgendetwas scheint da am
Druckauftrag anders zu sein... unterscheidet sich ein mit A97/VBA
erstellter Druckauftrag von einem mit dem Drucker-Dialog erstellten?

Hat hier vielleicht jemand Erfahrung damit, wie Access mit einem im LAN
per TCP/IP Netzwerk eingebundenen Drucker zusammenarbeitet? (Also nicht
lokal an einem Rechner angeschlossen)

> Ich würde mich an deiner Stelle mal an eine
> Win98 NG wenden.


Werde ich versuchen, danke

Stefan
Thomas Möller (12.11.2005, 18:16)
Hallo Stefan,

Stefan Langkau <moebel.cohnen> schrieb:
> ... unterscheidet sich ein mit A97/VBA
> erstellter Druckauftrag von einem mit dem Drucker-Dialog erstellten?


IMHO ist nur der Weg, den Druckauftrag zu erteilen, unterschiedlich. Ab dann
laufen nach meinem Verständnis die selben Routinen ab. Von daher sehe ich
keinen Unterschied.

Du könntest mal folgendes machen. Anstatt mehrfach den Bericht mit
DoCmd.OpenReport zu drucken öffnest Du den Bericht in der Vorschau und
verwendest dann DoCmd.Printout. Dort kannst Du auch die Zahl der gewünschten
Kopien angeben.

CU
Ulrich Haarmeyer (12.11.2005, 18:28)
Hallo Stefan

Stefan Langkau wrote:
[...]
> Das funktioniert ja auch tadellos. Nur der Drucker
> der per LAN angeschlossen ist merkt nicht, wann er
> mit dem Drucken beginnen soll -
> und wie gesagt auch nur, wenn der Druckauftrag mit
> VBA erstellt wird.


Es besteht noch die Möglichkeit, das hier eine Sicher-
heitsmaßnahme eines Netzwerkgerätes der Grund dafür ist.
Es gibt z.B Router und Switches, die in der Lage sind,
Flooding zu erkennen und zu unterbinden.
Flooding ist, wenn der gleiche Quellrechner massenhaft
Daten innerhalb einer bestimmten Zeit an den gleichen Zielrechner sendet. In dem Fall werden die Datenpakete
vom Gerät verworfen.
Du hattest Anfangs geschrieben, das die Dokumente
mehrfach gedruckt werden und das durch Schleifen-
programmierung realisiert ist.
Da du beim manuellen Drucken warscheinlich etwas
langsamer bist als VBA, tritt dann der Fehler
nicht auf.
Werden Datenpakete verworfen, kommt der Druckauftrag
nicht vollständig am Zielrechner an und wird auch
dann nicht ausgeführt.
(evtl mal den Netzwerkadmin fragen, ob eine solche
Sicherheitseinrichtung existiert)
Zur Sicherheit würde ich auch mal auf der Internetseite
des Druckerherstellers nach Treiberupdates schauen.

Gruß Uli
stefan hoffmann (13.11.2005, 00:29)
tach Stefan,

Stefan Langkau schrieb:
> Nur leider klappt das zuverlässig nur am direkt angeschlossenen Drucker
> und nicht an einem per LAN angeschlossenen MFP 980. Läuft der Printserver stabil?


mfG
--> stefan <--
Stefan Langkau (14.11.2005, 12:51)
Hallo Thomas,

> Du könntest mal folgendes machen. Anstatt mehrfach den Bericht mit
> DoCmd.OpenReport zu drucken öffnest Du den Bericht in der Vorschau und
> verwendest dann DoCmd.Printout. Dort kannst Du auch die Zahl der
> gewünschten Kopien angeben.


Ist leider keine Option, da auf einem immer geöffneten Formular ein
Timer läuft, der dann schonmal dazu führt, das eben nicht der gerade
sichtbare Bericht gedruckt wird.

Aber die Lösung des Problems lag auch woanders (siehe anderes Posting)

Trotzdem vielen Dank :)

Stefan
Stefan Langkau (14.11.2005, 12:55)
Hallo Ulrich,

> Es besteht noch die Möglichkeit, das hier eine Sicher-
> heitsmaßnahme eines Netzwerkgerätes der Grund dafür ist.
> Es gibt z.B Router und Switches, die in der Lage sind,
> Flooding zu erkennen und zu unterbinden.


DAS scheint es gewesen zu sein. Habe eine kleine Warteschleife zwischen
die einzelnen Aufrufe gebaut und nun scheint es soweit zu funktionieren
:)

> Werden Datenpakete verworfen, kommt der Druckauftrag
> nicht vollständig am Zielrechner an und wird auch
> dann nicht ausgeführt.
> (evtl mal den Netzwerkadmin fragen, ob eine solche
> Sicherheitseinrichtung existiert) (Das bin ich - nebenher - sogar selbst... peinlich, peinlich ;)


...aber ich bin mir ziemlich sicher, das davon in der Anleitung des
Switches nichts stand ;)

Vielen Dank jedenfalls, das Problem ist damit geloest :)

Stefan
Stefan Langkau (02.12.2005, 11:33)
Hallo zusammen,

ich muss leider nochmal drauf zurückkommen..

Stefan Langkau wrote:
> Hallo Ulrich,
> DAS scheint es gewesen zu sein. Habe eine kleine Warteschleife
> zwischen die einzelnen Aufrufe gebaut und nun scheint es soweit zu
> funktionieren :)


Die Hoffnung taeuscht oft... das Problem tritt zwar signifikant seltener
auf, ist aber immer noch vorhanden :-/

Eine etwas verwirrende Beobachtung in diesem Zusammenhang ist, dass alle
Druckauftraege (selbst wenn 15 und mehr in der Warteschleife stehen)
nach einem Reboot vollständig und ohne Mucken abgearbeitet werden. Es
scheinen also keine Daten verloren zu gehen.

Ratlos,

Stefan
Stefan Langkau (02.12.2005, 11:37)
stefan hoffmann wrote:
> tach Stefan,
> Stefan Langkau schrieb:
>> Nur leider klappt das zuverlässig nur am direkt angeschlossenen
>> Drucker und nicht an einem per LAN angeschlossenen MFP 980.

> Läuft der Printserver stabil?


Was genau meinst Du mit Printserver?
Die Druckauftraege werden jeweils in die Warteschleife eingestellt.
Abstuerze sind hier - obwohl lediglich win98SE laeuft - ohnehin extrem
selten und beim Drucken ist noch nie was abgestuerzt.

Stefan
stefan hoffmann (03.12.2005, 16:04)
tach Stefan,

Stefan Langkau schrieb:
> Was genau meinst Du mit Printserver?

Dein Drucker ist per TCP/IP angeschlossen, wenn es ein Netzwerkdrucker
ist. Damit der Drucker TCP/IP versteht, braucht er einen Printserver,
dieser kann ein externes Gerät sein oder eine interne Karte.

> Die Druckauftraege werden jeweils in die Warteschleife eingestellt. Wo liegt die? Geht dort eventuell der Speicher aus?


> Abstuerze sind hier - obwohl lediglich win98SE laeuft - ohnehin extrem
> selten und beim Drucken ist noch nie was abgestuerzt.


mfG
--> stefan <--
Stefan Langkau (03.12.2005, 18:04)
Hallo Stefan,

stefan hoffmann wrote:

>> Was genau meinst Du mit Printserver?

> Dein Drucker ist per TCP/IP angeschlossen, wenn es ein Netzwerkdrucker
> ist. Damit der Drucker TCP/IP versteht, braucht er einen Printserver,
> dieser kann ein externes Gerät sein oder eine interne Karte.


Da ich die Druckaufträge der anderen Netzwerkdrucker auch in der
Warteschleife sehen kann muss es wohl intern vom Drucker geregelt
werden.

>> Die Druckauftraege werden jeweils in die Warteschleife eingestellt.

> Wo liegt die? Geht dort eventuell der Speicher aus?


Waere moeglich, erklaert aber nicht, wieso die Auftraege nach einem
reboot des "auftraggebenden" Rechners klaglos abgearbeitet werden.

Ich habe zZt eine Warteschleife zwischen die einzelnen Berichtsaufrufe
gebaut, die dem Rechner je Auftrag ca 10 Sek Zeit gibt, bevor der
naechste rausgeht. Die einzelnen Auftraege haben zwischen 1 und 1,5 MB,
was den Drucker, der auch schon Druckauftraege von ueber 30 MB
verarbeitet hat (allerdings mit Strg-P->Drucken), nicht wirklich kratzen
duerfte.

Irgendwie klingt das alles so, als wuerden die Auftraege von Access zwar
schon ordentlich uebermittelt - aber das Signal "Guggug, das war alles,
du kannst jetzt drucken" fehlen. :-/

Eine Aenderung der "Spool"-Einstellungen brachte allerdings keine
Besserung.

*tiefseufz*

Stefan
Ähnliche Themen