Neuigkeiten:

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

Mobiles Hauptmenü

Aktualisierung aus Tabelle an andere Tabelle weitergeben

Begonnen von Rathi, Dezember 18, 2021, 17:23:29

⏪ vorheriges - nächstes ⏩

Rathi

Hallo zusammen!

Ich hoffe, Ihr könnt mir bei einem Problem helfen, bei dem ich auf dem Schlauch stehe.

Ich habe eine Kontaktdatenbank mit der entsprechenden Tabelle tbl_Kontakte.

In bestimmten Situationen müssen nur bestimmte Personen informiert werden und dafür besteht eine weitere Tabelle tbl_AA01.
Beide Tabellen stehen in einer 1:n Beziehung zueinander.
Diese Tabelle befülle ich über ein Endlosformular. Dieses Formular besteht aus Textfeldern, Checkboxen und einem Kombifeld.
Das Kombifeld ist mit einer Abfrage verknüpft, welche auf die Tabelle tbl_Kontakte zurückgreift.
Angezeigt wird der Nachname, welcher dann gewählt wird und daraufhin werden alle anderen Felder befüllt. Dieses löse ich über VBA und mittels dem Ereignis ,,Nach Aktualisierung".
Besonderheit sind die Telefonnummern, da jeder gerne auf einem anderen Weg informiert werden möchte. Über die Checkboxen wähle ich aus, welche Telefonnummern in die tbl_AA01 eingetragen werden soll.
Das klappt alles so wie ich es mir vorstelle.

Jetzt das Problem:
Wenn ich in der tbl_Kontakte eine Änderung vornehme, egal, ob Rufnummer oder Name oder Funktion, soll sich der entsprechende Eintrag in der tbl_AA01 automatisch aktualisieren.
Und ich komme gerade zum Verrecken nicht drauf, wie ich das bewerkstellige.

Ich habe die Datenbank in ihrer einfachsten Version mit hochgeladen und hoffe auf eure Hilfe.

Danke schon mal im voraus.

MzKlMu

#1
Hallo,
der Aufbau der DB dürfte grundsätzlich falsch sein. Aber um da etwas genaueres sagen zu können, musst Du erst mal einiges erklären.

Wieso steht bei den Funktionen mal eine Name und dann eine Telefonnummer ?
Für einen Außenstehenden ist das reichlich verwirrend
Warum ist der Fremdschlüssel Kontakt_ID_f leer ?

Bitte mal die Zusammenhänge genauer erklären.

Wenn das richtig aufgebaut wird, lässt sich das alleine über die Beziehungen (mit weiteren/anderen Tabellen) realisieren.
Da wird dann kein Buchstabe VBA notwendig sein.
Gruß Klaus

Rathi

Hallo Klaus,

danke schon mal für Deine Antwort und Hilfsbereitschaft.

Zum einen habe ich den Anhang angepasst, so daß die verwirrenden Einträge nicht mehr existieren.
Die Einträge sind natürlich frei erfunden wegen des Datenschutzes.

Der Fremdschlüssel Kontakte_ID_f ist noch eine Altlast aus vielen Versuchen die beiden Tabellen in eine vernünftige Beziehung zu setzen, weshalb er auch leer ist.
Aber irgendwie scheine ich hier bei den Beziehungen zu versagen.

Der Grund für diese DB besteht darin zum einen alle nötigen Kontakte (tbl_Kontakte) zu haben und zum anderen darin, daß bei bestimmten Vorkommnissen nur bestimmte Kontakte über eine bestimmte Rufnummer zu informieren (tbl_AA01).
Zusammengebastelt (ich glaube, daß ist hier die richtige Bezeichnung  :) ) habe ich die DB aus meinen eigenen Vorstellungen wie es funktionieren könnte und Wege dazu, die ich im Netz gefunden habe.
Von daher kann es sehr gut sein, daß hier grundsätzlich etwas falsch ist.
Bezeichnen wir mich mal ruhig als Anfänger.

Gruß, André

MzKlMu

#3
Hallo,
Zitat von: undefinedDer Fremdschlüssel Kontakte_ID_f ist noch eine Altlast
der wird natürlich benötigt und muss auch einen Wert (Bezug) zum Kontakt enthalten, wie das auch auf dem Beziehungsbild zu sehen ist. Die Felder Nachname, Abteilung und Funktion sind in der Tabelle tbl_AA01 überflüssig, die sind ja schon beim Kontakt und lassen sich über die Beziehung jederzeit anzeigen.
Du brauchst auch noch Tabellen für die Funktion und die Abteilungen.

Ich baue Dir das später mal um.
Aber erst mal noch eine Frage: Kann es zu einem Vorkommnis mehrere Kontakte für eine Benachrichtigung geben oder immer nur einer ?
Gruß Klaus

Rathi

Bei einem Vorkommnis müssen immer mehrere Kontakte informiert werden und von den Kontakten meist immer nur eine Telefonnummer. Hier kann aber es aber auch sein, daß wenn das Diensthandy nicht erreichbar ist als Alternative die Privatnummer genutzt werden soll. Daher ist bei den Rufnummern eine Mehrfachwahl nötig.

Es gibt auch mehrere Arten von Vorkommnissen, die immer eine andere Informationskette lostreten.
Aber wenn ich das eine habe, kann ich das andere "nachbauen".

Danke.

MzKlMu

#5
Hallo,
Du brauchst ja auch eine Tabelle für das eigentliche Vorkommnis, mit Beschreibung und Datum.
Zitat von: undefinedEs gibt auch mehrere Arten von Vorkommnissen, die immer eine andere Informationskette lostreten.
Da dürfte auch noch eine Tabelle für die Vorkommnisarten notwendig sein und wahrscheinlich auch noch eine weitere Tabelle zur Zuordnung der Informationskette zum Vorkommnis.
Woran erkennst Du wer für was zu informieren ist?
Bei den Vorkommnissen wäre auch noch zu klären, ob das immer die gleichen Vorkommnisse sind die nur an unterschiedlichen Tagen stattfinden, oder ist ein Vorkommnis ein Freitext der immer anders zu formulieren ist?

Bitte genauer erläutern.
Gruß Klaus

Rathi

Guten Morgen,
Es gibt insgesamt 6 mögliche Vorkommnisse, bei denen durch die Chefetage festgelegt ist, wer zu informieren ist.
Die Vorkommnisse selber müssen hier nicht erfasst werden. Es geht lediglich um die Meldung an einen bestimmten Personenkreis.
Ein Vorkommnis hat immer denselben Sachverhalt (z. B. AA01 - Lager brennt; AA02 - Mitarbeiter krank), der an unterschiedlichen Tagen stattfinden kann, welcher dann den Meldevorgang laut der Telefonlisten auslöst.
Für Vorkommnis AA01 gibt es eine Telefonliste der anzurufenden Personen.
Für Vorkommnis AA02 gibt es eine Telefonliste der anzurufenden Personen, welche sich von Vorkommnis AA01 unterscheidet.
usw usw.
Daher mein Ansatz über frm_AA01 die Kontakte für Vorkommnis AA01 auszuwählen und in tbl_AA01 zu schreiben.
Halt das mit dem Update bei Änderungen klappt nicht.

MzKlMu

#7
Hallo,
Zitat von: undefinedDaher mein Ansatz ....
Das ist der falsche Ansatz, das würde ja bedeuten, Du brauchst für jedes Vorkommnis eine Tabelle, was völlig unbrauchbar ist.
Du brauchst eine Tabelle in der alle Vorkommnisse mit dem Sachverhalt als je ein Datensatz erfasst werden.

Ich mache Dir später mal ein Beispiel fertig., aber est noch eine Frage:
Zitat von: undefinedder an unterschiedlichen Tagen stattfinden kann,
Müssen diese unterschiedlichen Tage auch dokumentiert werden ?


PS:
Wenn Du in dem Tempo weiter antwortest, dauert das Wochen bis das erledigt ist.  ;D
Gruß Klaus

Rathi

Hallo,

ich glaube wir verrennen uns da ein wenig in den Vorkommnissen oder steige wirklich nicht ganz dahinter.
Oder ich erkläre scheiße.

Die Vorkommnisse sind komplett ausserhalb der Datenbank und müssen hier weder erklärt noch festgehalten werden.
Der Ablauf für den Nutzer sollte sein:
Beispiel:
Das Lager brennt (Vorkommnis AA01). Der Nutzer bekommt die Informationen darüber und muß diese telefonisch weitergeben.
Jetzt öffnet er die Datenbank, klickt auf dem Startformular auf den Button für die Kontaktliste AA01 und weiß wen er anzurufen hat.

