Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Matthias_001 am April 03, 2021, 08:32:15

Titel: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: Matthias_001 am April 03, 2021, 08:32:15
Einen Guten Morgen für Euch,

ich mag Euch um Rat fragen:

In einem Endlosformular zeige ich Datensätze an die über eine Abfrage gefiltert und nach verschiedenen Kriterien sortiert sind.
In diesen Datensätzen gibt jeweils ein Feld Kalenderwoche.
Ich möchte zur besseren Übersicht nun am Ende jeder Kalenderwoche, also den letzten Datensatz der Kalenderwoche unterstreichen/ mit einer zusätzlichen Linie kenntlich machen....
Im Grund muss also erkannt werden, dass der nachfolgende Datensatz eine anderen Eintrag in Kalenderwoche hat...
Habe nun die ganze Nacht recherchiert, probiert,... und nichts passendes gefunden.

Ich freue mich auf Euren Input, herzlichen Dank.
Titel: Re: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: DF6GL am April 03, 2021, 09:11:54
Hallo,

in einem Endlosform dürfte das nicht machbar sein..


In einem Bericht könnte nach dem Datum (Kalenderwoche) gruppiert und im Gruppenfuß eine Trennlinie eingefügt werden.
Titel: Re: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: Matthias_001 am April 03, 2021, 09:25:43
Hallo,

... hatte irgendwie gehofft das es doch geht.
Trotzdem Vielen Dank.
Titel: Re: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: Maxel am April 03, 2021, 09:39:41
Mit der Bedingten Formatierung könnte man die Datensätze wechselweise wochenabhängig einfärben.
Titel: Re: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: Matthias_001 am April 03, 2021, 09:48:40
Bedingte Formatierung - wechselseitig einfärben:
Wie bekomme ich das bewerkstelligt?!

DF6GL
Gibt es keinen Ansatz die Datensätze über Berechnungen schon in der Abfrage zu "indizieren" oder sie über einen Zwischenschritt in der sortierten Form in eine temporäre Tabelle zu schreiben?!
... und dann eben über bedingte Formatierung, in Abhängigkeit des "indizierten Feldes" Linie über Farbe oder so sichtbar/ unsichtbar machen?!
Das sind so Themen über die ich bis dato gegrübelt habe
Titel: Re: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: andyfau am April 03, 2021, 09:49:20
Ungefähr so....
Zwischenablage01.jpg

Voraussetzung, die Tabelle ist richtig sortiert und man schafft es ein Gruppierungsfeld (hier zB. KW) zu füllen
oder leer zu lassen, wenn der Strich nicht rot sein soll. Besser wäre es noch ein extra Gruppierungsfeld in die Tabelle einzufügen. Denn die KW soll ja wohl in allen Sätzen angezeigt werden und das Gruppierungsfeld kann man dann ausblenden.
Titel: Re: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: andyfau am April 03, 2021, 09:53:51
Nachtrag:Zwischenablage02.jpg
Titel: Re: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: Matthias_001 am April 03, 2021, 11:08:36
Hallo AndyFau,

so richtig komme ich bei Deinem Vorschlag nicht mit.

Also, um eine korrekte Sortierung zu haben müssten die Daten doch in eine temporäre Tabelle geschrieben werden ?!
Wie schaffe ich es dann mittels Gruppierung nur den Datensatz mit dem jeweils letzten (oder auch ersten) gleichen Kalendereintrag zu markieren/ indizieren... ein zusätzliche Spalte macht sicher Sinn.
Titel: Re: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: ebs17 am April 03, 2021, 11:51:43
Zitateine Abfrage gefiltert und nach verschiedenen Kriterien sortiert
Man könnte die Abfrage um eine  laufende Nummerierung pro Kalenderwoche ergänzen. Aus dieser laufenden Nummer könnte man die jeweils höchste auswerten und für eine bedingte Formatierung heranziehen.
Die jeweils erste (=> 1) wäre selbstredend einfacher, aber mit Vorgabe des Designs und einem "irgendwie" steht ja Einfachheit nicht im Vordergrund.
Titel: Re: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: Matthias_001 am April 03, 2021, 13:37:22
... kannst Du mir das ein wenig ,,konkreter aufbereiten"?
Titel: Re: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: andyfau am April 03, 2021, 14:20:34

Hallo

