Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Database91 am Oktober 24, 2019, 08:12:31

Titel: Formular und ComboBox
Beitrag von: Database91 am Oktober 24, 2019, 08:12:31
Moin zusammen,

ich bin noch recht neu was Access und VBA anbelangt und ich habe ein Problem mit einer Combobox in einem Formular.

Meine Datenbank ist folgendermaßen aufgebaut. Ich habe eine Mitarbeitertabelle und eine Tabelle mit Einweisungsdaten.
Ich habe mir ein Formular gebaut mit welchem ich die Tabelle der Einweisungsdaten befüllen möchte. Wenn es jedoch ein interner Mitarbeiter ist, so sollen die Basisdaten (Nachname, Vorname etc.) automatisch gefüllt werden.
Das funktioniert auch alles wunderbar. Auf Knopfdruck sollen die Daten dann in die tbl_Einweisung übertragen werden.
Dabei entsteht das Problem. Aus der Combobox, in welcher der Vorname und Nachname eingegeben bzw. ausgewählt werden kann (Daten aus der tbl_Mitarbeiter) zieht mir mein Code nur die ID heraus, nicht aber den Namen. Lösche ich die ID als Spalte in der Combobox bekomme ich einen Fehler, dass ein falscher Datentyp vorhanden ist.

Der Code des Buttons ist folgender:

Private Sub Befehl899_Click()
CurrentDb.Execute _
"INSERT INTO tbl_Einweisung (Name_Vorname, Geburtsdatum , Email_Adresse, Firma, Firmenanschrift, Abteilung, Kostenstelle, Einweisender, Datum_der_Einweisung, Personalnummer, Kategorie_der_Einweisung) " _
          & "SELECT " & Me.Controls("cmb_Nachname").Value & ", " _
                & "'" & Nz(Me.Controls("txt_Geburtsdatum").Value, "") & "', " _
                & "'" & Nz(Me.Controls("txt_Email_Adresse").Value, "") & "', " _
                & "'" & Nz(Me.Controls("txt_Firma").Value, "") & "', " _
                & "'" & Nz(Me.Controls("txt_Firmenanschrift").Value, "") & "', " _
                & "'" & Nz(Me.Controls("txt_Abteilung").Value, "") & "', " _
                & "'" & Nz(Me.Controls("txt_Kostenstelle").Value, "") & "', " _
                & "'" & Nz(Me.Controls("cmb_Einweisender").Value, "") & "', " _
                & "'" & Nz(Me.Controls("txt_Datum_der_Einweisung").Value, "") & "', " _
                & "'" & Nz(Me.Controls("txt_Personalnummer").Value, "") & "', " _
                & "'" & Nz(Me.Controls("lst_Kategorie_der_Einweisung").Value, "") & "'", dbFailOnError
End Sub

Ich habe mal ein Bild des Formulars angehangen, in der Hoffnung, dass es das ganze verständlicher macht.

Besten Dank im Voraus
Titel: Re: Formular und ComboBox
Beitrag von: MzKlMu am Oktober 24, 2019, 08:33:12
Hallo,
das Vorhaben dürfte in der Form ersatzlos überflüssig sein.
Es wird nur die ID übertragen, sonst keine Daten des Mitarbeiters.
Das ist ja der Sinn einer ID.
Bei korrekte Aufbau der Datenbank wirst Du den gezeigten VBA Code gar nicht benötigen. Für den Anfang wird sowieso so gut wie kein VBA Code benötigt.
Zeige mal ein Bild des Beziehungsfensters. Beziehungen wird es ja hoffentlich geben.
Und/oder schreibe mal die Tabellen genauer.
Titel: Re: Formular und ComboBox
Beitrag von: Database91 am Oktober 24, 2019, 08:43:39
Nein, es gibt bisher keine  Beziehungen.
Ich habe das Formular ursprünglich als gebundenes Formular erstellt, da es nur darum ging die tbl_Einweisung auszufüllen.
Mit der Zeit sind weitere Anforderungen, wie die Verbindung zur tbl_Mitarbeiter dazu gekommen.
Dafür habe ich einfach die ComboBox verwendet und als Datensatzherkunft die tbl_Mitarbeiter genommen.
Die Hälfte der Textfelder haben als Steuerelement dementsprechend auch die ComboBox hinterlegt.

