Neuigkeiten:

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

Mobiles Hauptmenü

Navigationsschaltfläche - nächste Datensatzgruppe

Begonnen von gk2612, Mai 14, 2012, 16:01:53

⏪ vorheriges - nächstes ⏩

gk2612

Hallo!

Leider bin ich nach langem Suchen nicht fündig geworden und hoffe ihr könnt mir helfen.

Ich habe ein gebundenes Access-Formular mit Unterformular erstellt. Das Hauptformular ist einspaltig und das Unterformular in der Datenblattansicht. Im Hauptformular sehe ich die Daten des Patienten (Name, Geburtsdatum, Auftragsnr...) und im Unterformular sind die einzelnen Untersuchungen des Patienten aufgelistet.

Möchte ich nun über die Navigationsschaltfläche zur nächsten Auftragsnr., muss ich jede einzelne Untersuchung durchlaufen.

So sieht derzeit mein Unterformular aus:
Die automatische Navigationsschaltfläche springt zum nächsten Datensatz wie folgt (siehe Pfeil):

      Auftragsnr.   Name      Untersuchung
   -> 35                Mayer          A
   -> 35                Mayer          B
   -> 35                Mayer          F
   -> 42                Hausner      B
   -> 42                Hausner      F
   -> 61                Bauer          G
   -> 61                Bauer          B
   -> 61                Bauer          K
   -> 61                Bauer          H

Ich möchte aber eine Navigationsschaltfläche erstellen die zur nächsten Auftragsgruppe springt, wie folgt (siehe Pfeil):

       Auftragsnr.   Name      Untersuchung
   -> 35                Mayer          A
       35                Mayer          B
       35                Mayer          F
   -> 42                Hausner      B
       42                Hausner      F
   -> 61                Bauer          G
       61                Bauer          B
       61                Bauer          K
       61                Bauer          H

Über die Befehlschaltfläche -> Datensatznavigation gibt es nur die Möglichkeit zum ersten, zum letzten, zum nächsten und zum vorherigen Datensatz zu gelangen. Beim Makro "gehe zu Datensatz" wüsst ich nicht was ich in "Offset" eintragen soll.

Bin mit VBA nicht sehr vertraut aber wenn's keine andere Möglichkeit gibt würd ich das auch gern versuchen.

Bin für jeden Tipp dankbar!!   

DF6GL

Hallo,


irgendwie bist Du auf dem falschen Weg.

Das gezeigte Unterform entspricht nicht dieser Aussage:

ZitatIm Hauptformular sehe ich die Daten des Patienten (Name, Geburtsdatum, Auftragsnr...) und im Unterformular sind die einzelnen Untersuchungen des Patienten aufgelistet


Falls das UFO die Untersuchungen ALLER Patienten (und unabhängig von dem  im Hauptform angezeigten Patienten)  zeigt, dann gäbe es die Möglichkeit, die Eigenschaften des UFO-Steuerelementes "Verknüpfen von/nach" auf jeweils die Schlüsselfeldnamen einzustellen, damit die Anzeige im UF mit dem Patienten im HF automatisch synchronisiert wird.





gk2612

Hallo!

Danke für die Antwort.

Sorry, mein Formular sieht so aus:

Hauptformular:

Name: Mayer
Geburtsdatum: xx
Auftragsnr.: 35
etc.

Unterformular:

Auftragsnr.   Name      Untersuchung
   -> 35         Mayer          A
   -> 35         Mayer          B
   -> 35         Mayer          F

Es werden die Untersuchungen einer Auftragsnr. angezeigt. Das heißt, hier in diesem Bsp. müsste ich die Navigationstaste 4x betätigen um zur nächsten Auftragsnr. zu gelangen.

Vielen Dank!

DF6GL

Hallo,
wenn die Auftragsnummer mit dem Namen assoziiert ist, (wie in Deinem Beispiel zu sehen ist) ,dann muss im Hauptform der entspr. Name ausgewählt werden.

Beaker s.a.

Hallo gk,
Luftcode:
Private Sub DeinButton_Click
    Dim lANR as Long
    Dim rst As DAO.Recordset

    Set rst = Me.RecordsetClone

    lANR=Me!txtANR
    rst.FindFirst "ANR > " & lANR
    If rstNoMatch = False Then
        MeBookmark = rst.Bookmark
    Else
        MsgBox "Kein weiterer Auftrag gefunden!"
    End If

    set rst = Nothing

End Sub

