Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Endlosformular auf bestimmte Anzahl von Datensätzen begrenzen

Begonnen von TomTom2903, Juni 11, 2013, 17:48:44

⏪ vorheriges - nächstes ⏩

TomTom2903

Hallo,
habe eine Frage zu Endlosformularen.

Das Endlosformular basiert auf einer Abfrage.
Ich möchte in diesem Endlosformular allerdings nur eine bestimmte Anzahl von Datensätzen ausgeben. Z.B. 10.
Das Endlosformular ist als Unterfomular in einem Bericht eingebunden und soll die Top 10 Artikelrunner anzeigen.

Die Verknüpfung von Hauptformular zu Unterformular geht über die Kundennummer.
Die Querry kann ich daher nicht mit einem "Select Top10 " Befehl ausstatten, da ich sonst die Falsche Datengrundlage habe.
Also nur die Top 10 Artikel über alle Kunden. Brauche aber ja erstmal alle Artikel mit Kunden.

Die Filterung läuft im Anschluss über die Kundennummer (Bezug Hauptformular - Unterformular)

Daher möchte ich das am Endlosformular fest machen. Das muss doch gehen?!
Hat jmd ne Ahnung wie?  ???

Danke für eure Hilfe
TomTom



MzKlMu

Hallo,
ein Endlosformular als Ufo in einem Bericht, wirklich in einem Bericht?
Da solltest Du besser einen Unterbericht verwenden.

Der Unterbericht (auch das Unterformular) hat ja eine eigene Datenherkunft. Und dort kannst Du doch TOP 10 verwenden. Das ergibt doch keine falsche Datengrundlage, wieso auch?
Hauptbericht und Unterbericht haben ja verschiedene Datenquellen.
Gruß Klaus

database

Hallo,

anknüpfend an MzKlMu's Empfehlung darf ich noch hinzufügen:

Wenn du einen Bericht für die unterschiedliche Darstellung der Daten verwendest, kannst du die Änderung (Alle / Top 10) nur von der Stelle aus
bewerkstelligen von der aus du den Bericht aufrufst. Die Datendarstellung zur Anzeigezeit ändern geht eigentlich nicht.
Daher müsstest du dafür 2 unterschiedliche Aufrufe erstellen bzw. 2 idente Berichte mit unterschiedlichen UFo-Abfragen

Wenn du die Daten jedoch 'nur sehen willst' kannst du das in einer HaFo / UFo - Konstruktion realisiern, indem du standardmäßig die Datenherkunft des UFo so ausrichtest,
dass immer alle Artikel angezeigt werden. Mittels einer Umschaltfläche änderst du die Datenherkunft (SQL) des UFos zur Laufzeit und aktualisierst diese um dann die Top 10 agezeigt zu bekommen.
Nimmst du die Auswahl wieder zurück - durch ein Umschalten selbiger Umschaltfläche - weist du dem UFo wieder die Original-Datenherkunft zu und es werden wieder alle DS angezeigt.
Das Ereignis 'Beim Öffnen' des HaFo richtest du so, dass dem UFo die Original-Datenherkunft standardmäßig immer zugewiesen wird um auch dann den 'Standard' zu erhlten,
wenn das Formular einmal mit der Top 10 - Ansicht geschlossen werden sollte.

ZitatDie Verknüpfung von Hauptformular zu Unterformular geht über die Kundennummer
...und weil das so ist, beziehen sich ALLE Datensätze des UFo auf die, im HaFo aktuell angezeigte Kundennummer und somit auch die Top 10


TomTom2903

Mist!!!
Sorry... Schreibe hier über einen Bericht.

Lese mir morgen eure Antworten nochmal durch und melde mich dann!

Danke schon mal für eure Antworten...

TomTom2903

Hallo,
habe jetzt mal eine Beispieldatenbank hochgeladen.
Ich möchte im Report, für jeden Kunden, maximal 10 Datensätze angezeigt bekommen.

So wie ich das jetzt versuche, wird die Datenbasis auf 10 Stück begrenzt und damit nicht das erwünschte Ergebnis erzielt.  ???

Hat jmd eine Idee wie das funktioniert?

Bin für Hilfe wirklich dankbar.

@Admin: Eigentlich gehört das Thema ins Forum Berichte...  :)

[Anhang gelöscht durch Administrator]

MzKlMu

Hallo,
Du sprichst die ganze Zeit von Unterbericht/Formular und dann verwendest Du keinen.  :o  ???
Dein Vorhaben lässt sich nur mit einem Unterbericht lösen.
Gruß Klaus

TomTom2903

Zitat von: MzKlMu am Juni 12, 2013, 09:48:40
Hallo,
Du sprichst die ganze Zeit von Unterbericht/Formular und dann verwendest Du keinen.  :o  ???
Dein Vorhaben lässt sich nur mit einem Unterbericht lösen.

Hallo,
hatte ja geschrieben das ich mich vertan habe... Also ich meine hier natürlich einen Bericht.

Ich habe das mit einem Unterbericht auch schon zig mal probiert. Komme aber nicht weiter. Immer das falsche Ergebnis.
Habe daher mein Beispiel nochmals neu gemacht.
Vielleicht kannst du mir ja helfen oder hier im Forum jmd anderst!
Bin langsam wirklich ratlos...
Tom

[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

mit TOP 10 klappt das nicht... 


Erzeuge im Detailbereich des UBs ein Textfeld ("txtLfnr") mit Steuerelementinhalt  "=1"  und Laufende Summe auf "über Gruppe".


und verwende zusätzlich diesen Code:


Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
If Me!txtLfnr > 10 Then Cancel = True
End Sub



Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

TomTom2903

Zitat von: DF6GL am Juni 12, 2013, 15:11:43
Hallo,

mit TOP 10 klappt das nicht... 


Erzeuge im Detailbereich des UBs ein Textfeld ("txtLfnr") mit Steuerelementinhalt  "=1"  und Laufende Summe auf "über Gruppe".


und verwende zusätzlich diesen Code:


Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
If Me!txtLfnr > 10 Then Cancel = True
End Sub


Super! Hat funktioniert.
Zur Info @all: Ergebnis sieht man nur in der Seitenansicht und nicht in der Berichtsansicht.

Danke nochmal Franz!