Januar 20, 2021, 13:05:00

Neuigkeiten:

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


Keine Eingabe in Unterformular möglich

Begonnen von Paddy24, Januar 04, 2021, 19:13:25

⏪ vorheriges - nächstes ⏩

Paddy24

Zitat von: DF6GL am Januar 13, 2021, 20:38:03Mit den "Kontaktpersonen" komme ich im Moment nicht klar, wie Du Dir den Ablauf vorstellt.   Kann es immer nur eine "Kontaktperson" ("Infizierender") geben oder kommen auch mehrere Personen in Frage?

Es gibt im Grunde einen Erkrankten und dieser hatte dann zb. Kontakt mit Freund1, Freund2, Bruder, Schwester.

Ich möchte dann auf der Registerseite "Kontaktpersonen" diese Personen hinzufügen. Etwa gibt es diese schon in der tblPerson oder ich lege sie gleich neu an über einen Button auf Registerseite "Kontaktpersonen" (Öffnen eines Anlegeformulars um eine klare Trennung vorzunehmen.

Ich komme über die Suchenmaske noch nicht hinweg, da sie mir eine saubere Trennung zwischen den einzelnen Personen ermöglicht, aber mir fehlt es gerade auch an Vorstellungskraft wie man das in der frmPerson geschickt umsetzen könnte.

Momentan habe ich ein neues Problem und zwar kann ich den Datensatz "Mustermann" nicht mehr öffnen, es erscheint einfach eine leere frmPerson, also komplett leer. Auch wenn ich auf den Button "Neu Anlegen" drücke erscheint die frmPerson komplett ohne Steuerelemente und Feldern.

Alles in einer Form zu haben macht es natürlich einfacher für den User, da er nicht zwischen mehreren Formularen hin und her wechseln muss.


Sie dürfen in diesem Board keine Dateianhänge sehen.

DF6GL

Hallo,

ZitatEs gibt im Grunde einen Erkrankten und dieser hatte dann zb. Kontakt mit Freund1, Freund2, Bruder, Schwester.

Ich möchte dann auf der Registerseite "Kontaktpersonen" diese Personen hinzufügen

Naja, dann erstelle eine Tabelle tblKontaktPersonen  mit allen nötigen Feldern und hänge sie als n-Tabelle (wie die anderen auch) an tblPerson an.


ZitatEtwa gibt es diese schon in der tblPerson oder ich lege sie gleich neu an über einen Button auf Registerseite "Kontaktpersonen" (Öffnen eines Anlegeformulars um eine klare Trennung vorzunehmen.


Eigentlich macht man das folgendermaßen:

Wenn eine Person noch nicht existiert und damit im Auswahlkombi nicht angezeigt wird, gibt man den Namen im Kombifeld ein und nutzt das Ereignis "Bei nicht in Liste", um ein Eingabeform für die Personendaten zu öffnen und die Daten auch abzuspeichern. Im Kombi ist anschließend die neue Person vorhanden und auswählbar.


ZitatIch komme über die Suchenmaske noch nicht hinweg, da sie mir eine saubere Trennung zwischen den einzelnen Personen ermöglicht

??

ZitatMomentan habe ich ein neues Problem und zwar kann ich den Datensatz "Mustermann" nicht mehr öffnen,

Ich zitiere mich selber:

ZitatErstelle für alle Tabellen Formulare (Datenherkunft Tabellenname), je nach praktischem Ermessen Endlos- oder Einzel-Form.


Das ist mindestens für frmPerson nicht der Fall. Wenn ich sowas schreibe, habe ich im Allgemeinen Gründe dafür  8)


Paddy24

Zitat von: DF6GL am Januar 14, 2021, 11:49:20Hallo,

Zitat von: undefinedEs gibt im Grunde einen Erkrankten und dieser hatte dann zb. Kontakt mit Freund1, Freund2, Bruder, Schwester.

Ich möchte dann auf der Registerseite "Kontaktpersonen" diese Personen hinzufügen

Naja, dann erstelle eine Tabelle tblKontaktPersonen  mit allen nötigen Feldern und hänge sie als n-Tabelle (wie die anderen auch) an tblPerson an.

die als Kontaktpersonen erstellten Personen sollen aber im Grunde die gleiche Basis an Daten wie die tblPerson haben, also ich möchte dort die gleichen Daten für haben bzw die gleichen Formulare zum bearbeiten für nutzen. Erstelle ich dann im Grunde eine Kopie von tblPerson oder bekommt man das auch anders hin?

Zitat von: undefined
Zitat von: undefinedEtwa gibt es diese schon in der tblPerson oder ich lege sie gleich neu an über einen Button auf Registerseite "Kontaktpersonen" (Öffnen eines Anlegeformulars um eine klare Trennung vorzunehmen.


Eigentlich macht man das folgendermaßen:

Wenn eine Person noch nicht existiert und damit im Auswahlkombi nicht angezeigt wird, gibt man den Namen im Kombifeld ein und nutzt das Ereignis "Bei nicht in Liste", um ein Eingabeform für die Personendaten zu öffnen und die Daten auch abzuspeichern. Im Kombi ist anschließend die neue Person vorhanden und auswählbar.


Das hört sich gut an, wusste nicht das es so ein Ereignis gibt, ich werde es mal ausprobieren. Vielen Dank für den Tipp

Zitat von: undefined
Zitat von: undefinedMomentan habe ich ein neues Problem und zwar kann ich den Datensatz "Mustermann" nicht mehr öffnen,

Ich zitiere mich selber:

Zitat von: undefinedErstelle für alle Tabellen Formulare (Datenherkunft Tabellenname), je nach praktischem Ermessen Endlos- oder Einzel-Form.


Das ist mindestens für frmPerson nicht der Fall. Wenn ich sowas schreibe, habe ich im Allgemeinen Gründe dafür  8)

achso, das hatte ich im grunde auch gemacht und dann halt die anderen Formulare als ufo hinzugefügt oder erstellt man erstmal aus allen Tabellen jeweils erstmal das Formular samt Datensatzherkunft und danach ein blankes formular wo dann alle anderen als ufo hinzugefügt werden?

DF6GL

Januar 14, 2021, 19:19:48 #33 Letzte Bearbeitung: Januar 14, 2021, 19:28:54 von DF6GL
Hallo,


die als Kontaktpersonen erstellten Personen sollen aber im Grunde die gleiche Basis an Daten wie die tblPerson haben,


Es ist prinzipiell doch egal, woher die Personendaten für die tblKontaktpersonen kommen. Wenn die tblPerson alle möglichen Personen aufnimmt, so ist das sogar db-technisch ok. 


Du brauchst in tblKontaktpersonen lediglich ein FK-Feld (das ist der Patient) für den Fremdschlüssel zu tblPerson und ein weiteres Feld für die Speicherung  der PersonID als Kontaktperson.  Dafür braucht es auch keine Kopie der tblPerson...


Zitaterstellt man erstmal aus allen Tabellen jeweils erstmal das Formular samt Datensatzherkunft und danach ein blankes formular wo dann alle anderen als ufo hinzugefügt werden?

Habe es schon geschrieben:  Für alle Tabellen (zunächst) ein Formular, je nach Feldanzahl oder Verwendungszweck Einzelform oder Endlosform.

Die Formulare werden dann entspr. der Tabellenbeziehungen zusammengefügt.  Dabei ist eine "Haupttabelle" und damit ein "Hauptformular) (hier frmPerson)  zu definieren, das dann die Formulare als UFO enthält, die in n-Beziehung zur "Haupttabelle" stehen.

Ob weitere "leere" (ungebundene) Formulare für den Bedienungsablauf benötigt werden, ist vom Ablaufsteuerungs-Konzept abhängig.

Ausnahme ist hier das Zeiterfassungsform, weil Du "mittendrin" in die Tabellenstruktur eingreifst und dazu noch mit "Rückwärtssuche" arbeiten willst.

Paddy24

Zitat von: DF6GL am Januar 14, 2021, 19:19:48Du brauchst in tblKontaktpersonen lediglich ein FK-Feld (das ist der Patient) für den Fremdschlüssel zu tblPerson und ein weiteres Feld für die Speicherung  der PersonID als Kontaktperson.  Dafür braucht es auch keine Kopie der tblPerson...

Ah ok, ich werde mal versuchen das so umzusetzen.

Zu der tblKontaktperson, wie würde man das am besten lösen, wenn die Logik wie folgt wäre:

Eine Person kann mehrere Kontaktpersonen haben.
Eine Kontaktperson kann mehrere Personen haben.

Hier müsste ich dann mit einer Zwischentabelle arbeiten mit Datumsfeld (am).

Habs mir gerade versucht aufzubauen (auf papier) aber irgendwie wills heute Abend nicht mehr klappen.




ZitatHabe es schon geschrieben:  Für alle Tabellen (zunächst) ein Formular, je nach Feldanzahl oder Verwendungszweck Einzelform oder Endlosform.

Die Formulare werden dann entspr. der Tabellenbeziehungen zusammengefügt.  Dabei ist eine "Haupttabelle" und damit ein "Hauptformular) (hier frmPerson)  zu definieren, das dann die Formulare als UFO enthält, die in n-Beziehung zur "Haupttabelle" stehen.

Aber genauso hatte ich es gemacht, zwar noch nicht mit allen Tabellen die ich habe, aber die die ich nutze wurden nach dem Konzept aufgebaut. Danach habe ich dann alles in die Hauptform frmPerson gezogen als ufo.

Ich schaue es mir morgen aber nochmal an, war ein langer Tag heute :)

