PDA

Vollständige Version anzeigen : Auf einzelne Designelemente des Reports zugreifen?


A3XX
23.03.2004, 10:35
Hi

Ich habe vier verschiedene Reports. Vom Design her sind alle dasselbe, lediglich haben sie alle eine Unterschiedliche Query als Recordsource und beim einten Report sollen die Gruppenheader keine neue Seite beginnen (in den anderen Drei schon)

Wie kann ich das genau machen? Also mein Problem ist eben, dass alle von einem Switchboard aus angewählt werden können. Also per Button Click soll der entsprechende Report geöffnet werden. Geht das?

Anne Berg
23.03.2004, 10:48
DoCmd.Openreport "Berichtsname", ...

Oder was genau ist dein Problem???

Arne Dieckmann
23.03.2004, 10:48
Du willst also die 4 Berichte zu einem zusammenfassen und diesen dynamisch verändern?

Dann schau Dir einmal folgende Sachen in der Onlinehilfe an:

RecordSource
Section
ForceNewPage


Wenn Du im Auswahlformular eine globale Variable befüllst, kannst Du die o.g. Eigenschaften dementsprechend setzen.

piano
23.03.2004, 10:56
Hallo
um den Vorschub zu unterbinden (mach es abhängig von einer public Variable)
Private Sub Gruppenkopf0_Format(Cancel As Integer, FormatCount As Integer)
Me.Gruppenkopf0.ForceNewPage = False
End Sub
Für Recordsource:
1. Public Variable BerichtSource anlegen
2. diese mit dem kompletten Abfragestring versorgen: "Select xxx ... "
3. beim Bericht Datenquelle entfernen und statt dessen beim Öffnen
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = BerichtSource
End Sub

eingeben.

Anne Berg
23.03.2004, 11:06
@Arne: Seit wann kannst du hellsehen?? ;)

Arne Dieckmann
23.03.2004, 11:13
OT @Anne: Ist das nicht Grundvoraussetzung, um 80% der "Fragen" hier im Forum zu beantworten? Übrigens hat's piano wohl ähnlich wie ich verstanden. Ich bin also mit meiner Gabe nicht allein. ;)

Anne Berg
23.03.2004, 11:17
OT @Arne: Es ist ja nicht so, dass mir der Gedanke nicht auch gekommen wäre, aber... ;) (Daher meine Nachfrage!)

A3XX
23.03.2004, 11:19
Hm danke arne, bin schon weit gekommen, wasi ch noch wissen muss ist: Überschreiben die globalen Variablen die lokalen Einstellungen? Ich meine damit: Wenn ich im betroffenen Report zwar Einstellungen schon habe zu ForceNewPage etc., werden diese überschrieben wenn ich denen per VBA einen neuen Wert zuweise?

Arne Dieckmann
23.03.2004, 11:21
Irgendwo habe ich das schon einmal so gemacht und da hat es funktioniert (wenn ich mich recht entsinne). Müsste also klappen. Du musst aber beachten, dass die zu gruppierenden Felder (in den Abfragen) gleich benannt sind. Ansonsten wird es problematisch.

A3XX
23.03.2004, 12:20
Hm danke nochma, das einzige problem ist irgendwie dass es die globale Variable nicht erkennt. Also im Deklarationen Teil des Formulars schreibe ich


Public boolRptStaffNewPage As Boolean


Dann vergebe ich auf der Formularseite den Wert(je nachdem True oder False)

und im Bericht schreibe ich


Me!Setion("acGroupLevel0Header").ForceNewPage = boolRptStaffNewPage


Aber die Variable boolRptStaffNewPage hat im Bericht keinen Wert..wieso?!

Arne Dieckmann
23.03.2004, 12:26
Weil eine globale Variable, die wirklich überall "bekannt" sein soll, in einem Standardmodul (unter Module) deklariert werden muss.

Public boolRptStaffNewPage As Boolean


muss also in ein Modul namens "mdlGlobalConstAndVars" (oder wie Du es benennen magst) eingefügt werden. Im Deklarationsteil des Formulares dann die Zeile auf jeden Fall wieder entfernen.


Übrigens heisst es Me.Section und nicht Me!Setion.

A3XX
23.03.2004, 12:34
Sorry, hab das halt noch nie gemacht, wie komm ich in so ein STandardmodul?`Einfach Neu -> Modul Dort einfügen und dann als Standardmodul abspeichern?

Arne Dieckmann
23.03.2004, 12:39
Ja - im Datenbankfenster werden bekanntlich links die Objekttypen aufgelistet. Unter "Makros" findest Du "Module" und dort legst Du einfach ein neues ("Neu" anklicken) Modul an.

A3XX
23.03.2004, 13:03
Ha hat geklappt! Vielen Dank

piano
23.03.2004, 13:06
Hallo
@Arne und @Anne
Genau so hab ich mir das vorgestellt. Allerdings kann ich auch nicht hellsehen - aber jahrelange Erfahrung hilft. Zu diesem Beitrag möchte ich nur sagen, daß ich gar nicht so schnell lesen kann, als Eure Antworten schon publiziert sind! Auch gut - kann ich mir die Denkarbeit mal ersparen.