Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datensätze in einer bestimmten Reihenfolge anzeigen.

Begonnen von Accessiv, November 02, 2012, 10:42:24

⏪ vorheriges - nächstes ⏩

Accessiv

Hallo,

als neues Mitglied in diesem Forum möchte ich mich kurz vorstellen und gleich um Hilfe für ein kleines Problem bitten:

Ich beschäftige mich seit einiger Zeit mit Access 2010 als Hobby, weil ich die Möglichkeiten von Datenbanken zur Bearbeitung von Massendaten einfach interessant finde. Nach dem Studium diverser Literatur zu Access 2010 glaube ich das Programm und das grundsätzliche Vorgehen beim Entwurf einer DB ganz gut zu verstehen. VBA beherrsche ich allerdings nicht. Was mir noch fehlt ist Erfahrung, die ich durch die Lösung kleiner selbstgestellter Probleme zu erlangen hoffe. Vielleicht kann mir dieses Forum dabei helfen.

Hier nun mein erstes kleines Problem.

In einer DB sollen Aufgaben in einer Tabelle gespeichert werden. Die Aufgaben müssen in einer bestimmten Reihenfolge abgearbeitet werden, damit das Gesamtprojekt (das aus den einzelnen Aufgaben besteht) erfolgreich abgeschlossen werden kann. Da man bei umfangreicheren Projekten nicht auf Anhieb die richtige Reihenfolge der Aufgaben erkennt, soll es möglich sein, eine Aufgabe in der Aufgabentabelle - besser in einem entsprechenden Formular - an eine andere Position zu verschieben. Meine Lösung sieht bisher so aus:

Tabelle tblAufgaben
aufID   aufPrio   aufBeschreibung
1         10          Aufgabe 1
2         20          Aufgabe 2
3         30          Aufgabe 3

usw.
Wenn nun z. B. Aufgabe 3 an die zweite Priorität gesetzt werden soll. Wird aufPrio von 30 auf den Wert 15 geändert und die Tabelle/Abfrage anschließend neu nach aufPrio aufsteigend sortiert.

Das funktioniert, ist aber nicht sehr schön, wenig Benutzerfreundlich und die Anzahl der Verschiebeaktionen ist begrenzt. Außerdem sieht die Spalte aufPrio nach einiger Zeit sehr unübersichtlich aus.

Kennt jemand eine bessere/schönere Lösung?

Vielen Dank im Voraus.

database

#1
Hallo und willkommen im Forum,

Zitat...  in einem entsprechenden Formular  ...

hier hast du dir die Antwort ja schon selbst gegeben!
Wenn das Formular z.B. seine Daten aus einer Abfrage bezieht, wird die Sortierung immer richtig sein, wenn du nach der Änderung eines Datensatzes / einer Priorität in Formularereignis 'Beim Anzeigen' oder 'Nach Aktualisierung' ein Requery einbaust.

Also:

Private Sub Form_Current()
   Me.Requery
End Sub

bzw.

Private Sub Form_AfterUpdate()
   Me.Requery
End Sub



'Beim Anzeigen' bewirkt eine Neusortierung auch bei einem Datensatzwechsel, 'Nach Aktualisierung' sortiert die Daten neu nachdem du den geänderten Datensatz verlassen hast.

In welcher Reihenfolge die Datensätze in der TABELLE danach stehen ist vollkommen egal, die Darstellung und Bearbeitung findet ja ausschließlich im Formular statt (so sollte es zumindest sein)
Und dort benötigst du die richtige/gewünschte Reihenfolge.

Du kannst aber auch - wenn das Formular nicht auf einer Abfrage aufsetzt sondern auf der Tablle selbst - in den Eigenschaften
deines Formulars im Raster Daten bei "Sortiert nach" einfach dein Tabellenfeld (aufPrio) eintragen um nach diesem Feldinhalt zu sortieren.

HTH


Accessiv

Hallo database,

vielen Dank für Deinen Tipp. In welches Eigenschaftsfeld des Formulars füge ich denn den die u. a. Private Subs ein?

Accessiv

Hallo database,

vergiss meine zweite Frage. Habe das Eigenschaftsfeld schon gefunden - nachdem ich Deine Antwort noch einmal richtig gelesen hatte.

Nochmals vielen Dank  ;D