Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Datenbank erstellen - Probleme bei der Umsetzung der Verknüpfung von Tabellen

Begonnen von M@xi, November 05, 2014, 19:47:43

⏪ vorheriges - nächstes ⏩

M@xi

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

M@xi

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? :\

DF6GL

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).
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

M@xi

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?

MzKlMu

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.
Gruß Klaus

M@xi

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]=True

THEN OpenForm BewerberHatJob

WHERE [BewerberHatJob].[BewerberID_F]=Interviews.BewerberID_F And [BewerberHatJob].JobAusschreibungID_F]=Interviews.JobAusschreibungID_F


CloseWindow - Form - BewerberHatJob - Save:Yes

END IF

Die 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

DF6GL

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
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

M@xi

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!

DF6GL

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
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access