vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Stapeldruck killt Applikation 
Autor: M@rtin
Datum: 28.01.05 11:07

Hallo zusammen!

Ich werd noch verrückt mit diesem '~%$*"§-Datareport!

Ich wollte in einem Programm einen Stapeldruck realisieren, indem ich einfach die Sub zum Einzeldruck mit verschiedenen Parametern hintereinander starte. Doch sofort, als ich das ganze mal laufen lassen wollte, ist es abgestürzt:
"VB6 hat einen Fehler verursacht und muss geschlossen werden. Es wird ein Fehlerprotokoll erstellt."
Zum einen weiß ich nicht, wie ich an dieses Protokoll rankomme. Kann mir das jemand sagen?

-------------------
umschriebener Programmaufbau:
Ich gehe in der Sub, die mehrfach aufgerufen wird ungefähr folgendermaßen vor:
Als neue Variable wird hier eigentlich nur der Report an sich erzeugt.
Als nächstes wird ein bereits existierendes Recordset neu abgefragt mit an die Sub übergebenen Daten.
Dann wird der komplette Report im Code dynamisch zusammengestellt, d.h. das Recordset wird analysiert und je nach Inhalt des RS werden Labels an die richtige Stelle gerückt, Schriftarten werden gesetzt, etc...
Und zum Schluss rufe ich die .print-Methode des Reports auf.

-------------------
Bereits versuchte Lösungsansätze:
Nach dem zweiten automatischen Aufruf jedoch bricht VB mit dem oben genannten Fehler ab.
Nachdem das Programm ja immer komplett abbricht, bin ich zur Fehlersuche zunächst Schritt für Schritt durch den Code gegangen und habe variablen überprüft etc... Doch der Fehler tritt im Debug-Modus nicht auf!
Also habe ich versucht nach bestimmten Positionen mit Messageboxen zu kontrollieren, wie weit der Code ausgeführt wird. Doch auch hier habe ich nur festellen müssen, dass der Fehler nicht auftritt, wenn eine Messagebox im Code aufgerufen wird.
Als nächstes habe ich einfach versucht nach Beendigung der Sub den Speicher etwas freizuschaufeln, indem ich das Recordset geschlossen habe, oder auch =Nothing gesetzt habe und den Report mit =Nothing und mit Unload(Report) vernichtet habe.
Nichts! Der Fehler tritt weiterhin auf!
Ich habe daraufhin dann versucht mit den wenigen Eigenschaften und Methoden des Datareports, den Druckstatus zu kontrollieren und das Programm mit DoEvents-Kommandos zum Abarbeiten eventuell asynchron laufender Jobs zu bewegen. Ich habe versucht mit dem AsyncProgress-Event darauf zu warten, dass der zweite Ausdruck erst angestoßen wird, wenn vom ersten Ausdruck die PagesPrinted=TotalPages wird, aber dieses Ereignis wird bei mir immer nur einmal aufgerufen und der versuch führte nicht zum Ziel. weiterhin habe ich versucht das Programm solange mit DoEvents und kurzen Warteschleifen zu füttern, bis die .AsyncCount-Eigenschaft (Anzahl der laufenden Asynchronen Jobs des Reports) auf 0 sinkt, aber das geschah einfach nicht... Ich habe diesen Versuch nach einigen Minuten abgebrochen, nachdem der erste Ausdruck auch schon aus der Queue des Druckers verschwunden war.

Und jetzt bin ich mit meinem Latein am Ende. Weiß jemand Rat? Ich bin muttlerweilen ziemlich verzweifelt.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Stapeldruck killt Applikation819M@rtin28.01.05 11:07

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel