Halli Hallo!
Kurz zur Info: Ich benutze Access 2010 erst seit ein paar Wochen, ich habe einen Kurs über Datenbanken an der Uni und habe Access es dadurch kennengelernt. Bisher bin ich auch super damit zurecht gekommen, nur langsam wird es kniffelig und ich hoffe hier kann mir geholfen werden.
Ich versuche mich nun schon seit einer Woche an einer größeren Aufgabe - dem Erstellen einer Datenbank für fiktive Universitäten.
Folgendes Szenario wurde gestellt:
Universitäten haben diverse Jobs ausgeschrieben (mit verschiedenen Jobbeschreibungen) und laden Bewerber zu Interviews ein.
Die Datenbank muss Informationen über die Bewerber (min. 10), über unterschiedlichen (min. 10) Jobs, die unterschiedlichen (ebenfalls min. 10) Universitäten und die jeweiligen Interviews enthalten. Alles weitere soll selbst hinzugefügt werden.
Jeder Job verlangt dabei verschiedene Fähigkeiten und jeder Bewerber verfügt über diverse Fähigkeiten (z.B. Programmieren, Unterrichten, Organisatorisches etc.)
Das ist soweit alles kein großes Problem. Ich habe verschiedene Tabellen erstellt etc. Nun soll die Datenbank allerdings bestimmte Eigenschaften erfüllen und da stecke ich fest. Ich weiß dass diese Eigenschaften über die Verknüpfungen realisiert werden, aber ich bekomme es einfach nicht vollständig hin.
Folgende Eigenschaften müssen realisiert werden:
1) Eine Uni kann, in Bezug auf eine Jobbeschreibung, viele Interviews mit Bewerbern führen.
2) Ein Bewerber kann, in Bezug auf eine Jobbeschreibung, zu vielen Interviews eingeladen werden.
3) Eine Uni kann, in Bezug auf eine Jobbeschreibung, viele Bewerber einstellen.
4) Jeder Bewerber kann von nur einer Uni - und nur in Bezug auf eine Jobbeschreibung - eingestellt werden.
5) Jeder Bewerber hat mehrere Fähigkeiten.
6) Jeder Job benötigt mehrere Fähigkeiten.
Außerdem soll deutlich werden, an welchem Datum das Interview geführt wurde und ob der Bewerber eingestellt wurde (das Interview also erfolgreich war).
Wie gesagt ich habe mich bereits versucht und es ist hoffentlich auch nicht komplett falsch, aber ich weiß nicht mehr weiter und ich habe das Gefühl die Hälfte vergessen, übersehen oder vernachlässigt zu haben.
Hier einmal ein Screenshot von meiner bisherigen Arbeit:
http://www.directupload.net/file/d/3797/ms4lwmpw_jpg.htm
Das Doofe ist auch einfach dass ich alle folgenden Aufgaben erledigen könnte, nur nicht ohne die 100%igen Zusammenhänge der Tabellen.
Ich hoffe ihr könnt mir helfen.
Mfg M@xi
Hallo,
ich habe zunächst einmal noch ein Verständnisproblem:
Zitat2) Ein Bewerber kann, in Bezug auf eine Jobbeschreibung, zu vielen Interviews eingeladen werden
Wenn "Jobbeschreibung" mit einer Stellenausschreibung gleichzusetzen ist, dann kann ein Bewerber nur zu einem Interview (=Bewerbungsgespräch) eingeladen werden. Oder was sonst ist damit gemeint?
Die Beziehungen zwischen Universität, Interview und Job halte ich für faslch und würde sie folgendermaßen definieren:
Universität -> 1:n -> Jobs -> 1:n -> Interviews
Die Universität ergibt sich also aus dem Job und muss beim Interview nicht als Datenfeld vorhanden sein.
Die Bewerber bewerben sich auf einen Job und werden evtl. diesbezüglich zu einem Interview eingeladen. Auch hier müssten also die Beziehungen anders aussehen.
Hallo MaggieMay,
also zu deinem Verständnisproblem: Ein Bewerber kann zu mehreren Interviews eingeladen werden, da verschiedene Universitäten Jobs ausschreiben bzw evtl. sogar der gleiche Job an zwei verschiedenen Universitäten ausgeschrieben wurde.
Deine vorgeschlagenen Beziehungen zwischen Uni, Jop und Interview finde ich sehr einleuchtend.. allerdings fehlt da noch der Bewerber.
Uni -> 1:n -> Jop -> 1:n -> Interview -> 1:n -> Bewerber ?? Oder würde das auch gleichzeitig bedeuten das 1 Interview mit diversen Bewerbern gleichzeitig geführt wird?
Dann kommt auch noch das Problem, dass ich irgendwie umsetzen muss ob ein Interview erfolgreich verlief, der Bewerber also für diesen Job genommen wurde. :\
Danke erst einmal für die Hilfe, ich hoffe wir können mein Problem hier lösen.
Mfg M@xi
Edit: Es müsste wohl eher
Uni -> 1:n -> Jop -> 1:n -> Interview -> n:1 -> Bewerber sein oder?
Hier nocheinmal ein Screenshot der überarbeiteten Beziehungen:
http://www.directupload.net/file/d/3798/b74f2dej_jpg.htm
Zitatbzw evtl. sogar der gleiche Job an zwei verschiedenen Universitäten ausgeschrieben wurde
Der Job mag ähnlich oder gar "gleich" sein, es ist aber nicht derselbe, jeder Job bzw. jede Stellenausschreibung *) ist sozusagen ein Unikat.
*) eine Stelle könnte auch mehrfach ausgeschrieben werden, wenn es keine geeigneten Bewerber gegeben hat
ZitatEin Bewerber kann zu mehreren Interviews eingeladen werden
Ja, natürlich. Das bezieht sich dann aber auf verschiedene Stellenausschreibungen, das darf nicht unter den Tisch fallen.
Zeig doch mal dein aktuelles Tabellenkonzept...
Hier die aktuellen Beziehungen:
http://www.directupload.net/file/d/3798/b74f2dej_jpg.htm
Ich hoffe du meinst die einzelnen Tabellen mit Tabellenkonzept:
http://www.directupload.net/file/d/3798/mkd774az_jpg.htm
Die Tabellenentwürfe kann ich nicht lesen, weil zu klein, aber das Beziehungsfenster genügt schon.
Ich würde die Bewerber mit den Jobs verknüpfen, da nicht jeder Bewerber zum Interview eingeladen wird, aber dennoch erfasst werden sollte. Die Interviews hängen dann am Bewerber und nicht am Job.
Das wäre zumindest meine Sicht der Dinge, aber vielleicht gibt es ja auch noch andere Meinungen dazu.
So ich habe es noch einmal überarbeitet und denke / hoffe ich bin auf einem guten Weg um alle Bedingungen zu erfüllen.
Mein Problem ist allerdings noch wie ich nun gewährleiste das eine Uni mehrere Bewerber, für eine Stellenausschreibung, einstellen kann und das ein Bewerber nur einen Jop annehmen kann..
Hier nocheinmal die überarbeiteten Beziehungen und Tabellen (Schlüssel sind ebenfalls etwas abgeändert):
http://www.directupload.net/file/d/3798/hgq49nl4_jpg.htm
Mfg
Hallo,
mir fehlt da noch eine Tabelle. Nämlich jene, aus der hervorgeht welcher Bewerber für welchen Job eingestellt wurde.
In der Tabelle muss der Bewerber einen eindeutigen Index besitzen um die folgende Voraussetzung zu erfüllen:
ZitatJeder Bewerber kann von nur einer Uni - und nur in Bezug auf eine Jobbeschreibung - eingestellt werden
m.E. lässt sich das in der Interview-Tabelle nicht abbilden.
Zu dem solltest den Feldnamen 'Successful?' gleich ändern und das Fragezeichen rausnehmen.
Weiter fällt mir auf, dass der PK in der Tabelle 'Skills' ein Textfeld sein müsste ... nicht gut!
Stell das um auf einen Autowert für den PK und verknüpfe diesen in die untergeordneten Tabellen statt der Texte.
Naja und wenn mehrere Unis den gleichen Job anbieten können sollte die Beziehung auch aufgelöst werden.
Und um noch mehr langatmiges herumtexten zu sparen :) sieh' mal die DB im Anhang - die soll für dich sein und/oder zur Diskussion.
HTH
Hallo database,
erstmal ein dickes Dankeschön - das ist eine große Hilfe ;D ich bin noch dabei alles nachzuvollziehen :) Wie gesagt, mir fällt es noch recht schwer die Beziehungen und deren Arbeitsweise zu verstehen..
Folgende Dinge habe ich noch nicht so durchschaut:
Die Tabellen "UniJobs" und "Jops" ..ist das nicht doppelt gemoppelt oder braucht man wirklich 2 um von generellen Jops und Jops von genau einer Uni zu unterscheiden?
Ich glaube ich verstehe wie du gewährleistest dass ein Bewerber nur einen Jop annehmen kann, aber wie gewährleistest du dass eine Uni mehrere Bewerber, für einen Job einstellen kann?
Ist das "successful" Feld in Interview nicht überflüssig oder nicht sogar komplett falsch? Ist es nicht durch die "ApplicantHavingJop"-Tabelle möglich direkt darzustellen ob ein Interview erfolgreich war (sprich, ein Bewerber einen bestimmten Jop bekommen hat)?
Ein "_F" hinter einem Attribut, hast du wahrscheinlich einfach nur als Kennzeichnung eines FK benutzt, richtig?
Ich hoffe ich stelle nicht zu dumme Fragen, mir ist einfach noch nicht ganz klar wie Access arbeitet oder wie generell die Beziehungen und Tabellen funktionieren :\
Vielen Dank für die Hilfe, mir ist dennoch schon einiges Klarer geworden :)
Mfg M@xi
Ich habe jetzt noch ein wenig weiter gearbeitet und die Datenbank um Städte erweitert.
Ich habe folgende Beziehungen erstellt:
Bewerber -> 1:n -> lebtIn -> n:1 -> Städte
Universitäten -> 1:n -> befindetSichIn -> n:1 ->Städte
Nun stelle ich mir die Frage ob dass überhaupt notwendig ist, hätte ich nicht auch einfach die Tabellen Städte und Uni's um das Attribut Stadt erweitern können? Habe ich so irgendwelche Vorteile?
Mfg
Hallo,
was meinst du denn in wievielen Städten ein Bewerber wohnt bzw. eine Universität sich befinden kann? ;)
Tatsächlich würde wohl ein zusätzliches Datenfeld mit dem Referenz-Key auf die Städtetabelle in den jeweiligen Tabellen völlig genügen.
Hallo,
zu #8 ...
"...dass ein Bewerber nur einen Jop annehmen kann, ..."
Das Feld ApplicantID_F hat in der Tabelle 'UniJobs' einen eindeutigen Index verpasst bekommen, somit kann dieser Fremdschlüssel nur einmal in der Tabelle vorkommen. UniJobID_F hat keine Einschränkung, daher kann dieser Fremdschlüssel mehrfach in der Tabelle verwendet werden. Es ist daher auch möglich mehrere Bewerber zum gleichen Job einzustellen.
"...Die Tabellen "UniJobs" und "Jops" ..ist das nicht doppelt gemoppelt ..."
Nein eigentlich nicht, in der Tabelle Jobs werden die Jobs an sich beschrieben, die (Zwischen)Tabelle UniJobs bildet dann ab welche Uni welche Jobs anbietet/vergibt.
Wenn du - wie angegeben - gleiche Jobs in unterschiedlichen Unis hast braucht's eine eigene Tabelle um diese Beziehung darzustellen.
"...Ist das "successful" Feld in Interview nicht überflüssig ..."
Naja, das ist Ansichtssache, streng gesehen hast du recht.
Kommt halt auch darauf an, wie du den Transfer vom Interview zur Tabelle 'ApplicantHavingJob' veranstaltest.
'Successful' (Ja/Nein) könnte dabei ein Auslöser für den Transfer sein (KÖNNTE) - soll heißen es kann auch weggelassen werden, wenn du den Datentransfer auf Formularebene dann anders anlegst. In einzelnen Fällen ist es durchaus gebräuchlich oder erlaubt eine Tabelle gewollt zu denormalisieren.
"Ein "_F" hinter einem Attribut, hast du wahrscheinlich einfach nur als Kennzeichnung eines FK benutzt, richtig?
"
Volltreffer
"...mir ist einfach noch nicht ganz klar wie Access arbeitet ..."
Das hat nix mit Access zu tun, Normalisierung gilt für alle relationalen Datenbanksysteme gleichermaßen
zu #9 ...
"...hätte ich nicht auch einfach die Tabellen Städte und Uni's um das Attribut Stadt ..."
Ja das solltest du auch so machen, stell' in die Tabellen Universities und Applicants je ein Fremdschlüsselfeld 'TownID_F' und leg die Beziehung zur Tabelle 'Towns' mit referentieller Integrität an.
Die Auflösung zu einer Zwischentabelle (BefindetSichIn) bringt nichts, da sich weder ein Bewerber noch eine Uni gleichzeitig in unterschiedlichen Städten befinden werden.
Hey Hey,
langsam bekomm ich den Überblick ;D Einige Fragen bleiben allerdings noch.
Zitatstell' in die Tabellen Universities und Applicants je ein Fremdschlüsselfeld 'TownID_F' und leg die Beziehung zur Tabelle 'Towns' mit referentieller Integrität an.
Kann ich nicht einfach die beiden Tabellen um das Attribut City erweitern und die Städte jeweils manuell eintragen? Hat es überhaupt Vorteile eine extra Tabelle für Städte anzulegen?
ZitatKommt halt auch darauf an, wie du den Transfer vom Interview zur Tabelle 'ApplicantHavingJob' veranstaltest.
'Successful' (Ja/Nein) könnte dabei ein Auslöser für den Transfer sein (KÖNNTE) - soll heißen es kann auch weggelassen werden, wenn du den Datentransfer auf Formularebene dann anders anlegst. In einzelnen Fällen ist es durchaus gebräuchlich oder erlaubt eine Tabelle gewollt zu denormalisieren.
Damit kann ich leider nicht viel anfangen, da ich generell nicht weiß wie ich einen solchen Transfer realisiere :\ .. Vll hilft es ja wenn ich die Aufgabenstellung mal weiter vorlege.
Es soll realisiert werden, dass man sehen kann an welchem Datum ein Interview stattgefunden hat und ob der Bewerber nach diesem Interview für diesen Job eingestellt wurde.
Weiter müssen einige Abfragen an die Datenbank implementiert werden, sowie Reports kreiert werden. Dies sollte allerdings kein Problem sein, sobald ich die komplett richtige Beziehung zwischen allen Tabellen erstellt habe
Am Ende soll die ganze Datenbank über eine Art Navigationsleiste "gesteuert" werden können, bzw. einzelne Funktionalitäten darüber abgerufen und ausgeführt werden. Das würde ich dann über verschiedene "Forms" und Macros realisieren (sorry ich weiß leider nicht alle deutschen Begriffe.. ich benutze und lerne Access auf Englisch).
In dieser Navigation muss dann ja irgendwie realisiert werden, dass nach einem Interview der Bewerber genommen wird oder nicht.. dementsprechend müssten die anderen Tabellen sich ja ändern.. oder denke ich da zu kompliziert? :\
Mfg
Hi,
"...Hat es überhaupt Vorteile eine extra Tabelle für Städte anzulegen..."
JA, das Tabellenmodell bleibt dadurch normalisiert ;)
Es ist ja auch in der Folge kein besonderer Aufwand in einem FORMULAR ein Kombifeld einzubauen in dem alle Städte aufgelistet werden um sie so an die Fremdschlüsselfelder zu liefern.
"Es soll realisiert werden, dass man sehen kann an welchem Datum ein Interview stattgefunden hat ..."
Naja, das ist in der Interwiew-Tabelle zu ersehen. Andererseits kann man in der Interwiew-Tabelle das Feld 'ApplicantID_F' nicht eindeutig indizieren, da sonst kein Bewerber ein weiteres Interview haben kann.
Daraus folgt die Notwendigkeit der 'ApplicantHavingJob'-Tabelle.
"Damit kann ich leider nicht viel anfangen..."
Nun, wenn du weiter denkst - also an die Zeit nach der Erstellung des Tabellenmodells - könnte man mittels VBA einen Transfer der 'ApplicantID' und der 'UniJobID' in die Tabelle 'ApplicantHavinJob' vernalassen, wenn Successful auf Ja gestellt wird.
...über verschiedene "Forms" und Macros realisieren ..."
Das ist die 'normale' Vorgehensweise, die von meiner Seite (und nicht von meiner) positiv bewertet wird. Allerdings rate ich von der Verwendung von Makros persönlich ab und rate zu VBA. Die Nachteile von Makros wurden in diesem Forum X-Mal deutlich und unmissverständlich abgehandelt.
"In dieser Navigation muss dann ja irgendwie realisiert werden, dass nach einem Interview der Bewerber genommen wird oder nicht.. ..."
Nicht in der Navigation, das passiert bei der Dateneingabe und u.U. in der von mir skizzierten Art.
Hi,
Zitat von: M@xi am November 07, 2014, 20:14:18
Hat es überhaupt Vorteile eine extra Tabelle für Städte anzulegen?
das hat vor allen Dingen den großen Vorteil, dass man unterschiedliche Schreibweisen zu einem Ort vermeiden kann, wenn diese zentral eingepflegt werden.
An das Benutzen einer Kombobox habe ich noch gar nicht gedacht, super Sache! Ich habs soweit Begriffen und jetzt macht es auch Sinn, die Städte als eine extra Tabelle zu führen :)
ZitatDas ist die 'normale' Vorgehensweise, die von meiner Seite (und nicht von meiner) positiv bewertet wird. Allerdings rate ich von der Verwendung von Makros persönlich ab und rate zu VBA. Die Nachteile von Makros wurden in diesem Forum X-Mal deutlich und unmissverständlich abgehandelt.
Ich habe VBA leider noch überhaupt nicht behandelt und uns wurden bisher nur das Benutzen von Macros beigebracht - und es wird auch gefordert Macros zu benutzen, also bin ich daran wohl gebunden.
Zitat.. nach der Erstellung des Tabellenmodells - könnte man mittels VBA einen Transfer der 'ApplicantID' und der 'UniJobID' in die Tabelle 'ApplicantHavinJob' vernalassen, wenn Successful auf Ja gestellt wird.
Heißt dass also für mich, dass ich das vernachlässigen kann und quasi für eine (fiktive) spätere Benutzung erstellt habe?
Ich würde jetzt so vorgehen dass ich die Tabellen mit jeweils 10 Bewerbern, 10 Unis, 10 Jops, 10 Städten und 10 Skills "füttern" würde. Dann würde ich mir ein Szenario ausdenken, in dem ich die Jops / Bewerber mit Skills und Städten verknüpfen würde und die Jops "verteilen" würde.
Danach kann ich dann ja die Abfragen und Reports implementieren und die NaviLeiste umsetzen. Macht doch Sinn, oder? ???
Nochmal ein riesen Danke an euch beide! Super Hilfe!
Mfg
Hallo,
"... Heißt dass also für mich, dass ich das vernachlässigen kann ..."
Nein, das heißt das nicht - sonst ist die Funktionalität nicht gegeben, dass ein Bewerber nur einen Job annehmen kann.
Diesen Transfer kann man unter anderem auch mit Macros lösen.
Ich würde dir - um die nächste Frage zu beantworten - diese Tabellen ebenfalls mittels Dateneingabe in geeignete Formulare vornehmen.
Du brauchst dir auch weiter keine Szenarien zusammendichten, DAS Datenmodell muss gewährleisten, dass ALLE Forderungen an die Datenbank erfüllt werden können.
Die entsprechenden Eingaben werden dann OHNE weitere Verknüpfungen zu erfinden mittels Formularen getätigt.
Die Formulare bauen in der Regel auf Tabellen und/oder Abfragen auf in denen die benötigten Verknüpfungen (Relationen) bereits erstellt sind.
Weiter sind dann auswertende Abfragen zu erstellen und Berichte auf diesen aufzubauen.
Einen Aufruf der Berichte wirst du dann über die 'NaviLeiste' realisieren können.
Tut mir leid aber ich tue mich wirklich schwer das alles zu begreifen.. und vor allem auch es in Bezug zu meiner Aufgabe zu bringen...
Ich habe mittlerweile fast alle Tabellen (manuell) mit Daten versehen. Es gibt nun diverse Jobs, Skills, Bewerber, Unis etc. die einzigen Tabellen die ich noch nicht gefüllt habe sind Interviews, BewerberHatJob und BewerberHatSkill.. Ich weiß nur einfach nicht ob ich überhaupt auf dem richtigen Weg bin und nicht einfach nur alles falsch mache -.-'
Vor allem verwirren mich aber auch die "Verknüpfungstabellen" - vom Prinzip sind die klar - nur die Subdatasheed's in den äußeren Tabellen bringen mich dann wieder total durcheinander..
Ich habe für die Uni's auch schon ein Formular (mit Macro) erstellt, über das man weitere Uni's hinzufügen kann (ohne bei Index 1 anzufangen) - und das funktioniert.
Ich tue mich einfach sehr schwer vernünftig an etwas zu arbeiten ohne wirklich zu wissen ob ich es richtig mache.. es geht immerhin auch um etwas (30% der Note).
Kann ich dir vielleicht mal meine bisherige Arbeit per PM schicken und du wirfst einen Blick drauf?
Mfg Marcel
Hallo,
deine DB komprimieren/reparieren, danach zippen und hier im Forum hochladen.
Ich habe nicht immer Zeit und so haben auch die anderen hier die Möglichkeit dir einen Rat zu erteilen. :D
Moin,
also ich habe jetzt schon ordentlich weiter gearbeitet und bin zuversichtlich dass bisher alles so stimmt. Ich habe angefangen Formulare, Abfragen und Reporte zu erstellen und bisher scheinen alle zu funktionieren wie sie sollen.
Nun stehe ich allerdings mal wieder vor einem Problem.. Ich würde gerne ein Formular erstellen, um einen neuen Bewerber in die Datenbank aufzunehmen. Allerdings möchte ich, neben seinen Informationen auch direkt angeben welche Skills er hat. Ich habe das schon über "check-boxen" versucht, hat allerdings nicht geklappt :\ ..ich vermute, dass muss iwie im Zusammenhang mit Macros realisiert werden, allerdings wüsste ich nicht wie ich die Bedingungen formuliere :\ (if-anweisungen etc.?)
Ich hatte die Idee das man ein Formular hat, wo man alle Informationen zum neuen Bewerber eingibt und unten alle Skills aufgelistet hat und anklicken kann, über welche er verfügt. Dies müsste dann natürlich auch in der Tabelle "ApplicantHavingSkills" übertragen werden - hinzu kommt was passiert wenn man einen Skill hinzufügt?! (obwohl das vll vernachlässigt werden kann)
Das gleiche Problem entsteht natürlich auch wenn ich einen neuen Job hinzufügen möchte, sprich direkt auch die für ihn geforderten Skills - in einem Formular.
Für Ideen, Vorschläge, generelle Kritik / Verbesserung & evtl. gefundene Fehler wäre ich sehr dankbar :)
Anbei die bisherige Datenbank + Aufgabenstellung (ich arbeite jeden Tag dran - aber dass ist der momentane aktuelle Stand).
Mfg M@xi
Hallo,
ich kann die Dateien nicht entpacken, womit hast du das Zip-File erstellt?
Mit 7zip, da man allerdings keine .7z datein hochladen darf, hab ich die endung in .zip geäbdert. Es aber nachwievor ein Archiev. Versuch einfach mal die Endung in .rar oder .7z zu ändern :)
Na, das hättest du auch gleich dazu sagen können. Allerdings klappt es immer noch nicht, Fehlermeldung: "Das Kompressionsverfahren ... wird nicht unterstützt". Ich setze 7zip Version 4.65 ein. Vielleicht kannst du ja ein kompatibleres Zip-File erzeugen.
Entwarnung:
Nach einem Update auf Version 9.20 hat es nun doch noch geklappt!
Bis später...
Nachtrag:
ZitatAllerdings möchte ich, neben seinen Informationen auch direkt angeben welche Skills er hat.
Die Frage hätte man auch ohne Einsicht in die DB beantworten können. Das löst du am besten mit Hilfe eines Unterformulars, gebunden an die Tabelle "ApplicantHavingSkills". Die Auswahl der Skills kann mit Hilfe eines Kombifeldes vorgenommen werden. Dabei sollte allerdings verhindert werden, dass Skills mehrfach ausgewählt werden können. Dazu kannst du einen eindeutigen Mehrfelderindex auf ApplicantID_F und SkillID_F legen.
Zuallererst jedoch solltest du die diversen Schreibfehler bzgl. Job und JobDescription bereinigen, sonst gibt es am Ende noch ein großes Durcheinander.
Das klingt ziemlich gut.. allerdings habe ich absolut keine Ahnung wie ich das umsetzen soll.. Wie genau müssten denn die Einstellungen für die Combobox lauten? Nach dem Auswählen einer Option mit der ComboBox möchte ich diese dann ja im Formular sehen, wie mache ich das? Wie genau lege ich einen Mehrfachindex auf die beiden Felder?
Schreibfehler habe ich behoben, danke :D
Mfg
Oh evtl weiß ich was du meinst!
Ist ein Mehrfelderindex einfach ein zweiter PK in einer Tabelle? Das wäre doch in den Tabellen JobReq..Skill ebenfalls sinnvoll. Wäre es nicht weiter auch notwendig in der Tabelle AppHav..Skill einen PK auf die AppID zu legen, da jeder App nur einen Job haben darf?!
Mfg
Einen zweiten PK gibt es nicht, wie der Name schon sagt, kann es nur einen "Primary Key" geben. Der PK sollte in der Regel ein Autowert-Key sein, das vereinfacht die Handhabung. Aber du kannst einen eindeutigen Index über zwei Felder hinzufügen, wobei du im Indexfenster in der Folgezeile nur das Datenfeld auswählst und die linke Spalte frei lässt. Die Eigenschaften des Index werden in der ersten Zeile festgelegt. Diese Vorgehensweise wäre wohl bei allen Verknüpfungstabellen sinnvoll.
Was die Formulare betrifft, so hast du ja bereits ein Formular "AddApplicants" auf Basis der Tabelle "Applicants". Als nächstes erstellst du ein Formular auf Basis der Tabelle "ApplicantHavingSkills", dieses fügst du dann in das erste Formular als Unterformular ein und verknüpfst es über den gemeinsamen Key, die "ApplicationID_F". Das Textfeld mit "SkillID_F" änderst du in ein Kombinationsfeld, als Datensatzherkunft nimmst du die Tabelle "Skills", Einstellung Nur Listeneinträge = Ja, gebundene Spalte ist die 1, Spaltenanzahl 2, Spaltenbreiten bspw. "0;4". Damit kannst du dann Bewerber einfügen und ändern und ihnen ihre Fähigkeiten zuordnen.
Noch ein Tipp:
Benenne die Objekte so, dass man ihren Typ sofort erkennt, auch das erleichtert den späteren Umgang damit. Also bspw. tab_xxx oder tbl_xxx für Tabellen, frm_zzz für Formulare usw.
Ich glaube ich meinte das gleiche wie du, wusste nur nicht wie ich es richtig ausdrücken sollte :P ..es klappt jedenfalls :D
ZitatDiese Vorgehensweise wäre wohl bei allen Verknüpfungstabellen sinnvoll.
In der AppHav..Skills jedoch nicht oder? Ich möchte jeden Bewerber nur einmal in der Tabelle haben, allerdings soll ein Jop durchaus mehrere Bewerber abbekommen können. Sprich hier soll nur die AppID einzigartig sein.
Mfg
ZitatIn der AppHav..Skills jedoch nicht oder?
Doch sicher, ein Bewerber kann eine Fähigkeit doch nicht mehrfach besitzen. Aber du meintest wohl die Tabelle "ApplicantHavingJob" und damit hast du wohl Recht, sofern es nicht möglich ist, mehrere (Teilzeit-) Jobs an einer oder verschiedenen Unis anzunehmen.
ZitatSchreibfehler habe ich behoben, danke
Was das betrifft, so bin ich skeptisch, denn du weißt ja immer noch nicht, wie man's richtig schreibt. ;-)
Genau die meinte ich ;) ..mein Kopf schaltet sich langsam ab :P
Sagen wir so: Ich habe Jop nun überall mit b geschrieben ;P
Mfg
... und Describtion mit p?? :)
Helloo,
das nächste Problem hat sich eingeschlichen.. Ich habe ein Formular erstellt um die Interviews zu führen. Alles super soweit! Nun möchte ich, dass wenn ein Bewerbungsgespräch erfolgreich war, dass an die entsprechende Tabelle weitergeleitet wird und dort ein entsprechender Eintrag erstellt wird.
Dafür habe ich ja bereits ein True/False - Feld integriert. Wenn nun das Interview-Formular ausgefüllt wurde, das Feld "true" sagt und der (Interview)Eintrag erstellt wird - soll in dem Fall direkt auch ein Eintrag in der anderen Tabelle getätigt werden.
Habe leider nicht wirklich ne Idee wie das umzusetzen ist :\
Freue mich über jegliche Ideen :)
Mfg
Ich hatte bisher folgende (abstrakte) Idee, die vermutlich auch nicht ganz falsch ist:
Ich denke es ist über ein Macro zu realisieren, dass ich als "PressEnterEffect" (oder so) an das Formular anhefte.
Das Macro würde dann wie folgt aussehen:
IF
[Bewerbungsgespräch].[Erfolgreich]=True
THEN
... hier hackt es da ich nicht weiß, wie und ob ich nun in andere Tabellen Daten einfügen kann.. :\ .. ich dachte an etwa soetwas:
[BewerberHatJob].[BewerberID]=[Bewerbungsgespräch].[BewerberID] UND
[BewerberHatJob].[JobBeschreibungID]=[Bewerbungsgespräch].[JobBeschreibungID];
Aber wie ist dass in Access umzusetzen? :\
Hallo,
ich denke, dass die Denke falsch ist....
und das zugrundeliegende Tabellenkonzept..
Wenn ein Interview (Vorstellungsgespräch) geführt und für erfolgreich ( Vergabe des Jobs) angesehen wurde, dann reicht das Setzen eines "Hakens" (z. B. für Feld "HatJob") in dieser Tabelle aus... Dafür braucht es keine "Übertragung" in andere Tabelle(n).
Doch, leider schon. Es müssen gewisse Bedingungen erfüllt werden die es nötig machen eine solche Tabelle zu haben.
Selbst wenn meine Denkweise falsch ist, gibt es denn eine Möglichkeit diese Funktionalität zu gewährleisten?
Hallo,
ich sehe das wie Franz, eine weitere Tabelle dürfte mit ziemlicher Sicherheit überflüssig sein. Du würdest ja redundante Daten erzeugen, die es in einer Datenbank nicht geben sollte. Eine Abfrage stellt doch die Daten auch zusammen.
Warum glaubst Du die Tabelle zu benötigen ?
PS:
Nur als Anmerkung, das ist kein Makro, den Code den Du da zeigst, das ist VBA Code. Makros sind bei VBA etwas anderes und haben mit VBA nichts zu tun.
ZitatWarum glaubst Du die Tabelle zu benötigen ?
Ein Bewerber soll nur einen Job annehmen können. Ein Job soll aber von mehreren Bewerbern bekommen können.
Zitatdas ist kein Makro, den Code den Du da zeigst, das ist VBA Code. Makros sind bei VBA etwas anderes und haben mit VBA nichts zu tun.
Ich habe weiter unten schon gesagt dass ich leider keine Ahnung von VBA habe und ich Makros benutzen muss. Der Code den ich gepostet habe, war einfach nur eine ungefähre Idee, wie ich gedacht habe es umsetzen zu können. Ich habe versucht mich an die SQL Syntax zu halten und mir das so iwie zusammen zu reimen.
Also noch einmal zu meinem Problem - unabhängig davon ob es Redundanzen erzeugt, unnötig ist oder sonst was ^^.
Ich habe zwei Formulare: "Interview" und "BewerberHatJob". In Interview gibt es ein TRUE/FALSE - Feld, welches angeben soll ob das Interview erfolgreich war oder nicht - sprich der Bewerber den entsprechenden Job bekommt. In diesem Fall sollen die beiden Felder der Tabelle BewerberHatJob gefüllt werden - zum einem die ID des entsprechenden Bewerbers und die ID des Jobs.
Folgendes Makro habe ich erstellt:
IF [Forms].[Interviews].[Erfolgreich]=TrueTHEN
OpenForm BewerberHatJobWHERE
[BewerberHatJob].[BewerberID_F]=Interviews.BewerberID_F And [BewerberHatJob].JobAusschreibungID_F]=Interviews.JobAusschreibungID_F
CloseWindow - Form - BewerberHatJob - Save:Yes
END IFDie Formulare selbst funktionieren alle. Ich habe versucht das Formular für die Interviews mit dem Makro zu verbinden, so dass es "bei Update" ausgeführt wird - dies funktioniert allerdings nicht, bzw es passiert nichts (außer dass das Interview selbst, in die Interview Tabelle geschrieben wird - was ja auch so sein soll)
Hoffe es ist jetzt verständlicher. Mir geht es in erster Linie nur darum ob das was ich vorhabe funktioniert und warum es bei mir noch nicht funktioniert ;D
Mfg
Hallo,
Du bist auf dem Holzweg...
Mach im Form "Interview" eine Schaltfläche "btnJobErhalten" und füge eine VBA-Ereignisprozedur für das Klick-Ereignis der Schaltfläche ein (das musst Du halt lernen, wenn Du solche Funktionalitäten in die DB einbauen willst):
Sub btnJobErhalten_Click()
Currentdb.Execute "Insert into BewerberHatJob (BewerberID_F,JobAusschreibungID_F) Values ("& Me!BewerberID_F & "," & Me!JobAusschreibungID_F & ")",dbFailOnError
End Sub
Das ist super! Vielen Dank - ich werde meine Professorin fragen, ich denke es sollte allerdings möglich sein VBA zu benutzen.. zumindest in kleinem Ausmaß.
Ich habe den Code von Click auf AfterUpdate geändert. Ich habe allerdings noch ein kleineres Problem. Der Eintrag wird jetzt erstellt, sobald ich das Häkchen im Formular gesetzt habe. D.h. sogar noch bevor es einen dazugehörigen Eintrag für das Interview gibt. Zu welchem Event muss ich den/die VBA zuordnen, um beide Einträge gleichzeitig zu erstellen?
Ich vermute da kommt dann eine if-Abfrage ins Spiel, die Prüft ob das Häkchen auf true gesetzt ist?!
Ich möchte also mein Formular soweit ausfüllen, Häkchen setzen oder auch nicht und es dann "abschicken". Der Eintrag in der Interview-Tabelle wird erstellt und sollte JobErhalten=true, so wird der Eintrag in der anderen Tabelle ebenfalls erzeugt.
Mfg und vielen Dank!
Hallo,
Sub Form_Afterupdate()
If Me!JobErhalten Then
Currentdb.Execute "Insert into BewerberHatJob (BewerberID_F,JobAusschreibungID_F) Values ("& Me!BewerberID_F & "," & Me!JobAusschreibungID_F & ")",dbFailOnError
End If
End Sub