Wie kann ich das potentielle Übernehmen der Daten aus tbl_Mitarbeiter und speichern der Daten in tbl_Einweisung denn realisieren?
Titel: Re: Formular und ComboBox
Beitrag von: MzKlMu am Oktober 24, 2019, 08:50:16
Hallo,
wie gesagt, es ist überflüssig, es wird nur die ID übertragen, sonst nix. Und das mit einem gebundenen Formular.
Du machst zu früh Formulare.
Der 2. Schritt nach den Tabellen sind die Beziehungen. Ohne Beziehungen ist das ein Datenhaufen.
Richte Beziehungen ein und zeige hier das Bild, dann sehen wir weiter.

Das oben gezeigte Formular ist immer noch gebunden. In einem gebundenen Formular kann man nicht noch eine Anfügeabfrage verwenden. Das Vorhaben geht also sowieso schief.

Du solltest Dich dringend mit den Grundlagen beschäftigen.
Das wird so nix.
https://www.access-tutorial.de/
Titel: Re: Formular und ComboBox
Beitrag von: Database91 am Oktober 24, 2019, 09:04:46
Was für Beziehungen soll ich denn erstellen?
Ich war immer der Meinung, dass ich die Beziehungen nur brauche, wenn ich Abfragen erstelle, was ich ja nicht habe.

Wenn dann würde ich eine Beziehung zwischen der ID der tbl_Mitarbeiter und dem Name, Vorname Feld der tbl_Einweisung für sinnvoll halten (siehe Bild).
Oder verstehe ich da etwas gänzlich falsch?

Titel: Re: Formular und ComboBox
Beitrag von: MzKlMu am Oktober 24, 2019, 09:17:16
Hallo,
Beziehungen haben mit Abfragen nichts zu tun.
Und wieso hast Du keine Abfragen ?
Eine Datenbank ohne Abfragen kann es eigentlich nicht geben. Formulare bassieren immer auf Abfragen, nicht auf den Tabellen.

Die gezeigte Beziehung ist falsch. Die Felder die in der Einweisungstabelle auf die Daten des Mitarbeiters verweisen sind überflüssig Es wird nur ein Zahlenfeld Longinteger) benötigt das auf die ID des Mitarbeiters verweist und darüber läuft dann auch die 1:n Beziehung.
Hast Du nur diese beiden Tabellen ?
Ich verweise noch mal auf den Link zu den Grundlagen oben.

Titel: Re: Formular und ComboBox
Beitrag von: Database91 am Oktober 24, 2019, 10:26:34
Ja, ich habe bisher nur diese beiden Tabellen und eben das gezeigte Formular.
Wie gesagt, ursprünglich war es so geplant, dass das Formular die Tabelle befüllt, da brauchte ich keine Abfrage für (meiner Neulings Meinung nach).

Nach deinem Anstoß habe ich in der tbl_Einweisung ein Feld lngPersonal erstellt, welches ich in der Abfrage zwischen tbl_Einweisung und tbl_Personal als Verbindung verwende (Beziehung siehe Bild 1).
In dem an die Abfrage gebundenen Formular kann ich auch die Daten soweit eingeben und diese werden auch korrekt in der tbl_Einweisung gespeichert.

Jetzt stehe ich wieder vor der Problematik des zweiten Schrittes, dass ich gerne die Möglichkeit hätte Interne Mitarbeiter in einem Listenfeld oder ComboBox auszuwählen. Dadurch sollen dann Werte die Abteilung und Personalnummer automatisch ausgefüllt werden im Formular und nach erfolgter vollständiger Eingabe auch in der tbl_Einweisung mit abgelegt werden.

Mit der ComboBox bekomme ich es hin, dass die Daten im Formular angezeigt werden (Bild 2), allerdings werden sie nicht in der Tabelle abgelegt. (Bild 3) Ach die lngPersonal wird nicht gefüllt in der Tabelle.
Oder habe ich da noch etwas grundsätzlich falsch verstanden mit der Abfrage und lngPersonal?
Titel: Re: Formular und ComboBox
Beitrag von: DF6GL am Oktober 24, 2019, 10:54:10
Hallo,
Zitat
Oder habe ich da noch etwas grundsätzlich falsch verstanden