DF6GL

Januar 15, 2021, 08:18:43 #35 Letzte Bearbeitung: Januar 15, 2021, 08:22:48 von DF6GL
Hallo,

ZitatHier müsste ich dann mit einer Zwischentabelle arbeiten mit Datumsfeld (am).

Jain, denn die gibt es ja schon  (tblKontaktperson). Was hindert Dich daran, das Datumsfeld in tblKontaktperson aufzunehmen?

ZitatAber genauso hatte ich es gemacht,
In Deiner zuletzt geposteten DB hatte mindestens frmPerson eine Abfrage:

ZitatSELECT tblPerson.*, tblSymptom_Zeitraum.symzei_von, tblSymptom_Zeitraum.symzei_bis, tblGeschlecht.gen_bezeichnung, tblNationalitaet.nat_bezeichnung, tblPerson_Status_Zeitraum.pszeit_von, tblPerson_Status.perstat_bezeichnung FROM tblPerson_Status INNER JOIN ((tblSymptome INNER JOIN ((tblNationalitaet INNER JOIN (tblGeschlecht INNER JOIN tblPerson ON tblGeschlecht.gen_id = tblPerson.gen_id_f) ON tblNationalitaet.nat_id = tblPerson.nat_id_f) INNER JOIN tblSymptom_Zeitraum ON tblPerson.per_id = tblSymptom_Zeitraum.per_id_f) ON tblSymptome.sym_id = tblSymptom_Zeitraum.sym_id_f) INNER JOIN tblPerson_Status_Zeitraum ON tblPerson.per_id = tblPerson_Status_Zeitraum.per_id_f) ON tblPerson_Status.perstat_id = tblPerson_Status_Zeitraum.perstat_id_f;