Damit findest Du aber nur den nächsten Auftrag des
gleichen Kunden (HFo).
hth
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

gk2612

Danke für die Antworten.

Ekkehart, ich werde deinen Code studieren  :).

Nochmal zur Erklärung:

Ich bekomme laufend eine fertige Excelltabelle von allen Patienten eines bestimmten Zeitraumes. Diese improtiere ich ins Access.

Die Datensätze sind nach Untersuchungen aufgeschlüsselt:
1 Untersuchung=1 Datensatz

Die Accesstabelle sieht dann so aus:

ID   Auftragsnr.   Name      Untersuchung
1           35         Mayer          A
2            35         Mayer          B
3            35         Mayer          F
4            42         Hausner       B
5            42         Hausner       F

Wie in diesem Bsp. gehören 3 Untersuchungen=3 Datensätze zu 1 Auftragsnr.. (1 Patient kann auch mehrere Auftragsnr. haben)

Das HFM und UFM stammen aus der gleichen Tabelle nur, dass das HFM einspaltig ist und das UFM in der Datenblattansicht. Das HFM und das UFM haben beide jeweils eine Navigationsschaltfläche und tun das Selbe: sie springen in den nächsten Datensatz.

Daher muss ich auch im HFM die Datensatznavigationstaste öfters betätigen um zur nächsten (nicht der selben) Auftragsnr. zu gelangen.


Beaker s.a.

Hallo GK,
Dann verknüpfe das UFo mit dem HFo über
das Namensfeld. Dann siehst Du im UFo immer
alle Aufträge eines Kunden.
Falls Du damit nicht weiterkommst, poste die
DS-Herkunft von HFo und UFo.
Das sollten zwei Abfragen auf die Tabelle sein;
gibt ja nur eine, wenn ich das richtig verstanden
habe.
Da kommen dann aber auch Zweifel am Datenmodell
auf, da es mindestens zwei Tabellen geben sollte; -
eine tblPatienten und eine tblAuftraege.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

gk2612

Hallo und vielen Dank für die vielen Antworten! :)
Ich glaube, dass wir im Moment noch aneinander vorbei reden und versuche mein (kompliziertes) problem nochmals darzustellen. danke für eure geduld!
ich habe eine tabelle mit patientennamen und untersuchungen. wenn ein patient mehrere untersuchungen hat so schaut das ganze so aus:
Max Mustermann         Untersuchung A
Max Mustermann         Untersuchung B
etc.

ich "gruppiere" jetzt im hauptformular nach dem patientennamen und im UF werden die Untersuchungen angezeigt.
ich möchte nun im HF eine Schaltfläche, damit ich zum nächsten Patienten springen kann. Leider funktioniert die navigation mit "Gehe zu" etc nicht, da er immer nur zur nächsten Untersuchung und nicht zum nächsten Patienten springt.
Bitte nochmal um euere hilfe....vielleicht gibts da eine einfache (evtl über vba) lösung
danke und lg :) ::) :-*

MzKlMu

#8
Hallo,
du darfts im Hafo nur die Patientendaten anzeigen, nicht die Untersuchungen. Die Datenherkunft des Hafo enthält also nur die Tabelle des Patienten. Hier dürfen die Untersuchungen nicht in die Abfrage. Die Datenherkunft des Hafo sollte/braucht nicht gruppiert sein.
Ins Ufo kommen nur die Untersuchungen verknüpft über die Schlüsselfelder. Jetzt kannst Du mit dem Button im Hafo von Patient zu Patient springen, ohne irgendwelche Probleme.

Oder hast Du gar nur eine Tabelle für die Patientendaten und die Untersucheungen?
Das wäre aber ein grober Strukturfehler.
Gruß Klaus

gk2612

Hallo!

Im Hauptformular werden nur die Patientendaten angezeigt und im Unterformular die Untersuchungen. Jedoch stammen HFM und UFM aus einer Tabelle (habe leider nur die eine Tabelle!).

Danke und LG

MzKlMu

Hallo,
eine Tabelle ist wie gesagt ein grober Strukturfehler.
Baue die DB um, mindestens 2 Tabellen, Patienten und Untersuchungen. In der Tabelle für die Untersuchungen muss ein Fremdschlüsselfeld zum Patienten.
Dann lässt sich Dein Problem ohne eine einzige Zeile zu programmieren mit den Standardfunktionen von Access lösen.

Gibt es ein eindeutiges Merkmal für einen Patienten (Patientnr etc. z.B.) ?
Gruß Klaus