Leere felder im Unterbericht ausblenden

Moderator: ModerationP

Leere felder im Unterbericht ausblenden

Beitragvon Pantax » 08. Mär 2021, 10:36

Hallo liebe Leute,

ich bin recht neu was Access betrifft und muss nun eine schon existierende DB aktualisieren damit unsere Kollegen diese nutzen können. Ich bin schon ganz gut vorangekommen. Ich habe aber noch eine Aufgabenstellung wo ich mir nun echt den Kopf dran zerbreche. Leider finde ich nur sporadische Lösungsansätze im Netz. AUs dem Grund nun mal mein Anliegen hier, mit der Hoffnung das mir geholfen werden kann.

Also es gibt eine Datenbank in der wir Lebensläufe speichern wollen. Es gibt einen Hauptbe-richt indem einige Unterberichte existieren. Über den Hauptbericht werden die Grunddaten der Kunden abgerufen. In den Unterberichten Daten wie Ausbildung, Beruflicher Werdegang usw.

Nun kann es durchaus vorkommen, dass in einem Unterbericht einige Felder leer sind. Da sie entweder nicht ausgefüllt wurden oder wir einfach keine Daten dafür haben. Was ich nun gerne hätte wäre, dass diese leeren Felder nicht im Bericht erscheinen. Nur wenn diese Fel-der im Unterbericht gefüllt sind sollen diese erscheinen.

1. Es kann sein das der gesamte Unterbericht Beruflicher Wredegang nicht ausgefüllt wurde und dadurch nicht erscheinen soll
2. Es kann aber auch vorkommen, dass im Unterbericht Beruflicher Werdegang Daten vor-handen sind, jedoch nicht alle, dann soll Beruflicher Werdegang angedruckt werden aber halt nur die befüllten Felder.

Beispiel: https://ibb.co/Vvy2f8j

Vielen Dank schon einmal.

Liebe Grüße
Pantax
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 17
Registriert: 08. Mär 2021, 10:17

Re: Leere felder im Unterbericht ausblenden

Beitragvon KlausMz » 08. Mär 2021, 11:55

Hallo,
ich denke, da sind bereits grundlegende Fehler im Aufbau gemacht worden.

Was ist z.B. der Unterschied zwischen den A_ Tabellen und den F_ Tabellen, bzw. der Unterschied zwischen A_, B_, F_ ?

Dein Vorhaben dürfte ohnehin mit einem enormen Programmieraufwand verbunden sein , denn selbst wenn Du die Felder ausblendest, rücken die nachfolgenden felder nicht automatsch hoch, sondern das musst Du programmieren. Dazu musst Du aber wissen, wie viele Felder sind leer, damit die nachfolgenden Felder versetzt werden können. Das muss dann für jedes Feld gemacht werden.

Zeige mal ein Bild des Beziehungsfensters.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 40104
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: Leere felder im Unterbericht ausblenden

Beitragvon Gast » 08. Mär 2021, 14:08

Hallo Klaus,

inwiefern sind im Aufbau fehler gemacht worden? Also kurz zur Erläuterung: A= Abfrage, T= Tabelle, F= Formular und B= Bericht. Hat sich hier im Hause einfach so etabliert die Datenbanken so auf zu bauen. Somit weiß jeder was gemeint ist.

So dann noch ein paar weitere Informationen: Der Hauptbericht wird über die T_Kunden Tabelle aufgerufen. Die Unterberichte bauen sich anhand einer Abfrage auf.

Kann man denn nicht einfach in der Abfrage dirket sagen das ich keine leeren Felder haben möchte? Oder das irgendwo im VBA Code verankern?

Anbei das gewünschtre Beziehungen Fenster.

https://ibb.co/m8MnhJf

LG
Gast
 

Re: Leere felder im Unterbericht ausblenden

Beitragvon KlausMz » 08. Mär 2021, 14:18

Hallo,
dem Beziehungsbild nach kann es doch gar keine leeren Felder geben.
Gib mal ein Beispiel.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 40104
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: Leere felder im Unterbericht ausblenden

Beitragvon Pantax » 08. Mär 2021, 15:20

Hallo Klaus,

verstehe ich grad irgendwie nicht. :?: Es kann doch vorkommen das in der Tabelle T_Studium das Feld "Note" nicht gefüllt ist. Wenn jetzt meine Abfrage A_Studium die Daten zusammen sucht und das dann über den Unterbericht ausgibt, habe ich dort stehen Note:

Aber leider nix mehr da das Feld Note bei Meyer nicht ausgefüllt wurde. Was ja auch vollkommen OK ist. Nur hätte ich dann gerne in meinem Bericht wenn es leere Felder gibt, dass diese dann auch nicht angezeigt werden. Das kann doch eigentlich nicht so schwierig sein oder?

LG Pantax
Pantax
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 17
Registriert: 08. Mär 2021, 10:17

Re: Leere felder im Unterbericht ausblenden

Beitragvon KlausMz » 08. Mär 2021, 15:26

Hallo,
Das kann doch eigentlich nicht so schwierig sein oder?
doch ist es, vieleicht nicht komplziert, aber aufwendig.

Wenn nachfolgende Felder nicht aufrücken/nachrücken sollen, kannst Du im Ereignis "Beim Formatieren" des Berichts, das Feld wie folgt ausblenden:
Code: Alles auswählen
Me.Feldname.Visble = Not IsNull(Me.Feldname)

Aber wie gesagt, der Platz ist trotzdem belegt.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 40104
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: Leere felder im Unterbericht ausblenden

Beitragvon Beaker s.a. » 09. Mär 2021, 16:23

Hallo,
Sorry, aber stimmt doch wieder das Datenmodell hinten und vorne nicht.
Z.B. seit wann ist ein Kunde eine Eigenschaft einer Sprache? Das Gleiche bei Beruf,
und wahrscheinlich auch bei einigen der anderen Tabellen.

gruss ekkehard
Ereignisorientierte Programmierung:
Alles, was geschieht, geschieht.
Alles, was während seines Geschehens etwas anderes geschehen
läßt, läßt etwas anderes geschehen.
Alles, was sich selbst im Zuge seines Geschehens erneut geschehen
läßt, geschieht erneut.
Beaker s.a.
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1136
Registriert: 14. Jul 2012, 21:56
Wohnort: Bremen

Re: Leere felder im Unterbericht ausblenden

Beitragvon Pantax » 07. Mai 2021, 09:29

Hallo Ekkehard,

wie würde man denn die Tabelle Kunde mit der Sprache und dem Beruf besser verknüpfen?

LG Pantax
Pantax
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 17
Registriert: 08. Mär 2021, 10:17

Re: Leere felder im Unterbericht ausblenden

Beitragvon Bitsqueezer » 07. Mai 2021, 13:43

Hallo,

wenn man viele variable Attribute (wie "Note") zu einem Datenbankobjekt (wie "Person") braucht, dann kann man sich auch mit einer Key/Value-Tabelle behelfen.

Dabei hat man eine Key-Tabelle, die quasi den Feldnamen definiert, also hier etwa "Note" enthält. Die Key-Tabelle hat natürlich, wie immer, eine ID-Spalte als PK.

Die KeyValue-Tabelle verwendet dann die ID des zugehörigen Objektes (also hier etwa ID_Person), die ID des Keys (ID_Key --> z.B. 57 = "Note") und eine groß genug dimensionierte Textspalte für einen Wert. Wenn man es noch etwas besser absichern will, enthält die Key-Tabelle auch noch eine ID für die Zuweisung eines Datentyps aus einer Datentyptabelle, um Eingabefelder entsprechend validieren zu können.

Im Bericht ist es dann supereinfach: Ein Endlosbericht, der den Text des Keys wiedergibt (also die Beschriftung des Feldes sozusagen) und den Wert. Die Abfrage braucht dann nur die Datensätze zu liefern, bei denen das Value-Feld nicht NULL ist, muß sich selbst nicht darum kümmern, um welchen Key es geht. Damit erscheinen im Bericht automatisch nur noch die gefüllten Keys.

Je nach Bedarf kann man die Key-Tabelle natürlich auch noch mit einer GruppenID aus einer Gruppentabelle gruppieren, um z.B. eine Gruppenüberschrift im Bericht ausgeben zu können und die Keys nach Gruppe ausgeben zu können. (z.B. Gruppe "Noten Naturwissenschaften" für "Note Physik", "Note Biologie", "Note Chemie"... oder Gruppe "Vergangene Projekte" für "Projektname", "Zeitraum von", "Zeitraum bis", "Durchgeführte Tätigkeiten"... usw.)

Vorteile der Methode sind: performant in Abfragen / verwendbar in Statistik-Abfragen (z.B. alle Personen mit "Note Physik" < 3) / einfach per Stammdatentabelle von Endbenutzern selbst erweiterbar
Nachteil ist natürlich, daß man als Programmierer mehr Aufwand für Eingabevalidierung betreiben muß. Aber auch hier kann man viel automatisieren, beispielsweise durch Verwendung von Validierungsformeln, die man als Feld in der Datentyp-Tabelle hinterlegt (für allgemeine Prüfung wie "darf nur eine Zahl ohne Komma sein") oder in der Key-Tabelle (für "nur Jahreszahlen zwischen 1980 und 2010", also spezifisch für den Key). Auch hier könnte die Validierungsformel vom User eingegeben werden.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Leere felder im Unterbericht ausblenden

Beitragvon Marco PB » 11. Mai 2021, 14:58

Von der Datenstruktur abgesehen, jedes Feld in einem Bericht hat die Eigenschaft "Verkleinerbar". Steht sie auf Ja, so wird das Feld im Bericht nicht angezeigt wenn es leer bzw. null ist.
Das funktioniert nicht immer wie erwartet, speziell darf in der gleichen Zeile kein ungebundenes Label oder ein anderes, nicht leeres Feld stehen. Aber sonst kann man das wunderbar benutzen, zB. in der Adresse eines Briefes: wenn das Feld Strasse2, wie fast immer, leer ist, so wird die Zeile unterdrückt und der Rest der Adresse nach oben gerückt.