in der Tat..

Lad die Db mal hier hoch, datenreduziert, bzw. mit Spieldaten , repariert/komprimiert und gezippt.


Dann können wir die Db kurz überarbeiten.   ;)
Titel: Re: Formular und ComboBox
Beitrag von: Database91 am Oktober 24, 2019, 11:04:03
Habe die Datenbank als Zip hochgeladen.

Vielen Dank für die Mühen
Titel: Re: Formular und ComboBox
Beitrag von: MzKlMu am Oktober 24, 2019, 11:52:57
Hallo,
Du musst den Sinn der TAbellenfelder mal erklären.
Welche Felder in der TAbelle Einweisung beziehen sich auf den Mitarbeiter ?
Wieso gibt es in der Mitarbeitertabelle ein Datum für die Einweisung ?
In der Mitarbeitertabelle werden nur die reinen Mitarbeiterdaten gepeichert ?
Was wird denn eigentlich "eingewiesen" ?

Du musst die ganzen Zusammenhänge mal ausführlich erläutern.

PS:
Ich bin erst heute Abend wieder am PC.
Titel: Re: Formular und ComboBox
Beitrag von: Database91 am Oktober 24, 2019, 12:08:11
Das Tabellenfeld "Einweisung" aus der Mitarbeiter Tabelle bezieht sich auf etwas anderes und kann für den Problemfall ignoriert werden. Ich hatte diese Zellen nur vor dem Export nicht gelöscht.

Also in der tbl_Einweisung sollen die Daten für eine Einweisung erfasst werden.
Dabei gibt es dann die Unterscheidung zwischen Internen und Externen Einweisungen.

Bei Internen Einweisungen soll es möglich sein über das Namensfeld die Person auszuwählen.
Über die tbl_Personal sollen die Daten "Geburtsdatum", "Email_Adresse", "Abteilung", "Kostenstelle", "Personalnummer" entsprechend des Names ergänzt werden und mit in der tbl_Einweisung abgelegt werden.
Informationen zum Einweisenden, das Datum der Einweisung und die Kategorie der Einweisung müssen eingegeben werden.

Bei Externen Einweisungen müssen alle Daten in das Formular eingegeben werden.
Felder wie "Abteilung", "Kostenstelle" und "Personalnummer" müssen nicht eingegeben werden. Die Email_Adresse ist optional.

Ich hoffe damit sind die Zusammenhänge und die Intention der Datenbank ersichtlich und klar

Vielen Dank
Titel: Re: Formular und ComboBox
Beitrag von: DF6GL am Oktober 24, 2019, 14:31:01
Hallo,

diese Ausführungen habe ich noch nicht verstanden...

Dabei gibt es dann die Unterscheidung zwischen Internen und Externen Einweisungen


Woran erkennt man diesen Unterschied?

ZitatBei Internen Einweisungen soll es möglich sein über das Namensfeld die Person auszuwählen.

betrifft das die Zuordnung einer Person bei neu erstellten Einweisungen oder soll mit dem Kombi gesucht werden?

ZitatÜber die tbl_Personal sollen die Daten "Geburtsdatum", "Email_Adresse", "Abteilung", "Kostenstelle", "Personalnummer" entsprechend des Names ergänzt werden und mit in der tbl_Einweisung abgelegt werden.

Es wird nur die ID der Person abgelegt.  Die restlichen dazugehörenden Daten (Attribute)  brauchen/können nur angezeigt werden.

Die Pflege der Personen erfolgt über frm_Personal.

ZitatBei Externen Einweisungen müssen alle Daten in das Formular eingegeben werden.


Es gibt keine Unterscheidung einer Person für int. oder ext. Einweisungen.  Für beide Fälle muss eine Person angegeben werden. Notfalls gibt es eine "Dummy-Person".



Im Anhang eine Rohversion, in der
--Sonderzeichen/Leerzeichen in Namen elimiert
-- Daten in zusätzliche Tabellen normalisiert  (nicht vollständig wegen Unkenntnis der Datenlage , z. B. Kategorie_der_Einweisung, Einweisender , weiterhin Firma )
-- die Tabellenstruktur in Beziehungen gesetzt   

wurden.


Es sind noch keine Suchfunktionen eingebaut, weil diese genauer spezifiziert, bzw. erklärt werden müssen.


Titel: Re: Formular und ComboBox
Beitrag von: Beaker s.a. am Oktober 24, 2019, 15:01:52
@Database91
Bei Klaus und Franz bist du in guten Händen. Du könntest ihre Hilfe aber
sehr viel effizienter machen/nutzen, wenn du dich mit dem Link Nr. 4 in
Franz' Signatur beschäftigst; - es reicht erstmal das 1. Kapitel.
Zur Vertiefung und praktischen Übung/Umsetzung empfehle ich dieses Tool
http://www.buch.andreasstern.de/adamo.php (http://www.buch.andreasstern.de/adamo.php)
Denn IMO wird sich dein Datenmodell Ruckzuck auf ein Dutzend (oder mehr,
je nach der, von Franz schon angesprochen unbekannten Datenlage) Tabellen
erweitern, bevor an Abfragen/Formulare (Reihenfolge wie im Tutorial) zu
denken ist.
gruss ekkehard
Titel: Re: Formular und ComboBox
Beitrag von: Database91 am Oktober 29, 2019, 07:55:22
Hallo,

ZitatDabei gibt es dann die Unterscheidung zwischen Internen und Externen Einweisungen
Woran erkennt man diesen Unterschied?

Ob es ein Interner Mitarbeiter der Firma ist, er also in der Personaltabelle auftaucht, oder jemand externes, also ein Gast.
Aber die Unterscheidung liegt eigentlich nur darin, ob der Name über das Kombi ausgewählt und die Daten vorausgefüllt werden, oder nicht

ZitatBei Internen Einweisungen soll es möglich sein über das Namensfeld die Person auszuwählen.
betrifft das die Zuordnung einer Person bei neu erstellten Einweisungen oder soll mit dem Kombi gesucht werden?

Das Kombi sollte die Informationen der tbl_Personal "enthalten", so dass man die Namen auswählen kann. Wenn ein bekannter Datensatz ausgewählt wird (ein Mitarbeiter) sollten daraufhin die in der tbl_Personal enthaltenen Informationen bezüglich Abteilung, Personalnummer, Kostenstelle automatisch in den entsprechenden Feldern des Formulars angezeigt werden. Die Anzeige ist zur Überprüfung der Daten.
Optimum wäre dann, wenn es möglich wäre diesen Datensatz in der tbl_Einweisung mit unverschlüsselten Realwerten abzuspeichern (Also nicht mit Schlüsseln). Wenn es nur mit Schlüsseln geht, dann kann ich das auch hinnehmen, dann muss ich mir nur zu Ansicht der gesamten Einweisungen ein neues Formular erstellen, welches die Informationen anzeigt.

Wenn jedoch jemand fremdes eingewiesen wird (externe Einweisung = Gast) müssen natürlich alle Daten per Hand eingegeben werden und dann müssen diese auch in der tbl_Einweisung gespeichert werden. Also in dem Kombi sollte dann der Name eingegeben werden und alle weiteren Daten (von der rechten Seite im fml_Einweisung nur Geburtsdatum und Email_Adresse siehe Bild)müssen auch per Hand eingegeben werden.
Dies muss dann logischerweise ohne Schlüssel geschehen, da verschiedenste Fremdfirmen bei uns ihr Personal einweisen lassen.

ZitatEs gibt keine Unterscheidung einer Person für int. oder ext. Einweisungen.

Da habe ich mich wahrscheinlich etwas ungünstig ausgedrückt. Wie ich oben geschrieben habe, ist die Unterscheidung eine zwischen Mitarbeiter der eigenen Firma oder Mitarbeiter einer Fremdfirma.