Paddy24

Zitat von: DF6GL am Januar 15, 2021, 08:18:43
ZitatAber genauso hatte ich es gemacht,
In Deiner zuletzt geposteten DB hatte mindestens frmPerson eine Abfrage:

ZitatSELECT tblPerson.*, tblSymptom_Zeitraum.symzei_von, tblSymptom_Zeitraum.symzei_bis, tblGeschlecht.gen_bezeichnung, tblNationalitaet.nat_bezeichnung, tblPerson_Status_Zeitraum.pszeit_von, tblPerson_Status.perstat_bezeichnung FROM tblPerson_Status INNER JOIN ((tblSymptome INNER JOIN ((tblNationalitaet INNER JOIN (tblGeschlecht INNER JOIN tblPerson ON tblGeschlecht.gen_id = tblPerson.gen_id_f) ON tblNationalitaet.nat_id = tblPerson.nat_id_f) INNER JOIN tblSymptom_Zeitraum ON tblPerson.per_id = tblSymptom_Zeitraum.per_id_f) ON tblSymptome.sym_id = tblSymptom_Zeitraum.sym_id_f) INNER JOIN tblPerson_Status_Zeitraum ON tblPerson.per_id = tblPerson_Status_Zeitraum.per_id_f) ON tblPerson_Status.perstat_id = tblPerson_Status_Zeitraum.perstat_id_f;