Für ganze Berichte und Unterberichte gibt es das Ereignis Bei_Ohne_Daten dh. sub Report_NoData(Cancel As Integer), da kann man die Ausgabe unterdrücken, wenn alle Felder leer wären, weil gar kein passender Datensatz gefunden wurde.

Und auch in Bereichen von Berichten kann man im Ereignis BeimFormatieren über 'Cancel' gegebenenfalls die Ausgabe unterdrücken.
Marco PB
 

Re: Leere felder im Unterbericht ausblenden

Beitragvon KlausMz » 11. Mai 2021, 15:49

Hallo,
@Marco PB
damit werden aber nachfolgende Felder nicht auf den frei werden Platz nachrücken, was er ja wollte.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 40104
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: Leere felder im Unterbericht ausblenden

Beitragvon Marco PB » 11. Mai 2021, 17:16

Ich kann sein Beispiel nicht sehen, und du hast recht; wenn in der gleichen Zeile mehrere Felder stehen, werden sie nicht nach links eingerückt, und die Zeile wird nur ganz unterdrückt, wenn alle Felder leer sind, das habe ich auch geschrieben.
Ich hatte allerdings den Eindruck, dass seine Unterberichte eher als einspaltige Liste einen Sinn ergeben, so zB. Beruflicher Werdegang, dann würde Verkleinerbar (in Feld UND im Bereich) genau das Gewünschte tun.

Auch für die Teilaufgabe aus seine Anfrage, die Bezeichnungen verschwinden zu lassen, wenn das dazugehöriges Feld leer ist, wird so erledigt: Bezeichnungsfelder, die den Textfeldern zugeordnet sind, werden auch ausgeblendet, wenn ihr Textfeld ausgeblendet ist, müssen aber auch als Verkleinerbar stehen.

Eine Berichtszeile dagegen, die aus mehreren Spalten besteht, wo man aber die leeren Spalten unterdrücken möchte, das sagt mir nicht viel. Aber wie gesagt, ich kann sein Beispiel nicht sehen.
Er könnte eventuell aus allen Felder einer Zeile eine komma- oder blankgetrennte Liste bilden, und dabei die leeren Spalten unterdrücken, aber wahrscheinlich ist es beim Bericht zu spät, er soll es in einer früheren Phase tun.
Ich bezweifle jedenfalls, dass er die Eigenschaft Verkleinerbar vorher überhaupt kannte, so war meine Beitrag vielleicht doch nicht ganz nutzlos.
Marco PB
 

Re: Leere felder im Unterbericht ausblenden

Beitragvon Pantax » 31. Mai 2021, 14:52

Hallo Leute,

entschuldigt die verspätete Antwort. ich war nur derzeit leider mit anderen Themen beschäftigt. Nun muss ich mich aber wieder dem Bericht widmen. Ich habe jetzt noch einmal ein Screenshot beigelegt. Ich verstehe einfach nicht warum es nicht aufrückt. Alle Felder sind auf "Verkleinerbar = Ja" gestellt.

https://ibb.co/YTKC0Kw

Hier der Code:
Code: Alles auswählen
Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
Me!vonbis1.Visible = Nz(Me!vonbis1, 0) > 0
Me!Taetigkeit.Visible = Nz(Me!Taetigkeit, 0) > 0
Me!Text38.Visible = Nz(Me!Text38, 0) > 0
Me!Aufgabenbeschreibung1.Visible = Nz(Me!Aufgabenbeschreibung1, 0) > 0
Me!Aufgabenbeschreibung2.Visible = Nz(Me!Aufgabenbeschreibung2, 0) > 0
Me!Aufgabenbeschreibung3.Visible = Nz(Me!Aufgabenbeschreibung3, 0) > 0
End Sub


Liebe Grüße
Pantax
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 17
Registriert: 08. Mär 2021, 10:17

Re: Leere felder im Unterbericht ausblenden

Beitragvon KlausMz » 31. Mai 2021, 15:20

Hallo,
Ich verstehe einfach nicht warum es nicht aufrückt.
wie bereits mehrfach gesagt, da rückt nix auf.
Das musst Du selbst machen/programmieren, indem Du jedes einzelne Feld um einen bestimmten Betrag hochschiebst.
Der Befehl dazu heißt "Move" die Maßangabe muss in Twips erfolgen, 567 Twips = 1cm

Und wie auch schon mal gesagt stimmt das Datenmodell nicht.
Aufgabenbeschreibung1, Aufgabenbeschreibung2, Aufgabenbeschreibung3 sind Aufzählungsfelder die in einer Datenbank fehl am Platz sind.
Hier fehlen noch Tabellen. Wenn das Datenmodell passt, gibt es keine leeren Felder mehr, mit ziemlicher Sicherheit.
Zeige mal ein Bild des Beziehungsfensters.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 40104
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: Leere felder im Unterbericht ausblenden

Beitragvon Gast » 04. Jun 2021, 08:01

Hallo,

ich stelle mir grad die Frage ob ich nicht dirket in der Abfrage schon leere Felder aussortieren kann? Wie würde das dann heißen müssen?

LG
Gast
 

Nächste

Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste