PDA

Vollständige Version anzeigen : Letzte Seite im Bericht per VBA anzeigen


rex-berlin
04.08.2005, 06:58
Hallo alle zusammen!

Kann mir jemand einen Tip für folgendes Problem geben.
Ich möchte einen Bericht öffnen und per VBA
sofort die letzte Seite anzeigen.

Bis bald

REX

J_Eilers
04.08.2005, 07:05
Hi,

möchtest du immer und nur die letzte Seite sehen? Dann könnte man die WhereCondition im Berichtsaufruf verwenden, ansonsten könnte man es mit einem Bookmark o.ä. versuchen.

Lanz Rudolf
04.08.2005, 08:11
Hallo
eine (wenn auch nicht sehr schöne möglichkeit) möglichkeit währe nach dem öffnen des Berichts ein sendkey.
DoCmd.OpenReport stDocName, acPreview
SendKeys "{End}"

rex-berlin
04.08.2005, 08:31
Hallo Jan,

ich muß den Bericht mit der ersten Seite öffnen und anschließend zur
letzten springen. Dieses Prozedera benötige ich zum Beschreiben von div. Variablen mit Inhalten der Berichtsseiten.

Viele Grüße

REX

rex-berlin
04.08.2005, 08:35
Hallo Ruedi,

danke für den Tip.
Da aber der Bericht im Hintergrund läuft und ich noch einen
zweiten Bericht mit dessen Daten öffne, wird die Funktion
Send Keys leider auf den zweiten Bericht angewendet.

Viele Grüße

REX

J_Eilers
04.08.2005, 09:42
Wenn ich dich richtig verstehe möchtest du Werte aus einem Bericht in einen anderen übergeben? Warum machst du das? Du kannst diese Werte doch auch direkt aus einem geeigneteren Objekt übergeben. Oder verstehe ich da etwas falsch?

rex-berlin
04.08.2005, 10:07
Hallo Jan,
Ich benutze den ersten Bericht für eine bestimmte Seitenzahlenübergabe für Monate an Variablen.
Wenn Du im Forum unter meiner Frage "Probleme mit Seitennummerierung"
schaust wirst du den Lösungsvorschlag von Karma finden.
Der funktioniert soweit auch sehr gut, bis auf das nach dem Öffnen des Berichts und der Seitenformatierung die erste Seite angezeigt wird und damit die Variable für die Seitenanzahl "Januar" mit 1 gefüllt wird. Dies möchte ich damit umgehen, das nach dem Öffnen des Berichts die letzte Seite angesteuert wird und damit die richtigen Werte in den Variablen stehen. Per Hand funktioniert das sehr gut.

Viele Grüße

REX

J_Eilers
04.08.2005, 10:21
Aber du brauchst dann doch auch nur die letzte Seite und nicht alle?

rex-berlin
04.08.2005, 11:06
Hallo Jan,

Wenn ich die Routine richtig verstanden habe, wird beim Seitenformatieren
anhand der Monate die letzte Seitenzahl der jeweiligen Monatsdaten in die Monatsvariable geschrieben. Das klappt ja auch wie gesagt bis auf den Monat Januar sehr gut. Ich benötige eine Lösung, bei der der Bericht geöffnet und anschließend auf die letzte Seite gewechselt wird.

Viele Grüße

REX

J_Eilers
04.08.2005, 11:47
Dann schau dir mal das Beispiel (http://ms-office-forum.net/forum/showthread.php?t=165382) von Lanz Rudolf an.

rex-berlin
04.08.2005, 13:11
Hallo Jahn und Ruedi,

nochmals Danke für die Tips.
Ich arbeite jetzt doch mit SendKeys und lasse den Bericht
für eine Millisekunde offen, damit die letzte Seite angesteuert werden kann
und ich die richtigen Werte in den Variablen habe..
Anschließend wird der Bericht wieder geschlossen und mein Hauptbericht geöffnet. (s.u.)

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
........
DoCmd.OpenReport "Bericht1", acPreview
SendKeys "{End}"
DoEvents
Sleep 1
DoCmd.Close
DoCmd.OpenReport "Bericht2", acPreview
........

Viele Grüße

REX