Neuigkeiten:

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

Mobiles Hauptmenü

Brauche Hilfe bei Erstellen einer kleinen Tabellenstruktur

Begonnen von wuffwuff2003, September 06, 2013, 08:47:28

⏪ vorheriges - nächstes ⏩

wuffwuff2003

Hallo,

Ich habe es mal aufgezeichnet auf ein Blatt Papier wie die Tabellenstruktur sein muss. Die erste Tabelle die existiert schon, da kann ich nicht viel ändern, kann aber hinzufügen das ist kein Problem. Das prinzip ist: Jeder Mitarbeiter hat 6 Lehrbücher (können aber noch welche hinzukommen). Jedes Lehrbuch bekommt ständig neue Versionen. Jeder Mitarbeiter muss dann seine Verbesserung der neuen Verson abholen, und das wird dann mit Datum eingetragen. Das heisst das Datum ist abhängig vom Mitarbeiter und von der Version des jeweiligen Lehrbuches.
Ich kriege aber hier kein anstàndiges Datenmodell zusammen, brauche da etwas Hilfe wenn möglich, ich kriege die Beziehungen nicht richtig aufgebaut :/
Danke Mfg

Edit: Später wird in einem Formular ein Mitarbeitername ausgewählt per Dropdown, dann erscheint im Unterformular eine Liste der sàmtlichen Lehrbücher und immer die letzten 5 Versionen jedes Lehrbuches, mit dem Datumfeld. Dort kann man ein Datum eintragen. Das ist mal die grobe Form wie es später aussehen soll.


[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

kleiner Tipp:


Male die Tabellen mit ihren Feldern , speziell und am relevantesten mit ihren Schlüsselfeldern und deren Datentypen und die Beziehungslinien genau so hin, wie es das Access-Beziehungsfenster vormacht.



Aus der Skizze interpretiere ich jetzt mal, dass eine Reihe von Fachbüchern, von denen jedes unterschiedliche Versionen haben (kann), an bestimmte Personen ausgegeben  (ausgeliehen?) und das entspr. Datum registriert werden soll/kann.


Dazu stellt sich die weitere Frage, ob die Datumserfassung nur eine Status-Information sein soll oder eine Historie gebraucht wird (z. B., wenn es sich um Ausleihungen handelt. Dann wäre diese Situation in einer Verlaufstabelle (Historie, Ausgabedatum, Rückgabedatum, BuchZustand, etc)) darzustellen.


Ohne Historie würde sich das so etwa so ergeben.(Die Namensgebung reflektiert an sich schon die Beziehungen zw. den Tabellen.):

tblBücher
BuchID (PK, Autowert)
Buch_ISBN (Text)
Buch_Titel
.
.




tblBuchversionen
BVID  (PK, Autowert)
BV_BuchID  (Long, FK zu tblBücher für Beziehung)
BV_VersionNr  (Text)
BV_Bezeichnung
BV_Anschaffungsdatum
.
.

tblPersonen
PersID (PK, Autowert)
Pers_Vorname (Text)
Pers_Nachname(Text)
.
.
.


tblBuchVersionPerson     (tblBuchAusgaben)
BVPID  (PK, Autowert)
BVP_BVID (Long, FK zu tblBuchVersionen)
BVP_BV_PersID (Long, FK zu tblPersonen)
BVP_AusgabeDatum  (Datum/Uhrzeit)
BVP_Notiz  (Memo)
.
.

wuffwuff2003

Ok damit kann ich soweit etwas anfangen, das Datum dient sozusagen nur als Anzeige ob der Mitarbeiter das Lehrbuch erhalten hat, da diese nicht zurückgegeben werden müssen wird auch keine Historie benötigt. Ich baue die Tabellen mal so auf, und werde dann sehn ob ich die Beziehungen hinkriege  :) Danke

wuffwuff2003

Hallo
Ich habe die Tabellen jetzt mal so ausgefüllt wie gesagt, habe das Beziehungsfenster auch angehängt, nun kommt das nächste Problem. Ich erstelle mir im Formular ein Dropdown Menu, (Option 3) Datensàtze anhand der von mir gewählten Daten auswählen. Nun bleibt das Dropdownfeld aber leer, irgendwie übernimmt er die Daten aus der Tabelle tbl_Uebersicht nicht diese müssten in dem Dropdown erscheinen. Ich müsste ja dem Formular die Tabelle tbl_SNCB_Doc zuteilen, und dann den Eintrag ID auf das Dropdownfeld legen.
Was mache ich hier noch falsch?

[Anhang gelöscht durch Administrator]

wuffwuff2003

Ich habe mal eine Skizze angehängt wie das Formular später aussehen soll. Man wählt im Dropdown den Mitarbeiter aus, der ja aus tbl_übersicht genommen wird. Im unterformular (wenns eins sein muss) stehen die Bücher genannt HLT immer fix im Formular, und nebendran dann die letzten 5 Versionen mehr braucht nicht angezeigt werden die letzten 5 reichen aus (nur lesen)(neue Versionen werden über ein anderes Formular eingetragen). Darunter z.B. dann Textfelder die nicht gesperrt sind, in die man dann das Datum einträgt an welchen Tag dieser oben ausgewàhlte Mitarbeiter seine neue Version erhalten hat. Ich hoffe dies verdeutlicht das Ziel ein bischen.
Mfg


[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

die Tabellen sind soweit bzgl. ihrer Beziehungen ok, auch wenn ich dem Namen "tbl_Uebersicht" nichts abgewinnen kann  (und auch "NameKomplett" darin  überflüssig ist, wie auch auf die Verwendung reservierter Wörter --> "Name" und auf Sonder-Leerzeichen zu verzichten ist).)...

Das Formular ist in der gezeigten Form nicht für Datenpflege brauchbar, allenfalls als "Bericht" bzw. Auswertung(sdarstellung) . Eine Auflistung von Werten gleicher Bedeutung (Version1, Version2, etc) in Zeilenform ist in einer relationalen DB kontraproduktiv. Trotzdem ist es möglich eine solche Darstellung in einem Bericht z. B. zu erzeugen.  (siehe "SQLListe" bei www.dbWiki.net)


wuffwuff2003

Die Tabellennamen habe ich so aus der bereits bestehenden Datenbank genommen und nur eingedeutscht, daher NAME . Das war nur zu Demozwecken jetzt wo ich das so gemacht habe. Ich habe nun vorgehabt eine Abfrage zu erstellen, die mir alles was ich da skizziert habe beinhaltet, und aus der Abfrage dann heraus ein Formular zu erstellen mit Textfeldern.  Aber da ich versuchen möchte auf die richtige Art und Weise eine Datenbank zu erstellen, weiß ich nicht ob das der richtige Weg ist. Denn das Formular bezieht sich ja im Steuerelement immer nur auf eine Tabelle, dann müsste ich um alles angezeigt zu bekommen ja entweder über Abfrage fahren und dort alles integrieren was ich brauche, und das Formular darauf zu beziehen, oder ich müsste die Textfelder mit der LookUp oder Dom Funktion beschreiben. Da stehe ich jetzt ein bisschen vor der Qual der Wahl, was ist richtig um mein Projekt so zu realisieren. Das ganze ist ein Excel Dokument was in Access kommen muss, und die Namen müssen aus der bestehenden Access Datenbank gewonnen werden. Wenn man das Excel Dokument sieht denke ich wird sofort klar was ich meine, nur kann ich das nicht hier hochladen das enthält zu viele Firmeninterne sensible Daten, ich könnte es höchstens privat Mailen.
Mfg

DF6GL

Hallo,

ich befürchte, es wird Kollisionen geben mit Excel-Daten in einer Access-Datenbank und in dieser Form.....

Einen eingeschränkten (Aus)Weg habe ich ja mit dem Link aufgezeigt...

wuffwuff2003

Hallo ich habe mir den Link mal angesehen, das wäre effektiv eingeschränkt. Das Problem ist ich würde Ihnen ja nochmals wie mit der VBA Geschichte alles zukommen lassen um etwas zu erstellen, aber ich weiss nicht recht wie ich mich anlegen soll um zu erklären was ich da eigentlich möchte. Wie das Formular aufgebaut ist im Nachhinein ist mir dabei egal, solange es seine Funktionen erfüllt. Die von mir gezeichnete Skizze war nur eine Idee das muss auf keinen Fall so sein. Wichtig ist halt nur dass ich mir meinen Arbeiter auswähle und dann kann meinetwegen eine Tabelle angezeigt werden oder Textfelder halt das was am einfachsten ist. Und diese soll dann die einzelnen Bücher aufzeigen und die Versionen und ob Sie abgeholt wurden (Dazumseintrag oder nicht). Ich kann eine Beispieldatenbank erstellen, mit einem formular wie ich es mir vorgestellt habe das würde gehen, und Ihnen das mal mit der Excel Datei zumailen, falls Sie dies machen wollen?
Mfg

DF6GL

Hallo,

es reicht sicherlich, die Beispiel-DB mit den Tabellen und dem Formular (komprimiert/repariert und gezippt) hier hochzuladen....