Weiterhin soll der Nutzer in der Lage sein Kontakte in tbl_Kontakte anzulegen und zu bearbeiten (Das kriege ich hin).
Weiterhin muß er in der Lage sein, die Kontakte für AA01 anzupassen falls jemand neues dazukommt oder ein Kontakt wegfällt. Gibt es Updates zu den Kontakten in tbl_Kontakte, dann sollen diese allerdings automatisch übermittelt werden.

PS:
Ich lese mich nebenbei noch fleißig ein und versuche mein Wissen zu steigern und muß leider auch noch arbeiten. Deshalb ist mein Tempo nicht wirklich schnell. Sorry for that.

Beaker s.a.

Hallo Rathi,
ZitatDie Vorkommnisse sind komplett ausserhalb der Datenbank und müssen hier weder erklärt noch festgehalten werden.
Nun gut, erklärt werden müssen die nicht, ihr werdet schon wissen, was
ihr tut, aber woher soll die Kontaktliste denn wissen zu welchem Vorkommnis
sie gehört. Du brauchst also schon eine Tabelle "Vorkommnisse". Die hat
dann eben nur 6 Datensätze mit einem PK (Autowert) und einer Bezeichnung
(AA01 usw.). Dieser PK kommt dann als FK in die Kontaktliste. Vermutlich
besser in eine n:m-Tabelle zwischen Kontakte und Vorkommnisse. Es kann ja
sein, dass ein Kontakt zu mehreren Vorkommnissen benachrichtigt werden muss.
Deren PK kannst du dann als FK zusammen mit einem Datum in eine Tabelle
"Ereignisse" übernehmen, um zu sehen wie oft und/oder in welchem Abstand
sich die Vorkommnisse ereignen.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MzKlMu

Hallo,
Zitatich glaube wir verrennen uns da ein wenig
nein, wir verrennen uns da auf keinen Fall. Wenn ich einen vernüftigen Vorschalg machen will, so muss ich doch die Abläufe kenne, sonst wird das nichts, zumal Dein Ansatz ziemlich daneben lag.
Du hörst wieder von mir, heute noch.
Gruß Klaus

MzKlMu

#11
Hallo,
anbei mein Vorschlag.

Schaue Dir zunächst mal die Beziehungen an.
Dann öffnest Du das Formular frm_Kontakte.
In diesem Formular werden die Kontakte gepflegt. Hier kannst Du auch neue Kontakte eintragen oder vorhanden ändern.
Im Unterformular werden die Kontaktmöglichkeit eingetragen.
Mit dem 1.Kombi wird die Art gewählt und dann kann man im Eintragsfeld den Wert eintragen oder ggf. auch ändern.
Du kannst beliebig viele Kommunikationsarten anlegen, die werden immer mit Bezug zur Person gespeichert.

Dann schaust Du Dir das Formular frm_Vorkommnis an. Hier können die 6 Vorkommnisse mit den Sachverhalten angezeigt werden. Im Unterformular wird ausgewählt wer zu informieren ist und im 2. Kombi wie er zu informieren ist. Der entsprechend Wert dafür wird dann automatisch angezeigt.
Dieser Wert ist automatisch immer aktuell. Änderst Du im Kontaktformular eine Telefonnummer wird diese automatisch auch in der Informationskette geändert angezeigt.

Ich habe in jedem Formular auch 3 Buttons angelegt zum Blättern. Einen extra Speichern Button braucht es nicht, Access speichert automatisch.

Der VBA Code den ich erstellt habe, dient ausschließlich der Benutzer- und Ablaufsteuerung, da werden keine Daten beeinflusst. Dies geschieht nur über die Beziehungen der Tabellen untereinander.

Und bitte keine eingebetteten Makros verwenden, auch wenn es noch so einfach erscheint. Mit Makros arbeitet niemand ernsthaft. Du wirst auch keine Hilfe dazu bekommen, wenn Du dazu eine Frage hast.

Schaue es Dir sorgfältig an und versuche es zu verstehen.
Bei Fragen bitte melden.
Gruß Klaus

Rathi

Hallo Klaus,

vielen lieben Dank für Deine Mühen mir mal zu zeigen, wie es richtig läuft. :)
Bisher konnte ich nur einen flüchtigen Blick darauf werfen, aber ich beginne schon zu verstehen.
Ich werde mir Dein Beispiel noch wesentlich genauer anschauen, um ganz in die Materie einzutauchen.

Bei Rückfragen darf ich mich hoffentlich wieder bei Dir melden?!

Danke nochmal.

Gruß,
André