dr.cornwallis
Goto Top

Access Datenbank wie am einfachsten Datensätze aufbereiten

Liebe Gemeinde,

ich brauche eure Hilfe, wie würdet ihr in Access 2010 eine Datenbank aufbauen bzw. die ug. Anforderungen bei folgenden Gegebenheiten umsetzen:

1 Table: Tor
2 Table: Tour
3 Table: Ziel
4 Table: Wochentag

Nun soll mit diesen Tabellen folgendes passieren/entstehen:

Im Frontend(Formular) soll man ein Tor konfigurieren können, dabei muss der Wochentag berücksichtigt werden(jeder Wochentag hat eine eigene Konfig, diese gilt aber dann für jede Woche im Jahr/wiederholt sich bzw. ändert sie sich eher selten).
Im Formular soll festgelegt werden: welche Ziele bei welcher Tour bei welchen Tor an welchen Wochentag zu welcher Uhrzeit(Abfahrt), dazu kommen noch ein paar Zusatzinfos, die aber für diese Fragestellung keine Rolle spielen bzw. man dann leicht hinzufügen kann.
Am Besten wäre es wenn man ein Formular öffnet wo man das Tor wählt und dann mit Kontrollkästchen die jeweiligen Ziele, Touren und Wochentage und Abfahrtszeiten(Abfahrtszeit der Tour) festlegen kann.
Dh.: ich konfiguriere zb.: Tor 1 Konfiguration für Mittwoch, Tour X, Ziele: AAAA, BBBB, CCCC, Mittwoch, 16:00 -> dh. hier müssten 3 Datensätze angelegt bzw. aktualisiert(wenn schon vorhanden) werden
Tor 1 Konfiguration für Donnerstag, TourY, Ziele: DDDD,EEEEE,FFFFF, Donnerstag, 21:00 -> 3 DS
Tor 2 Konfiguration für Freitag, TourZ, Ziele: GGGG, HHHH, IIIII, Freitag, 06:00 -> 3DS

Bis jetzt habe ich ein Formular mit dem man die Datensätze via Kombifeld zusammenbauen kann, danach werden die erstellten Datensätze in einen eigenen Table geschrieben.
Das Problem ist dass ich den kompletten Datensatz pro Ziel anlegen muss(mit allen Daten, Tor, Tour etc....), was für den User dann auf jeden Fall zu kompliziert wird, am besten wäre wenn wie am Beispiel oben(Tor 1) ich 1x das Tor wähle, mit den Kontrollkästchen die Tour auswähle, die Ziele für die Tour hinzufüge und dann pro Ziel ein eigener DS erzeugt wird(oder aktualisiert wird).


Kurzinfo: Die Ziele der Touren ändern sich, Tour zu Tor ändert sich, die Wochentage ändern sich.
Hat hier jemand einen Masterplan bzw. eine ähnliche MusterDB, bin etwas überfordert.


Bitte um Hilfe!

Vielen Dank!

Gruß

Dr.

Content-ID: 328014

Url: https://administrator.de/contentid/328014

Ausgedruckt am: 25.11.2024 um 00:11 Uhr

em-pie
em-pie 31.01.2017 aktualisiert um 12:51:36 Uhr
Goto Top
Moin,

kurze Frage vorab:
Was ist das Feld/Attribut "Tour"?
ist das eine fortlaufende Nummer pro Tag und Tor?


Ansonsten schonmal vorab:
Es gibt vier (oder fünf, je nach Antwort der obigen Frage) Tabellen:
tbl_Tor {idTor; TorName; TorAttributX}
tbl_Ziel {idZiel; Firma; Straße; Hausnummer; PLZ; Ort; Land}
tbl_Wochentag {Datum; NameWochentag}
(tbl_Tour {idTour; TourBezeichnung)

tbl_Tor enthält alle Tore
tbl_Ziel alle Ziele
tbl_Wochentag die Wochentage (könnte man sich ggf.auch schenken)
(tbl_Tour, hängt von der Antwort ab}

die letzte Tabelle bildet quasi immer die Kombinationen aller obigen Basistabellen ab
tbl_TheTours{idTor; idZiel; Datum; Tourzeit}

und hierdrüber kannst du alles verwalten.
Im Frontend fragst du die relevanten Daten ab/blendest diese aus den bestehenden tabellen vor und speichert die Kombinationen aller in die Tabelle tbl_TheTours.
Sollen Touren angepasst werden, könntest du mit einem erneuten Frontend zunächst die bereits bekannten Touren per Eingabemasken abfragen und den Schbearbeiter die relevante Tour bearbeiten lassen.

Für die Berichte/ Reports kannst du dann die letzte Tabelle auswerten und je Tor, Wochentag und Uhrzeit eine Art Versandplan generieren.

Nachtrag:
Dh.: ich konfiguriere zb.: Tor 1 Konfiguration für Mittwoch, Tour X, Ziele: AAAA, BBBB, CCCC, Mittwoch, 16:00 -> dh. hier müssten 3 Datensätze angelegt bzw. aktualisiert(wenn schon vorhanden) werden

Ja, das ergibt drei Datensätze, was gemäß der Normalisierung (müsste sogar die erste sein) zwingend erforerlich ist, um Redundanzen zu verhindern und Performance zu erhöhen.

Gruß
em-pie
Dr.Cornwallis
Dr.Cornwallis 31.01.2017 um 13:06:12 Uhr
Goto Top
Moin em-pie,

zu 1: tbl_Tour ist wie folgt aufgebaut:

ID= 1 2 3 usw...
Tour= Text (zb 0340/1 oder 0140 usw., ein beliebiger Text)
Benennung= Text (bla bla)
PSB= Zahl (Anzahl der Kapazität der Tour)

die anderen 3 Tabellen beinhalten jeweils eine ID und den Wert dazu(2 Spalten, ID - Tor, ID - Ziel, ID - Wochentag)

Ja die Rohdaten bestehen aus den 4 og. Tabellen, in die 5. sollen dann die Konfigurierten DS eingefügt/aktualisiert werden(oder wie immer man das dann am besten lösen kann.

Gruß
Dr.Cornwallis
Dr.Cornwallis 31.01.2017 um 13:20:03 Uhr
Goto Top
Meine Überlegung wäre ja für die Verlinkung der Werte je einen eigenen Table anzulegen(tbl_tour_ziel, tbl_Tor_Tour, tbl_Tour_Wochentag), dort müsste dann ein Kontrollkästchen, alle Touren und alle Ziele nebeneinander aufgelistet sein(bei Tor, Tour und Wochentag das gleiche), quasi alle Möglichkeiten die es theoretisch gibt, dann könnte man die tatsächlichen Werte mit dem Kontrollkästchen auf aktiv setzen.

Nehmen wir an ich habe 2 DS im Table Tour und 3 DS im Table Ziel:
Jetzt lege ich einen neuen Table an mit den Feldern: ID, Tour_ID(oder Tour selbst), Ziel, Aktiv(Ja/Nein) und lasse diesen mit den Werten der beiden Tabellen befüllen.
... in diesem Table müssten dann 6 Datensätze vorhanden sein wo ich die erforderlichen Ziele mit dem Kontrollkästchen über ein Formular auf aktiv setzen kann.

Leider fehlt es bei mir an know how wie man das Ganze in die Praxis umsetzt(zb. den Table füllen).

Gruß
em-pie
em-pie 31.01.2017 um 13:31:28 Uhr
Goto Top
Deine Variante beinhaltet - aus meiner Sicht - eine Tabelle zu wenig.
Es sei denn, ihr kennt bereits die Touren und müsst später nur noch zuteilen, an welchen Tor und welchem Tag die Tour stattfindet!?
Dann wäre deine Variante völlig OK.

In der ersten MatchingTabelle baust du dir die Touren mit den Zielen zusammen:
tbl_TourZiel {idTour; idZiel}

und später, wenn absehbar ist, von welchem Tor und an welchem tag, füllst du noch eine sechste tabelle tbl_TourPlan:
tbl_TourPlan {idTour; idZiel; idTor; idWochentag; Uhrzeit; active}
active ist hierbei vom Typ bool: 0= inaktiv, 1=aktiv


Und die Daten bekommst du ja immer mit Insert Into in die Tabellen rein bzw. kann diese mit Update... ändern
Dr.Cornwallis
Dr.Cornwallis 31.01.2017 um 13:46:36 Uhr
Goto Top
Die Touren sind vorab bekannt(die Zuordnung noch nicht, das wird dann die Aufgabe des Users), ich weiß nur nicht wie ich das mit VBA lösen kann..

Ich habe eine ähnliche Datenbank vom Chef, dort ist das so aufgebaut, leider verstehe ich den Code nicht ganz, funktioniert aber perfekt:
Dort wird zb. ein User einem Standort zugweisen, es gibt ein Hauptformular, auf diesem, sind zum verlinken subFormulare eingebaut, man öffnet mit dem Button "Details" die Userinfo's und kann dort mit den 5 Subformularen folgende Werte zuweisen(Standort, Gebiet, Region, Bereich, Rolle).
In dieser DB funktioniert alles voll automatisch, hier ein Screenshot:
access

Gruß

Dr.