Wenn keine solchen "Listen" (horizontale Aufzählungen von Werten) nötig sind, ist das Ganze mit Standardmitteln zu erledigen.

wuffwuff2003

Hallo,
Ich habe dann mal die Datenbank eingefügt, das Formular hab ich mit Texten beschrieben nur als Beispiel was da hinkommen muss. Ich habe auch einen Ausschnitt aus der Excel tabelle hinzugefügt wie das bislang immer gemacht wurde, es muss jetzt aber über Access laufen, da man hier einen besseren überblick bekommt, da man hier nicht blàttern muss und dann pro Sheet wieder den namen suchen muss usw.


[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

ich sag's nochmal: so eine Auflistung von horizontalen Werten, die zudem in den einzelnen Sheets-Spalten noch voneinander abweichen, ist mit Access  mit vernünftigen Aufwand  (genau so) nicht zu machen...

Vorstellen könnte man sich ein "Ent-Transponieren" insofern, als dass die ersten 5 "Avis"-Spalten-Überschriften  der einzelnen Sheets "senkrecht" ( als je ein Wert pro Datensatz) zusammen mit den restlichen Daten (Name, etc.) in eine Tabelle importiert werden.

Können denn die einzelnen Sheets  zusammen genommen in eine einzelne Tabelle importiert werden, soll heißen, dass z. B. die jeweils 5 Spalte der Excel-Sheets immer dieselbe Bedeutung haben?  (so wie es im Beispiel-Formular aussieht, aber nicht in den Beispiel-Sheets....)




wuffwuff2003

Hallo beim letzten Absatz kann ich nicht ganz folgen, ich versuchs mal so zu erklären wie es in Excel ist:
Sheet 1 (HLT1) ist das 1. Lehrbuch. Sheet 2 (HLT2A) das 2. Lehrbuch usw. Jedes Buch bekommt von Zeit zu Zeit ein paar neue Seiten bzw werden ausgetauscht sofern es Umänderungen in den Texten gibt. Jeder Mitarbeiter verfügt über diese 6 Lehrbücher das ist Pflicht. Wichtig ist es nun, wenn eine neue Verbesserung herauskommt das kann heute eine sein für das Buch HLT1 nächste Woche eine für HLT2A usw. Nun geht es daraum, dass Access diese 6 Lehrbücher fest beinhaltet, das ändert nicht es sind immer 6. Aber nun muss es möglich sein, sobald eine neue Verbesserung kommt, diese einzutragen und der entsprechenden HLT zuzuordnen. Jeder Mitarbeiter wird daraufhin angewiesen per Email sein Buch bitte zur Verbesserung abzugeben. Am Tag der Verbesserung wird das Datum eingetragen wie im Formular für den passenden Mitarbeier. So kann man sehen ob der jeweilige Mitarbeiter bereits seine Verbesserung erhalten hat.
Ich hoffe das erklärt es ein bischen besser. An sich kann alles in eine Tabelle kommen ja , ich starte die Datenbank wieder bei null, d.h. das Excel Dokument läuft aus und es geht dann in Access weiter, ich werde nichts importieren, daher ist es nicht nicht so schlimm wenn da grundlegend etwas geändert wird es muss halt nur die Funktion erfüllt werden, auch wie das Formular aussieht spielt keine Rolle. Es geht nur darum den Arbeiter auszuwählen und sofort zu sehen ob die letzten 5 Verbesserungen (Avis) der je 6 Bücher soweit gemacht wurden.

DF6GL

Hallo,


dann nimm doch die Beispiel-DB... Dort kann das alles realisiert werden.  Anbei die DB mit Formularen, mit denen die Dateneingabe erfolgen kann.  Trage mal zunächst einige Beispieldaten anhand der vorhandenen Sheets dort ein und prüf, ob damit die Situation abgebildet werden kann.



[Anhang gelöscht durch Administrator]

wuffwuff2003

Ja hier besteht auch das problem was ich nicht gelöst kriege und zwar liegt es daran dass die tbl_SNCB nur den Eintrag anzeigt wenn ein Datensatz angelegt wurde. D.h. Wenn ich hier im frm_Mitarbeiter den Mitarbeiter wechsele, müssen ALLE AVIS angezeigt werden, auch welcher HLT sie angehören, und die Datumeinträge werden erst später eingefüllt. Das heisst sobald ich einen neuen AVIS anlege ganz gleicht welcher HLT, muss dieser bei allen Mitarbeitern erscheinen, unabhàngig davon ob ich nun ein Datum eingetragen habe oder nicht. Hier wird aber immer erst einen Datensatz angelegt wenn ein Datum eingetragen wird, das dürfte so nicht sein