Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Hafbier am April 19, 2017, 15:13:18

Titel: aus unterformular nur die letzten 5 Datensätze anzeigen
Beitrag von: Hafbier am April 19, 2017, 15:13:18
Hallo Zusammen
Ich möchte in einem Unterformular nur die letzten 5 Datensätze angezeigt haben. Haupt und Unterformular werden durch 2 getrennte Tabellen befüllte die über "Beziehungen" verknüpft sind. Habe schon verschieden VBA Codes ausprobiert. War aber leider nicht erfolgreich. Kann einer von Euch helfen??
MfG
Hafbier
Titel: Re: aus unterformular nur die letzten 5 Datensätze anzeigen
Beitrag von: MzKlMu am April 19, 2017, 15:29:29
Hallo,
dazu braucht es kein VBA. Erstelle eine Abfrage für das Ufo, sortiere die Abfrage so, dass die letzten 5 Datensätze oben sind und stelle in den Abfrageeigenschaften die Eigenschaft Spitzenwerte auf 5 ein.
Als SQL Select Top 5 .....
Titel: Re: aus unterformular nur die letzten 5 Datensätze anzeigen
Beitrag von: Hafbier am April 19, 2017, 16:03:37
Vielen Dank für die schnelle ANtwort!
Leider funktioniert es nicht so, wie ich es mir vorstelle. Die beiden Tabellen sind in Beziehung 1-N gesetzt. Bei der Abfrage zeigt er mir zwar die letzten 5 datensätze der Unterformlartabelle an, ich möchte aber, das mir die letzten 5 Datensätze der Untertabelle zu jedem in der Haupttabelle aufgeführten Datensatz zeigt.
MfG
Hafbier

Titel: Re: aus unterformular nur die letzten 5 Datensätze anzeigen
Beitrag von: DF6GL am April 19, 2017, 18:11:58
Hallo,

entferne (leere) die Einträge in den  UFO-Steuerelement-Eigenschaften "Verknüpfen von/nach"


In der Form-Current-Ereignisprozedur des Hauptforms kommt zu stehen:

ZitatSub Form_Current()
Me!Ufo_Steuerelementname.Form.Recordsource = "Select top 5 * from Tabelle2 where Tabelle2.Tab1ID_f = " & Me!Tab1ID
End Sub
Titel: Re: aus unterformular nur die letzten 5 Datensätze anzeigen
Beitrag von: Beaker s.a. am April 19, 2017, 23:17:36
Hallo Franz,
Davon abgesehen, dass ich, ohne es jetzt noch testen zu wollen, glaube,
dass deine Abfrage das gleiche anzeigt wie eine Verknüpfung über die ID, will der TS etwas anderes
Zitatdas mir die letzten 5 Datensätze der Untertabelle zu jedem in der Haupttabelle aufgeführten Datensatz zeigt.
Wenn ich auch den Sinn nicht verstehe würde ich es so interpretieren, dass er
im UFo, unabhängig vom DS im HFo, immer alle Top 5 sehen will.
Mein SQL aus der hohlen Hand ist zwar nicht besonders, aber ich würde es
damit versuchen (Luftcode)

SELECT TOP 5 *
FROM Tabelle2 AS T2
WHERE T2.ID_F IN
(SELECT T1.ID FROM Tabelle1 AS T1)
ORDER BY T2.ID_F DESC

(Korrektur würde ich als Lerneffekt gerne lesen)

gruss ekkehard
Titel: Re: aus unterformular nur die letzten 5 Datensätze anzeigen
Beitrag von: DF6GL am April 20, 2017, 08:32:14
Hallo,

ich denke nicht, dass es das Gleiche ist..

Die Verknüpfungs-Felder  filtern (begrenzen) den gesamten (durch die Abfrage gelieferten) UFO-Recordset, der aus allen Tabellen-DS besteht, auf die mit eben den akt. Verknüpfungsfeldwert. D. H. , es wird grundsätzlich ohne Filterung (per SQL) auf die ersten 5 DS abgefragt und danach (im Formular)  gefiltert.  So kann es passieren, dass bei statischer Datenherkunft (Select top 5 from Tabelle) gerade  keine zum HFO-DS  passenden DS vorhanden sind.

Die Zuweisung des SQL-Strings dagegen filtert zuerst und begrenzt dann auf (hier)  5 Datensätze.

dass er im UFo, unabhängig vom DS im HFo, immer alle Top 5 sehen will.

Dies würde ich so nicht interpretieren, weil er ja von HFO/UFO und 1-n Tabellenbeziehung redet und sich auf einen HFO-Datensatz bezieht.


Unklar ist es allerdings schon... ;-) und auch sinnlich nicht ganz zu verstehen, weil keine für solche Lösung erforderliche Sortierung angegeben ist.

Mal sehen, was der TS dazu noch sagt.
Titel: Re: aus unterformular nur die letzten 5 Datensätze anzeigen
Beitrag von: Beaker s.a. am April 20, 2017, 13:38:42
Hallo Franz,
Zitatich denke nicht, dass es das Gleiche ist..
Kann ich anhand deiner Erklärung nachvollziehen, und da muss ich dir
natürlich Recht geben.
gruss ekkehard