collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 36
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13853
  • stats Beiträge insgesamt: 64924
  • stats Themen insgesamt: 8757
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: die letzten Einträge kennzeichnen  (Gelesen 478 mal)

Offline Taikido

  • Newbie
  • Beiträge: 20
die letzten Einträge kennzeichnen
« am: Februar 06, 2018, 09:26:54 »
Guten Morgen zusammen,

ich suche eine Möglichkeit, nur die letzten / aktuellsten Einträge einer Tabelle (über ein Formular) zu kennzeichnen.

Ich habe zwei Tabellen mit dem Namen tblFahrzeuge und tblStationen. Die Tabelle tblFahrzeuge hat die Spalten |"Cars" | "Stations" | "Dates" | "Time" |. Die Tabelle tblStationen hat die Spalte "Stationen", die als Grundlage für die Filterfunktion dient. (Dates in der Tabelle Fahrzeuge aus dem Grund, weil Date bereits durch das System belegt ist und mir nichts besseres einfiel. Auf der Arbeitsoberfläche im Formular ist der Name dann Datum).

In die Tabelle tblFahrzeuge wird über das Formular "Fahrzeugbewegung erfassen", über zwei Textfelder, in die Spalten Cars und Stations der Tabelle "tblFahrzeuge" die entsprechenden Werte geschrieben.


Wenn ich heute um 15.00 Uhr über das Formular "Fahrzeugbewegung erfassen" in das Textfeld 1 "Cars" das "Fahrzeug A" und in Textfeld 2 "Stations" den "Parkplatz" eingebe, dann erscheint mir im Formular "Fahrzeugsuche" ein Eintrag
| Fahrzeug A | Parkplatz | 25.01.2018 | 15:54 Uhr. Das System zieht sich das Datum und die Uhrzeit selbstständig.

Mach ich das morgen um 13 Uhr nochmal und filtere nach Parkplatz, dann erscheint
| Fahrzeug A | Parkplatz | 26.01.2018 | 13:00 Uhr
| Fahrzeug A | Parkplatz | 25.01.2018 | 15:54 Uhr

Was ich möchte ist, bzw. mein Problem ist:

Eine Markierung des Eintrags "Fahrzeug A" am 26.01.2018 im Formular "Fahrzeugsuche".

Das Thema ist; dass ich korrekterweise im Formular "Fahrzeugsuche" alle möglichen Fahrzeuge und alle möglichen Lagerplätze nach Datum und Uhrzeit usw. angezeigt bekomme. Wenn ich nun aber über das Dropdownfeld im Formular "Fahrzeugsuche" nach einem gewissen Kriterium filtere, z.B. "Parkplatz", dann zeigt es mir alle Fahrzeuge unter dem Lagerplatz Parkplatz an, aber nur als Historie mit allen Einträgen seit z.B. 2 Monaten. Ich filtere über Dropdown die Stationen und per Textfeld nach Fahrzeuge oder Datum.

Woher weiß ich aber, ob es nicht das gleiche Fahrzeug bereits mit einer aktuelleren Buchung auf z.B. Werkstatt gibt? Die mir ja nicht angezeigt wird, wenn ich nach Parkplatz filtere.

Was ich suche ist:

1).: in der Fahrzeugsuche (Formular Fahrzeugsuche) ohne Filter alle Fahrzeuge angezeigt und die Fahrzeuge mit den aktuellsten Buchungen irgendwie markiert, da diese sich vom Namen her nicht ändern wenn sie mal angelegt sind, die Station jedoch schon.
2).: wenn ich einen Filter anwende nur die Fahrzeuge mit der aktuellsten Buchung auf diesen Filter (Beispiel Parkplatz), gerne auch per neuem Filterfeld, Dropdown, etc.

Wenn ich dann nämlich nach z.B. Parkplatz filtere, soll es mir alle Fahrzeuge anzeigen, die wirklich auf dem Parkplatz stehen, da diese Fahrzeuge ihre letzte Buchung auf Parkplatz haben.

Mir ist bewusst, dass das nicht einfach ist und ich habe auch nicht die Kompetenz, das zu lösen.

Viele Grüße
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1059
Re: die letzten Einträge kennzeichnen
« Antwort #1 am: Februar 06, 2018, 09:43:54 »
Hi Taikido,

ich würde mindestens 3 Tabellen für so eine Szenerie veranschlagen. In einer Tabelle werden die Fahrzeugdaten erfasst, in einer anderen die Stationsdaten. Beide Tabellen haben jeweils einen Autowert als Primärschlüssel. In einer dritten Tabelle (ich taufe sie einmal Aufenthalt) würde man dann jeweils ein Fremdschlüsselfeld der beiden anderen Tabellen als Pflichtfeld definieren und ein (1) Datum/Uhrzeitfeld (ebenso als Pflichtfeld und idealerweise indiziert) würde aussagen, wann ein Fahrzeug an einer Station erfasst wurde.

Mit einer Abfrage oder auch mit der Funktion DomMax könnte man sich dann leicht für ein Fahrzeug das zuletzt (jüngste) erfasste Datum nebst Station anzeigen lassen, oder auch abfragen, wann wurde Fahrzeug A zuletzt an Station XYZ erfasst.
Grüße von der (⌒▽⌒)
 

Offline Taikido

  • Newbie
  • Beiträge: 20
Re: die letzten Einträge kennzeichnen
« Antwort #2 am: Februar 06, 2018, 10:04:22 »
Hi, ok dann würde ich meine Datenbank wie folgt umbauen:

- Die Tabelle tblStationen wird komplett geleert und alle Spalten bis auf | ID | Stationen|  werden gelöscht. Die Tabelle dient dann als Stationsdatenbank in die alle Stationen geschrieben werden.
- die Tabelle tblFahrzeuge wird komplett geleert und alle Spalten bis auf | ID | Fahrzeug |  werden gelöscht. Die Tabelle dient dann als Fahrzeugdatenbank, in die alle Fahrzeuge geschrieben werden.


Ich erstelle eine neue Tabelle mit dem Namen tblFahrzeugbewegungen mit den Spalten | ID | Fahrzeug | Station | Datum | Zeit | Bemerkung | << diese Tabelle zieht sich dann die Daten Fahrzeug und Station aus den beiden Tabellen tblStationen und tblFahrzeuge. Datum/Uhrzeit wird dann automatisch aus dem System gezogen.

Ich erstelle eine zusätzliche Tabelle tblBemerkung, die dann ausgefüllt wird und die Daten an die Tabelle tblFahrzeugbewegungen liefert.

Korrekt?

 :)


 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1059
Re: die letzten Einträge kennzeichnen
« Antwort #3 am: Februar 06, 2018, 10:19:21 »
Hi,

erfasse den Zeitpunkt in einem (1) Feld - alles andere bereitet später bei der Auswertung nur unnötige Probleme.

Bei den Bemerkungen kann ich Dir nicht folgen. Das müsstest Du näher erklären.

PS: Handelt es sich bei den Fahrzeugen um AGVs?
Grüße von der (⌒▽⌒)
 

Offline Taikido

  • Newbie
  • Beiträge: 20
Re: die letzten Einträge kennzeichnen
« Antwort #4 am: Februar 06, 2018, 11:17:59 »
Hi, also ich habe nun:

- ein Formular "frmFahrzeugbewegungen" mit den Textfeldern Fahrzeuge, Stationen und Bemerkung
- eine Tabelle tblFahrzeuge --> gefüttert durch das Textfeld Fahrzeuge und Bemerkung
- eine Tabelle tblStationen --> gefüttert durch das Textfeld Stationen und durch das System mit Datum/Zeit in einem Feld ( jetzt() in Standardwert).

Die Einträge werden über einen Button "Datensatz hinzufügen" in die Tabelle geschrieben.

In das Textfeld Bemerkungen kann der User nun Dinge wie z.B. Felge defekt schreiben. Dann würde man in der gefilterten Übersicht irgendwo einen Eintrag Felge defekt sehen.

Wie gehts nun weiter bzgl. "ein Fremdschlüsselfeld der beiden anderen Tabellen als Pflichtfeld definieren " ?

Es handelt sich um Kfz

Gruß
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7086
Re: die letzten Einträge kennzeichnen
« Antwort #5 am: Februar 06, 2018, 11:22:03 »
Hallo,
die Stationen sind zeitlos. Das Datum/Zeitfeld gehört demzufolge in die Tabelle frmFahrzeugbewegungen. In dieser Tabelle sind die beiden Felder  Fahrzeuge und Stationen die Fremdschlüsselfelder die eine Zahl sind. Für die beiden Felder solltest Du keine Nachschlagefelder in der Tabelle anlegen. Nachschlagefelder (Kombinationsfelder) werden ausschließlich in Formularen verwendet.
Gruß
Klaus
 

Offline Taikido

  • Newbie
  • Beiträge: 20
Re: die letzten Einträge kennzeichnen
« Antwort #6 am: Februar 06, 2018, 12:33:47 »
Hi, ok also ich habe die Tabelle tblFahrzeugbewegungen erstellt und drei Felder hinzugefügt:

- Fahrzeuge vom Typ Zahl --> Eingabe erforderlich = ja
- Stationen vom Typ Zahl --> Eingabe erforderlich = ja
- Zeitraum vom Typ Datum/Zeit

Die beiden Felder Fahrzeuge und Stationen sind unten im Reiter Nachschlagen als Textfeld deklariert.

Das Datum/Zeit-Feld aus tblStationen habe ich entfernt.

Ich gehe aber davon aus, dass ihr meint, ich solle aus Stationen und Fahrzeuge wieder ein Textfeld machen und über Beziehungen die beiden Felder Stationen und Fahrzeuge in der tblFahrzeugbewegungen verknüpfen, oder?

Gruß
« Letzte Änderung: Februar 06, 2018, 13:01:09 von Taikido »
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7086
Re: die letzten Einträge kennzeichnen
« Antwort #7 am: Februar 06, 2018, 13:01:59 »
Hallo,
Zitat
Ich gehe aber davon aus, dass ihr meint, ich solle aus Stationen und Fahrzeuge wieder ein Textfeld machen
Du spricht in Rätseln.

Die Bewegungstabelle sollte so aussehen:
- FahrzeugID_F vom Typ Zahl
- StationID_F vom Typ Zahl
- Zeitraum vom Typ Datum/Zeit

Die beiden Fremdschlüsselfelder (_F) verweisen auf den Primärschlüssel von Fahrzeug bzw. Station.

Zeige mal ein Bild des Beziehungsfensters.
Gruß
Klaus
 

Offline Taikido

  • Newbie
  • Beiträge: 20
Re: die letzten Einträge kennzeichnen
« Antwort #8 am: Februar 06, 2018, 13:10:06 »
"Du spricht in Rätseln." -> Denkfehler meinerseits, einfach ignorieren   :P




 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7086
Re: die letzten Einträge kennzeichnen
« Antwort #9 am: Februar 06, 2018, 13:25:41 »
Hallo,
die Beziehung zwischen Fahrzeug und Station ist überflüssig.
Benenne die ID vernünftig. FahrzeugID und StationID, die beiden Framdschlüsselfelder dann analog aber mit angehängtem _f, damit man Primärschlüssel und Fremdschlüssel zweifelsfrei unterscheiden kann.

Und, in den Beziehungen ist grundsätzlich referentielle Integrität einzustellen.

Gruß
Klaus
 

Offline Taikido

  • Newbie
  • Beiträge: 20
Re: die letzten Einträge kennzeichnen
« Antwort #10 am: Februar 06, 2018, 13:47:53 »
Hi, ich habe die Felder entsprechend benannt und die bei der Beziehung StationenID_f zu Station ID die referentielle Integrität aktiviert. Nun habe ich das bei FahrzeugeID_f zu FahrzeugID auch probiert aber erhalte folgende Fehlermeldung:



Was habe ich falsch gemacht?
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7086
Re: die letzten Einträge kennzeichnen
« Antwort #11 am: Februar 06, 2018, 13:53:41 »
Hallo,
der Datentyp von FahrzeugeID_f muss Long Integer sein.

Warum verwendst Du für Fahrzeuge die mehrzahl, da steht nur ein Fahrzeug drin.
Eine einheitliche sinnvolle Nomenklatur ist vorteilhaft.

PS:
Bitte lade Bilder hier im Forum als Anhang hoch.
« Letzte Änderung: Februar 06, 2018, 14:00:33 von MzKlMu »
Gruß
Klaus
 

Offline Taikido

  • Newbie
  • Beiträge: 20
Re: die letzten Einträge kennzeichnen
« Antwort #12 am: Februar 06, 2018, 14:05:50 »
Hi,

hab aus der Mehrzahl die Einzahl (FahrzeugID_f) gemacht. Der Datentyp ist bereits Long Integer.

 :)

Kommando zurück: Ich habe die Beziehung nochmal neu gezogen und jetzt passt es soweit.

Wie ginge es nun weiter?
« Letzte Änderung: Februar 06, 2018, 14:14:52 von Taikido »
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7086
Re: die letzten Einträge kennzeichnen
« Antwort #13 am: Februar 06, 2018, 14:15:20 »
Hallo,
gibt es schon Einträge in der Tabelle mit den Bewegungen ?
Wann ja, alle löschen und dann noch mal versuchen.
Gruß
Klaus
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1059
Re: die letzten Einträge kennzeichnen
« Antwort #14 am: Februar 06, 2018, 14:18:45 »
Zwar ohne den von Klaus propagierten _f-Suffix, sollte das Datenmodell in Grundzügen so wie im ersten Anhang ausschauen.

fzg_bez (Fahrzeugbezeichnung) und stat_bez (Stationsbezeichnung) haben jeweils einen eindeutigen Index, um doppelte Eingaben auszuschließen. Ebenso ist dafür das Attribut Eingabe erforderlich im Tabellenentwurf auf Ja gesetzt - Fahrzeuge und Stationen ohne Bezeichnung wollen wir nicht zulassen. Sollten weitere relevante Attribute zu Fahrzeug bzw. Station vorliegen, kann man diese natürlich in den Tabellen ergänzen.

fzg_id und stat_id sind in Tabelle fahrzeug bzw. station jeweils ein Autowertfeld mit gesetztem Primärschlüssel. Blende das Index-Fenster (Symbol mit dem gelben Blitz) ein, und sorge dafür, dass jedes dieser Felder nur einen Index aufweist (einen 2. Index ggf. löschen).

In der Tabelle fzg_an_station habe ich die Datum/Uhrzeitfelder ankunft und abfahrt neben den Fremdschlüsselfeldern fzg_id und stat_id (jeweils Zahlenfelder, Long Integer) gewählt. ankunft sollte Pflichtfeld sein und Jetzt() als Standardwert aufweisen. abfahrt kann nachträglich erfasst werden, wenn das Fahrzeug die Station verlässt. Um sich gegen Fehleingaben (Abfahrt liegt vor Ankunft) zu schützen, kann die Tabelleneigenschaft Gültigkeitsregel mit ([ankunft]<=[abfahrt]) Oder [abfahrt] Ist Null ausgefüllt werden. Beide Fremdschlüsselfelder sind natürlich auch als Pflichtfelder zu kennzeichnen (Eingabe erforderlich auf Ja setzen).

Der zweite Anhang zeigt ein mögliches Eingabe-Formular in Endlos-Darstellung.
Im Formular fügst Du alle Felder (den Primärschlüssel muss man nicht anzeigen) ein und änderst über das Kontextmenü (Rechtsklick mit der Maus) fzg_id und stat_id in ein Kombifeld um. Als Datensatzherkunft legst Du jeweils eine Abfrage an, die für das Fahrzeug z. Bsp. so als SQL-Text lauten könnte:SELECT f.fzg_id,
       f.fzg_bez
FROM   fahrzeug AS f;
Dann legst Du die Spaltenanzahl auf 2 fest, und setzt die Spaltenweiten auf z. Bsp. 0cm;2,54cm, was dazu führt, dass die zweite Spalte angezeigt wird, die erste aber im Feld gespeichert wird. Analog verfährst Du dann mit dem Feld stat_id.

Das Filtern anhand der Ausgangsfrage wäre dann Schritt Nr. 3, der, wenn Du gleichziehst, erarbeitet werden kann.
Grüße von der (⌒▽⌒)