PDA

Vollständige Version anzeigen : im Bericht Seitenumbrüche per VBA erzwingen


HaWeLL
06.05.2004, 19:45
hey

ich habe einen Beticht und wollte mal fragen ob ich in diesem einem Seitenumbruch erzwingen kann ..

angenommen alle 5 DS geht das??

Arne Dieckmann
06.05.2004, 19:49
Das hat Norbert (AKA "Nouba") Dir hier schon erklärt: http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=126402 (es müsste sein 1. Beitrag in dem Thread sein).

HaWeLL
06.05.2004, 20:12
autsch .. :stupid:

man sollte sich auch mal merken wenn was einem die leute schreiben .. :10points:

und wie kann ich jetzt im detailbereich seberat nur die letzte seite des berichtes ansteuern ?
geht das überhaupt ?


also das der code nur auf der letzte seite zum tragen kommt ?

Arne Dieckmann
06.05.2004, 20:18
Dann brauchst Du ein (meinetwegen unsichtbares) Steuerelement im Bericht, welches die Seiten zählt. Wenn Du bereits eines hast, das einen Steuerelementinhalt wie =[Seite] & " von " & [Seiten] besitzt, dann langt das schon.

Und dann ungefähr so:

Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
if me.page=me.pages then
Me!pbrDetail.Visible = (Me!txtDSZaehler Mod 5) = 0
end if
End Sub

HaWeLL
06.05.2004, 20:22
dann sollte das Steuerelement aber auch den namen "pages" tragen oder "page" ??

nachtrag

ich verwende nur ein steuerelement "=[seite]"

Arne Dieckmann
06.05.2004, 20:34
Nein. Wie das Steuerelement mit =[Seiten] (wichtig, dass hier die Gesamtseitenanzahl ermittelt wird) heisst, ist egal. Mit Me.Pages wird die Eigenschaft des Berichtes "Seitenanzahl" ausgewertet. Diesen Wert/diese Eigenschaft kann man aber nur auslesen, wenn der Bericht die Seitenanzahl vorher ermittelt hat. "Me.Page" dagegen ermittelt die aktuelle Seite.

HaWeLL
06.05.2004, 21:22
jap geht :top:

nun muss ich nur ein feld haben das mir die DS auf der seite zählt .. dann wäre alles perfekt ;)

Arne Dieckmann
06.05.2004, 21:28
Das macht doch eigentlich das Textfeld "txtDSZaehler"!? S. dazu noch einmal Noubas Beitrag ... :confused: oder donkarls FAQ 5.16 (Link in meiner Signatur).

Sorry - jetzt fällt mir auf, dass mein obiger Satz Blödsinn ist. Du willst also auf jeder Seite wieder mit 1,2,3,4,5 nummerieren?

HaWeLL
06.05.2004, 21:38
na doch .. irgend wie stimmt dein erster satz schon ..
ich will wissen wieviele DS auf der berichtsseite sind ..
und das macht ja der dszaehler von nouba ..

aber der macht das für jeden ds einzeln .. ich will aber das er erst zählt und dann anzeigt .. also in jedem DS die summe aller DS auf der seite .
oder auch im Berichtsfuß das da die summe steht !
aber wichtig ist das er immer die summe anzeigt und nicht hochzählt!

Arne Dieckmann
07.05.2004, 07:33
Ich habe Deinen letzten Beitrag gestern schon nicht verstanden und verstehe ihn heute auch nicht. Vielleicht könntest Du das anhand einiger Beispiele hier in Textform skizzieren? Übrigens sprichst Du von "Summe", meinst Du nicht eher die Anzahl?

HaWeLL
07.05.2004, 15:49
hmm also noch mal,

ein Steuerelement welches mit die anzahl der DS auf einer berichtsseite angibt.

im klartext, wenn ich 12 DS habe und die in den Bericht übergebe dann sind ja auf der 3 seite nur noch 2 DS.
WEIL:
ich habe einen Seitenumbruch nach jeder 5ten Zeile, das heißt:
Seite 1: 5 DS
Seite 2: 5 DS
Seite 3: 2 DS

macht zusammen 12 DS,

ich brauche aber nur die Anzahl der DS auf der letzten Seite (im beispeil sind es 2)

so nun aber jetzt verstanden ;)

Nouba
07.05.2004, 16:34
Du solltest den Mod Operator näher unter die Lupe nehmen.

HaWeLL
07.05.2004, 18:38
Mod Operator ?
bitte im geneure details :confused:

Nouba
07.05.2004, 19:23
Der Mod-Operator gibt den Rest einer Integer-Division zurück. Die VBA-Hilfe sollte weitere Hinweise geben. Im Direktfenster (Strg-G im VBA-Editor) könntest Du einmal den Ausdruck = 12 Mod 5 auswerten lassen - ich dachte allerdings, dass Du Arnes Kode verstanden hättest, der diesen Operator auch verwendet.

HaWeLL
07.05.2004, 20:57
hey danke

geht jetzt alles ;) :top:


danke ;)