Ja weil das frmPerson das Hauptformular ist. Dieses hatte ich erst so erstellt wie von dir beschrieben, aber sobald ich Unterformulare reinziehe wird solch eine Abfrage erstellt.

DF6GL

Hallo,

Zitataber sobald ich Unterformulare reinziehe wird solch eine Abfrage erstellt.


das wäre mir neu. Bei mir hat sich noch nier die Datenherkunft des HFOs verändert, wenn ein UFO "hineingezogen" (D&D aus dem Navibereich) wurde...  Wie auch immer, solche Abfragen sind dort fehl am Platz. 

Was ist denn mit dem Kontaktperson-Problem?

Paddy24

Warum eine Abfrage in frmPerson anstatt der Tabelle war, lag glaub ich daran, weil ich folgenden VBA-Code hatte:

Private Sub Form_Current()
Me.Auto_Kopfzeile0.Caption = Me.per_name & ", " & Me.per_vorname & " - " & Me.perstat_bezeichnung
End Sub

Bzw. es lag an dem Me.perstat_bezeichnung

Dann muss ich den letzten Status wohl erstmal so raus lassen.

Wegen der Tabelle tblKontaktpersonen habe ich diese jetzt erstmal angelegt:

Sie dürfen in diesem Board keine Dateianhänge sehen.

wobei mir noch das Feld fehlt um die ID der KontaktPerson zur Hauptperson zuzuordnen.


DF6GL

Hallo,

und warum fügst Du es nicht ein:


Würde eher so benamsen:


KontPer_ID
KontPer_Per_ID_f
KontPer_KontaktPersID
KontaktPer_KontaktDatum
KontPer_Notiz

Paddy24

Super, danke.

Habe das jetzt so umgesetzt und bin derzeit noch am umarbeiten der Tabellen, es kommen welche hinzu und ggf. weg.

So zb. habe ich jetzt in der tblPerson Ja/Nein Felder hinzugefügt, die es mir erlauben sollen, die Registerseiten nur bei Bedarf sichtbar zu machen.

Auch bin ich mal die anderen Formulare durchgegangen um zu schauen wo alles eine Abfrage in Datensatzherkunft steht, anstatt die Tabelle.

Und zb. bei frmArbeitsstelle ist eine Abfrage drin, aber wie würde man das sonst lösen, da in diesem Formular ja als Fremdschlüssel die Adresse steht und ich die Arbeitsunfähigkeit von/bis aus der tblPerson hole. Das sind Daten die sollten in dem Formular Arbeitsstelle angezeigt werden.

Anbei ein Screenshot der Beziehungen, da sich ansonsten nichts weiter an den Formularen etc seit dem letzten Upload geändert hat:

Sie dürfen in diesem Board keine Dateianhänge sehen.