Wenn das Formular nur als Anzeigeformular genutzt wird und die Tabelle korrekt sortiert ist, kann über eine Zwischentabelle gearbeitet werden, die an der richtigen Stelle jeweils das Gruppenwechselkennzeichen beinhaltet. (Aber bei "nur Anzeige" tut es ein Report auch, wo man bequem gruppieren kann.)
Sollen im Formular auch Änderungen an den Datensätzen vorgenommen werden, muss aus der Zwischentabelle zurück synchronisiert werden.
Bleibt die Frage, ob der Nutzen, einen Strich bei Gruppenwechsel zur besseren Übersicht in ein Formular einzubauen, den Aufwand rechtfertigt.
Gehen tut's jedenfalls.

Hier noch ein Ansatz über VBA die Tabelle in der jeweils ersten Gruppenzeile mit eine Kennzeichen zu versorgen,
um es dann über "bedingte Formatierung" später im Formular abzufragen.

Public Sub fuellGrpMerkmal()
 
 Dim db As Database
 Dim t7 As Recordset
 Dim t7a As Recordset
 Dim KWMerker As String
 
 Set db = CurrentDb
 Set t7 = db.OpenRecordset("Tabelle7")
    'Tabelle7 muss richtig sortiert sein,
    'ansonsten entsprechende Abfrage als Eingabe-Recordset verwenden.
   
 Set t7a = db.OpenRecordset("Tabelle7a")
    'Tabelle7a kann dann als Datenquelle für ein Anzeige!-Formular verwendet werden.
    'Sollen jedoch über das Formular Daten geändert werden, muss dies natürlich in der Ursprungstabelle
     'geschehen.

 t7.MoveFirst
 If t7.RecordCount = 0 Then
    MsgBox ("Eingabetabelle ist leer.")
    Exit Sub
 End If
 If t7a.RecordCount > 0 Then
    MsgBox ("Ausgabetabelle ist nicht leer. Löschabfrage vorschalten")
    Exit Sub
 End If

 Do While Not t7.EOF
      t7a.AddNew
      t7a!Satzname = t7!Satzname
      t7a!Satzinhalt = t7!Satzinhalt
      t7a!KW = t7!KW
      If KWMerker <> t7!KW Then
         t7a!KennzeichenGruppe = "xxx"
      Else
         t7a!KennzeichenGruppe = Null
      End If
      t7a.Update
      KWMerker = t7!KW
     
      t7.MoveNext
 Loop

End Sub
Titel: Re: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: crystal am April 03, 2021, 15:02:11
Hallo,
folgende Überlegung:
1. die Tabelle ist nach KW sortiert (evtl. über eine vorgeschaltete Abfrage), also etwa "Select ... from qryVorsortierung ..."
2. in der Abfrage könnte man nun ein Feld einbauen, dass den Wechsel der KW markiert, z. B. "Marker: SetzeMarker(KW)"
3. und das ginge doch mit einer globalen Funktion, die sich die Vergleichs-KW als STATIC merkt, etwa so:
public function SetzeMarker(intKW as integer) as string
static intKWCheck as integer

   if intKWCheck <> intKW or intKW = 0 then
      intKWCheck = intKW
      SetzeMarker = "xxx"
   else
      SetzeMarker = ""
   endif

end function

4. Das Feld "Marker" kann dann im UFo für die bedingte Formatierung benutzt werden.
5. Problem könnte nur sein, dass die statische Variable eben erhalten bleibt. Also müsste es die Möglichkeit geben, sie explizit auf einen Wert zu initialisieren, z. B. mit "strDummy = SetzeMarker(0)" im Load-Event des Haupt-Formulars, in dem sich das UFo befindet.
6. Könnte sein, dass die KW als String übergeben werden muss; dann muss die Funktion entspr. angepasst werden...

Bitte probieren!

Gruß,
crystal
Titel: Re: Datensätze in Endlosformular nach Abhängigkeiten hervorheben/ unterstreichen
Beitrag von: Matthias_001 am April 03, 2021, 18:56:50
... ich sage für den Moment: Danke! für die Ideen und die Zuarbeit.

Ich muss das alles mal für mich "sortieren", dachte anfänglich nicht, dass es so komplex sein kann.
Ist es aber wohl - also stellt sich tatsächliche die Frage nach dem Aufwand/ Nutzen...

Gerne schreibe ich dann wenn ich weiter bin.