ZitatIm Anhang eine Rohversion, in der
--Sonderzeichen/Leerzeichen in Namen elimiert
-- Daten in zusätzliche Tabellen normalisiert  (nicht vollständig wegen Unkenntnis der Datenlage , z. B. Kategorie_der_Einweisung, Einweisender , weiterhin Firma )
-- die Tabellenstruktur in Beziehungen gesetzt   

Dafür auf jeden Fall erst mal besten Dank.
Die Einweisenden können auch in einer zusätzlichen Tabelle erfasst werden, da es sich um 4 Personen handelt, welche die Einweisung übernehmen dürfen. Die Auswahl kann ich dann doch auch wieder über ein Listenfeld oder ein Kombi machen und die entsprechende ID (z.B. EinweisenderID) in der tbl_Einweisung ablegen und habe damit die nötigen Informationen enthalten, oder ?

Firma ist wie gesagt schwierig zu schlüsseln, kann ich das über ein Textfeld so bauen, dass der Text ("Testfirma") aus dem fml_Einweisung in der tbl_Einweisung abgelegt wird?


Mich wundert das Fehlen von Abfragen. Laut MzKlMu kann eine Datenbank ohne Abfragen eigentlich gar nicht existieren.
Oder brauche ich die Abfragen erst dann, wenn ich mir eine Auswahl von Daten der gesamten Datenbank anzeigen lassen will? Darstellung wäre dann über ein Formular?

Viele Grüße
Patrick
Titel: Re: Formular und ComboBox
Beitrag von: DF6GL am Oktober 29, 2019, 09:36:17
Hallo,

ich verzichte jetzt erst mal auf's Zitieren und beschreibe es mal global.



Zu einer, egal ob intern oder extern, Einweisung wird immer  eine Person zugeordnet.  Wenn es sich um einen "Gast" handelt und dieser nicht in der Personaltabelle enthalten ist, wird das vor dem Erfassen der anderen Einweisungsdaten nachgeholt, so dass diese Person anschließend zu der Einweisung zugeordnet werden kann. Das kann bequem mit VBA realisiert werden.

In der Personaltabelle ist entweder ein Bool-Feld  ("Pers_extern")mitzuführen, dass diese Person eben als "Gast" definiert oder allein die Tatsache, dass diese Person zu einer bestimmten Firma zugeordnet wird, gibt ihr diesen Status. 

Deine Befürchtungen zum Formular-Design und der "Schlüsselung" sind unbegründet, wenn die Grundstruktur des Tabellenaufbaus vollständig und normalisiert ist. (Siehe u. st. Links 1, 1a und 1b).  Eine DB lebt und ist "gesund", wenn genau diese Beziehungen ("Schlüsselungen") richtig umgesetzt sind. 


Abfrage werden in einer DB IMMER gebraucht. Ohne Abfragen kein Auslesen von Daten aus den Tabellen.  Auch wenn eine Tabellenansicht dargestellt wird, läuft im Hintergrund eine Abfrage (SQL) ab.

Im Gegensatz zu anderen Mitstreitern benutze ich während des Tabellenaufbaus und der daran gebundenen Formulare (zunächst!) keine eigenerstellten Abfragen, sondern lediglich den Tabellennamen in der Datenherkunft.  Damit erspare ich mir die Änderungen der Abfragen, wenn Tabellenfelder geändert werden oder hinzu-/wegfallen.  (Access generiert automatisch und selbständig eine interne(!) Abfrage, wenn nur ein Tabellenname angegeben wird, so dass im Endeffekt tatsächlich immer eine Abfrage verwendet wird  8) . Evtl. Performance-Betrachtungen lass ich jetzt außen vor).

Abfragen (für Formulare) nutze ich eigentlich nur, wenn besondere Vorgaben zu erfüllen sind, z. B: Vorfilterung, Sortierung oder bei Auslesen von Daten aus mehreren (verknüpften) Tabellen.

Bei Berichten sieht das Ganze etwas anders aus. Hier wird in den meisten Fällen immer eine (über mehrere Tabellen verknüpfende) Abfrage nötig sein.

Abfragen werden auch dann immer gebraucht, wenn man Kombifelder oder Listenfelder "füttern" will. Hier kommt es auf definierte (gewünschte) Felder in der Selectliste und deren Sortierung an.


Solange am Tabellenaufbau grundsätzlich gewerkelt wird, sind eigentlich noch keine Formulare erforderlich. Hier liegt der wesentliche Augenmerk auf der korrekten Aufteilung der Daten in Tabellen und der Beziehungen.

Erst wenn man meint, der Tabellenaufbau sei stimmig, erstellt man für jede Tabelle ein eigenes Formular.  Nachschlagetabellen (mit nur wenigen Feldern)  können als Endlosform, Bearbeitungstabellen oder solche mit vielen Feldern, die nicht in einer Zeile Platz finden, als Einzelform aufgebaut werden.

Die Beziehung können dann so abgebildet werden (natürlich nicht sinnvoll bei Nachschlagetabellen), als dass die 1-Tabelle als Einzelform (HFO) ausgeführt ist und die n-Tabelle als Unterformular  (Endlosformular angezeigt mit einem UFO-Steuerelement) im Detailbereich des HFO eingebaut wird.

Nächster Schritt bei der Bearbeitung der Formulare wäre, eine den tatsächlichen Arbeitsgewohnheiten angepasste Ablaufsteuerung einzubauen. Da kann natürlich passieren, dass man feststellt, dass die aktuellen Abläufe eher suboptimal sind, weil sie sich nicht mit der DB vereinbaren lassen.  ;)  Die Entscheidung, ob die DB oder der Arbeitsablauf anzupassen ist, kann durchaus schwer fallen...  8)

Hausaufgabe für Dich:  Tabellen wie oben und in den Links beschrieben erweitern (normalisieren) und weitere Beziehungen setzen.
Sinnvollerweise erstellt Du eine neue leere DB und importierst lediglich die Tabellen aus der vorhandenen. Die Abfragen und Formulare läßt Du zunächst außen vor. Danach sehen wir weiter   ;)


PS:

Erkläre bitte noch die Bedeutung der Felder aus der Tabelle tbl_Einweisung genauer.

Und was hat Pers_AblaufEinweisung in tbl_Personal zu suchen?

Was ist der Status "Multiplikator" ?  bzw. was soll "tbl_Status" insgesamt aussagen?


Wo sind "Kategorie_der_Einweisung" definiert, bzw. welche Aussage hat dieses Feld?

Mitunter sprichst Du von "Mitarbeitern". Sind das nun Personen in tbl_Personal oder sind das Daten im Feld "Einweisender" in "tbl_Einweisung".  Zu wem gehört "Personalnummer" in "tbl_Einweisung"?



Grundsätzlich interpretiere ich es so:

Es gibt Personen (tbl_Personal), die eine oder mehrere Einweisung(en)  erhalten oder auch Einweisungen durchführen können.

Diese Personen gehören einer Firma (Euere oder extern) und bestimmten Abteilungen an. Jede der Personen hat einen bestimmten Status(?) .

Eine Person kann mehrere Einweisungen ("Kategeorie_der_Einweisung" ?  ) erhalten. Jede dieser Einweisungen hat ein Ablaufdatum, ab dem eine neue Einweisung erfolgen muss. (Mit der selben Kategorie?) 
Es gibt mehrere Personen (aus tbl_Personal) die als Einweiser fungieren können.

Wenn das so stimmig ist, müssen die Tabelle komplett anders aufgebaut werden.



Titel: Re: Formular und ComboBox
Beitrag von: DF6GL am Oktober 29, 2019, 10:53:47
Hallo,

Nachtrag:

Vorschlag zum Tabellenaufbau
Titel: Re: Formular und ComboBox
Beitrag von: Database91 am Oktober 29, 2019, 14:13:54
Hallo,

ich habe die Datenbank heute, wie du es vorgeschlagen hattest, noch mal neu aufgebaut, damit sich nicht alles auf die Personaldatenbank bezieht, sondern die tbl_Einweisung im Endeffekt die Tabelle ist, in der alles zusammenläuft.
Habe auch ein Bild der Beziehungen im Anhang.

Das Thema der Unterscheidung zwischen den Internen und Externen Einweisungen habe ich mit einem meiner Meinung nach geschickten Workaround gelöst. Ich habe in "Kopie von fml_Einweisung" (Ja, der Name ist schrecklich, aber war mein Testformular) mit zwei Seiten gearbeitet und in der tbl_Einweisung entsprechend zusätzliche externe Datenfelder, in denen das alles eingegeben werden kann.
Funktioniert das so als Workaround?

Zu deinem PS:
Du hast es fast richtig erfasst. Das einzige ist, dass nicht eine Person mehrere Einweisungen haben kann. Sie kann nur eine der 4 Einweisungen haben und das Ablaufdatum bezieht sich dann logischerweise auch auf die jeweilige Einweisung.
Wenn in der Beispieldatenbank mehrfache Einweisungen bei einer Person waren, dann war das eine falsche Eingabe von mir.


Allgemein noch mal: Ich habe mittlerweile auf einer der Seiten gelesen, dass es unüblich ist berechnete Felder zu verwenden. Allerdings wüsste ich so spontan nicht, wie ich ansonsten das Feld des Ablaufdatums realisieren sollte, wenn nicht über ein berechnetes Feld.
Oder kann ich die Problemlos verwenden?

Grüße
Patrick
Titel: Re: Formular und ComboBox
Beitrag von: DF6GL am Oktober 29, 2019, 17:14:52
Hallo,

Zitat
Das Thema der Unterscheidung zwischen den Internen und Externen Einweisungen habe ich mit einem meiner Meinung nach geschickten Workaround gelöst.

Das ist nicht geschickt, eher Murks...  ::)

ZitatFunktioniert das so als Workaround?

Wenn Du damit zurecht kommst, funktioniert es (in Bezug auf die Firmendaten) . Funktioniert heißt aber nicht, dass es richtig ist.

Zitatdass nicht eine Person mehrere Einweisungen haben kann. Sie kann nur eine der 4 Einweisungen haben und das Ablaufdatum bezieht sich dann logischerweise auch auf die jeweilige Einweisung

Ok, dann muss es eine 1:n Beziehung zwischen tbl_Einweisung (1)  und tbl_Personal (n) geben,
desgleichen eine 1:n Beziehung zwischen tbl_Einweisung (1)  und tbl_Firmen (n)

Mir ist immer noch nicht klar, was "tbl_Multiplikatoren" und "tbl_Kategorie_der_Einweisung" (lt. den Beispieldaten) für eine Bedeutung haben.

Was "multipliziert" denn ein "Einweisender" ?

Und was ist denn insgesamt überhaupt eine "Einweisung".  Welche Themen werden da behandelt?  (Sicherheit, Verfahrenstechnik, Brandschutz, etc).


Zitat.. dass es unüblich ist berechnete Felder zu verwenden. ...
...
Berechnete Tabellenfelder ("Trigger")  gibt es erst seit Kurzem in Access und sind nur recht halbherzig umgesetzt. Es sind nur unzulängliche Berechnung möglich und daher nicht oft verwendbar.

Zitat... wie ich ansonsten das Feld des Ablaufdatums realisieren sollte,...

Das Ablaufdatum kann doch jederzeit und dort, wenn man es braucht, mit Hilfe des Einweisungsdatums und der Gültigkeitsdauer mit VBA und/oder in einer Abfrage berechnet werden...

Zitat... Oder kann ich die Problemlos verwenden?

Wenn es denn funktioniert, können die "berechneten Felder" sicherlich verwendet werden.


Im Anhang die aktualisierten Beziehungen entspr. der neuen Erkenntnisse...

Die DB hat hauptsächlich Personal und Firmen im Fokus.

Eine Person und/oder Firma erhält eine von mehreren Einweisungen.
Eine Person hat einen bestimmten Status und kommt aus einer bestimmten Abteilung.
Eine Einweisung wird von einen "Einweiser" durchgeführt, der aus tbl_Personal stammt.

Das Ablaufdatum wird mit Feld ST_EW_Dauer aus "tbl_Status" berechnet.  (Zusammenhänge im Moment nicht nachvollziehbar.)
"tbl_Kategorien" ist entfernt. Das Bezeichnungsfeld ist in tbl_Einweisungen aufgenommen.