Access-o-Mania

Access-Forum => Formular => Thema gestartet von: Paddy24 am Januar 04, 2021, 19:13:25

Titel: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 04, 2021, 19:13:25
Hallo zusammen,

ich arbeite derzeit an einer Datenbankanwendung mithilfe eines Access-Buches.

Jetzt habe ich ein Formular samt Unterformular erstellt, allerdings lässt sich in dem Unterformular nichts eintragen/eingeben.

Meine erste Vermutung lag darin, das die Abfrage die Beziehung zum Hauptformular nicht hat, aber nachdem ich diese der Abfrage hinzugefügt hatte ging es immer noch nicht.

Ich füge mal einen Screenshot bei, ich bin mir nicht sicher ob dies zeigt, woran es liegt.

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

Vielen Dank

Pat
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 04, 2021, 20:02:44
Hallo,

wofür ist die Abfrage?



Setze den Tabellennamen "tblPerson" in die Datenherkunft-Eigenschaft des HFO ein und den Tabellennamen "tblKontakt_Person"  in die des UFOs.

Verknüpfe dann das UFO-Steuerelement (Eigenschaften "Verknüpfen von/nach") über die Schlüsselfelder.

Die Auswahl des Kontakt-Typs realisierst Du mit einem Kombifeld.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: steffen0815 am Januar 04, 2021, 20:04:32
Hallo,
ich vermute ein Missverständnis.

Stehen 2 Tabellen in einer 1:n Beziehung, steht eine Tabelle (1) (bzw. die Abfrage darauf) im Hauptformular und die andere Tabelle (n) im Unterformular.
Die beiden Formulare werden miteinander verknüpft.

Ich vermute, dass du in der Abfrage des Unterformulars die Tabelle des Hauptformulars mit aufgenommen hast.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 04, 2021, 21:07:23
Vielen Dank schonmal für die tolle Hilfe,

so richtig komme ich noch nicht dahinter, das gesagte von @DF6GL funktioniert zwar, zeigt mir dann aber "nur" die Daten in einer Tabellenform aka Excel/Access an und nicht mehr als Formular.

Einmal kurz zum jetzigen Aufbau, vielleicht gehe ich das auch zu kompliziert an:

Ich habe ein Suchen-Abfrageformular womit ich Personen suchen kann. Neben jeden Eintrag habe ich einen Button zum Öffnen des Datensatzes (Siehe Bild abfPersonSuche).

Öffne ich jetzt einen Datensatz, öffnet sich ein Formular (frmTestPersonendaten) zum einsehen und bearbeiten von Personendaten, wobei einmal im HFO ein Registersteuerelement ist und dann in dem Registerelement des HFO noch ein Registerelement als Unterformular (ufoRegister), das ebenfalls die Unterformulare frmKontakt_Person und ufoRegister_Adressen beinhaltet.

Den Vorschlag von @DF6GL habe ich in dem Unterformular "ufoRegister" angewandt, was wie schon erwähnt auch funktioniert, allerdings nicht in dem Format von den unter-Unterformularen.

Ich habe das Gefühl ich gehe die Sache zu kompliziert an, allerdings kann ich kein Register in einem Register einfügen ohne das das Unterregister auf allen Seiten des Hauptregisters auftaucht.

Entschuldigt bitte die Namenskonvention, ich probiere derzeit wild umher :S

Sie dürfen in diesem Board keine Dateianhänge sehen.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 04, 2021, 21:50:50
Hallo,

du benötigst nur zwei Formulare:

frmPersonen und frmKontaktpersonen

frmPersonen wird als Einzelform ausgeführt, frmKontaktpersonen als Endlosform.


Das Suchen-Feld ist Bestandteil des HFO (z. B. im Formularkopf platziert.)



Zitatallerdings nicht in dem Format von den unter-Unterformularen.

Was meinst Du damit?


Ansonsten lad die DB mal hier hoch, komprimiert/repariert und gezippt.


Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 05, 2021, 20:59:28
Hallo,

also ich möchte ja eine Personenbearbeitungsmaske / Formular haben, wo ich ein Registerelement habe und die Register dann im Grunde verschiedene Formulare beinhalten.

Mein Designkonzept sieht halt so aus, das der Benutzer über das Startformular die Personensuche auswählt und dort dann den gewünschten Datensatz in dem Personenbearbeitungsformular bearbeitet bzw prüft.

Dazu habe ich dann jeweils die Tabelle "tblPerson", die dann ein paar Fremdschlüssel enthält und die jeweiligen Stammdatenfelder.

Es gibt dann noch eine bzw. 2 Tabellen für Kontaktinfos, einmal eine Zwischentabelle mit dem jewiligen Fremdschlüsseln zu der tblPerson und den Kontaktwert und Bemerkung. Die andere Kontakttabelle beinhaltet die Kontakttypen, wie zb. E-Mail, Telefon, usw. Diese Tabelle möchte ich dann als Kombobox nutzen.


Wäre es dir auch recht, das ich dir die DB per PN schicke, derzeit funktionieren die Formulare nur nicht wirklich?

Habe etwas Probleme mit dem Suchenformular, denn wenn ich dort über den Öffnenbutton einen Datensatz öffnen will, dann orientierte sich die Beziehung anhand des Names, was blöd ist, wenn es mehrere gleiche Namen gibt. Das anhand der ID zuzuordnen bekomme ich nur hin, wenn ich in der Abfrage die Person_ID hinzufüge und auf dem Bearbeitungsformular das Feld Person_ID unsichtbar drauf lege, was wohl aber nicht optimal ist.

Ich hab seit Jahren eher mit PowerShell, VB.net, VBA und XML gearbeitet, jetzt will ich mich an das Thema DBs rann machen, aber die ganze Beziehungsgeschichte ist noch nicht so einfach  :-\ 

 
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 05, 2021, 21:08:09
Hallo,

warum PN? Lad die DB hier hoch wie erklärt, dann sehen auch andere die Situation
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 05, 2021, 21:48:40
Hallo,

anbei die DB.

Wie gesagt, mit den Formularen bin ich mehr im Trial & Error. Bei den Tabellen hoffe ich alles soweit richtig gemacht zu haben, was Normalisierung angeht und Beziehungen

Sie dürfen in diesem Board keine Dateianhänge sehen.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 06, 2021, 10:19:41
Hallo,

die Beziehungen sind prinzipiell richtig aufgebaut. Bedenken habe ich allerdings an der Beziehungslogik.

Du solltest die Bedeutung der Beziehung zwischen tblPerson-tbl_Gesund_Zeitraum-tblGesundheitsdaten näher erklären.

Ich kann mir jetzt nicht vorstellen, dass ein bestimmter "Gesundheits"-Datensatz zu vielen unterschiedlichen Personen und mehreren Zeiträumen zugehörig ist.

Desgleichen die 1-n-Beziehungen bei tblGesundheitsdaten zu tbl_Symptom_Zeitraum und tblAbstrich.


Nur am Rande: Die Führung von Adressen (ohne Hausnummer) in einer separaten Tabelle sehe ich in diesem Fall eher als lästig an.  Vermutlich gibt es nur eine geringfügige Anzahl von gleichen Adressen, an denen sich mehrere erfasste Objekte (Personen, Krankenhaus) befinden.  In diese Fäll nähme ich die entstehende Redundanz in Kauf.





Weiterhin ist mir nicht so klar, wie Du Dir die visuelle Darstellung der Personen mit den Gesundheitsdaten vorstellst.


Entferne erst mal alle Formulare und die Abfrage.  Nach der Klärung der o. g. Beziehungen solltest Du:

Formulare für jede Tabelle (Datenherkunft: Tabellenname) erstellen.  Endlosforms für die "Nachschlage"-Tabellen, die relativ wenige Felder haben, ansonsten Einzel-Forms.

Für die erwähnten HFO/UFO-Konstruktion ist zunächst die evtl. zu korrigierende Beziehungslage abzuwarten.

Und: Erst wenn die Formularkonstuktionen  die korrekte Erfassung und Bearbeitung der Daten zulässt, kann an "Hilfsmittel" wie Personensuche etc. gedacht werden.


Weiterer Tipp:

Ordne die Tabelle im Beziehungsfenster so an, dass die 1-Tabellen immer links der zugehörenden n-Tabellen und in geordneten Spalten untereinander zu liegen kommen. Dann werden die Datenverhältnisse besser durchschaubar.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 06, 2021, 11:39:58
Wow vielen Dank für die vielen nützlichen Hilfen und Tipps.

Um mein Vorhaben etwas aufzuklären:

Eine Person kann mehrere Gesundheitsdatensatzzeiträume haben.
Ich muss zugeben das genau bei dieser Beziehung und der Adresse ich etwas Kopfschmerzen hatte.

Meine erste Überlegung war, das eine Person einen Gesundheitsdatensatz hat wo dinge wie Hausarzt, Erkrankung usw usw vorkommen. Und dann eine Tabelle Krankheitsverlauf, wo kam dann sich ändernde Daten einträgt, wie Symptome, Zustand, ob Stationär usw usw.

Die Zielidee ist, das man in den Reiter Gesundheitsdaten geht, dort dann einen neuen Zeitraum eingibt und die Felder bearbeitet die sich verändert haben, sodass man im Endeffekt eine kleine Historie hat was sich über die Zeit getan hat. Daher auch die Überlegung, ob überhaupt weitere Zeiträume wie zb. für Symptome überhaupt notwendig etc.


Wegen der Adresse habe ich auch lange hin und her überlegt, da ich letztendlich ein Straßenverzeichnis importieren möchte, sodass der Benutzer dann eine Straße samt Ort etc auswählen kann und keinen "Blödsinn" eingibt.

Nichtsdestotrotz soll er auch die Möglichkeit habe, das wenn seine Adresse nicht im Straßenverzeichnis vorhanden ist (zb. Gemeindefusion) er die Möglichkeit hat eine Adresse hinzuzufügen.

Dabei ist mir das beste was mir einfallen konnte mit der Hausnummer, diese in den jeweiligen Personen zu speichern.

Nach der Logik: Eine Person kann eine Adresse haben, eine Adresse kann mehrere Personen haben.

Ich hoffe ich konnte etwas Licht in meine Vision der Datenbankanwendung bringen.


Vielen Dank im Voraus.

Beste Grüße
Pat

Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 06, 2021, 13:46:36
Hallo,

ZitatEine Person kann mehrere Gesundheitsdatensatzzeiträume haben.

Ok, dann realisiere das auch so:
1-n-Beziehung zwischen tblPerson und tblGesundheitsdaten.  Die Zeitraum/punkt-Angaben werden in tblGesundheitsdaten übernommen.
Die n-Beziehung zu tblGesund_Zeitraum entfällt.  Welche Aussagekraft hat tblGesund_Zeitraum? 

Die tblGesundheitsdaten muss aufgedröselt werden in Grunddaten, die einmalig erfasst werden und gleich bleiben (z. B. AufnahmeDaten für eine Klinik).  Für andere Daten, die eine historische Änderung darstellen (z. B. Anamnese, Medikamentierung, Herzüberwachung, Labor) , sind sinngemäße n-Tabellen zu erstellen, so dass man ein "FollowUp" erreichen kann.


Diese einzelnen Historie (Followup)-Tabellen werden als UFOs auf Registerseiten angezeigt(, um der Formular-Konstruktion schon mal vorzugreifen)







Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 06, 2021, 18:29:23
OK ich habe jetzt erstmal alle Formulare gelöscht und mich nochmal an die Tabellenlogik und Beziehungen rann gemacht.

Dabei habe ich die Tabelle Person_Gesund entfernt, da ich die Zeiträume mit in der Tabelle Gesundheitsdaten drin habe, nach dem Motto: Eine Person kann mehrere Gesundheitsdatensätze haben.

Dazu habe ich noch die Beziehung zu der Tabelle Risikofakten geändert, da es hier heißt: Ein Gesundheitsdatensatz kann mehrere Risikofakten haben. Das wären Daten die man nur einmal eingibt, daher ohne Zeitraum. Hier brauche ich aber eine Zwischentabelle, die dann die Beziehung zwischen der tblGesundheitsdaten und tblRisikofaktoren regelt: tblGes_Ris, die dann die jeweiligen Fremdschlüssel beinhaltet.

Für die Symptome das gleiche, nur das dort noch ein Zeitraum mit dabei ist, da diese sich über den Krankheitsverlauf ändern können, bis keiner mehr da ist.

Ich habe mal ein Screenshot der aktuellen Beziehungen mit angehängt.

Gibt es was, was man noch optimieren könnte? Oder schaut es jetzt erstmal ganz gut aus?

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


Beste Grüße
Pat
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 06, 2021, 18:32:51
Hallo,


auch hier gilt:

Platziere die 1-Tabellen jeweils links von den zugehörigen n-Tabellen, so wie ich es in meinem vorletzten Post gezeigt habe.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 06, 2021, 21:25:59
So müsste das jetzt passen

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

Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 07, 2021, 09:57:36
Hallo,

ja, schon besser..  ;)

Ich kann allerdings jetzt nicht sagen, ob tblGesundheitsdaten auch wirklich das liefert, was Du erwartest.

Dann mach Dich mal an die Formulare (Datenherkunft jeweils der Tabellenname).

Vorschlag:




frmPerson  Einzelform

frmKontakt_Person (Endlosform) als UFO in frmPersonen

frmGesundheitsdaten Einzelform als UFO in frmPersonen
                 mit 3-seitigem Registersteuerelement für frmAbstrich, tblSymptom_Zeitraum  und tblGes_Ris (alles Endlosforms)




Alle Fremdschlüssel zu den 1-Tabellen als Kombifelder auslegen.


Weiterhin:

Alles Endlosforms, evtl. außer frm_Gesund_Krankenhaus.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 08, 2021, 15:31:15
Hallo,

super dann fange ich erstmal mit den Formularen an und wir schauen später ob Tabellenseitig alles passt.

Sollen die Formulare samt alle Felder (außer Schlüsselfelder) über den Formular-Assistenten generiert werden oder ist es sauber (durch mehr Kontrolle) dies über den Formularentwurf zu tun?

Und eine Frage hätte ich, müssen Fremdschlüssel generell als Pflichtfelder gekennzeichnet/eingestellt werden oder kommt das immer auf den Usecase drauf an?


Vielen Dank im Voraus.
Pat
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: MzKlMu am Januar 08, 2021, 15:50:23
Hallo,
Zitat von: undefinedsuper dann fange ich erstmal mit den Formularen an und wir schauen später ob Tabellenseitig alles passt.
Nein, auf keinen Fall. Erst das Datenmodell mit einer stimmigen Tabellenstruktur und dann erst die Formulare.
Wenn Du erst die Formulare machst und dann die Tabellenstruktur ändern musst, kannst Du die Formulare in die Tonne treten.

1. Tabellen erstellen mit Primär und ggf. Fremdschlüsselfeldern
2. Beziehungen mit referentieller Integrität einrichten
3. Tabellen mit Sieldaten mal testen
4. Wenn es passt, dann die Formulare

Fremdschlüssel müssen keine Pflichtfelder sein, die können auch leer (NULL) bleiben.
Mit NULL ist nicht die Zahl gemeint.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 08, 2021, 17:06:25
Danke,

Ich habe gerade beim prüfen der Beziehungen noch bemerkt, das ich die Tabelle tblQuarantaene ganz vergessen hatte einzubinden.

Dann werde ich die Tabellen jetzt erst einmal mit Zieldaten füllen und das ganze so testen.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 08, 2021, 18:21:21
Nach etwas Überlegung sehe ich keinen Grund, die tblGesundheitsdaten so zu übernehmen und würde diese umbenennen in tblZusatz. Alle anderen Tabelle, die vorher in einer Beziehung mit tblGesundheitsdaten lagen kann ich auch gleich an die tblPerson verknüpfen.

Dazu gesellt sich dann noch ein Zeitraum für den Personenstatus um nachverfolgen zu können, wann dieser Erkrankt und Genesen ist.

Ich muss jetzt nur noch irgendwie ein Feld reinbekommen, woran ich festmachen kann, welche Erkrankte Person welche Kontaktpersonen hatte bzw. welche Kontaktperson von wem angesteckt wurde.

Visuell stelle ich mir das so vor, das man in einem Reiter in den Gesundheitsdaten per Hinzufügenbutton Personen hinzufügt, die den Status Kontaktperson automatisch bekommen und die Verknüpfung zu dem Erkrankten.

Anbei nochmal mein Umstrukturierungsplan skizziert:

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


Edit: Wobei ich gerade beim genaueren hinsehen nochmal überlegen muss welche Zweck die Tabelle Zusatz überhaupt erfüllen soll. Da sie eigentlich in einer 1:1 Beziehung mit der Person steht.

Edit 2: Dann sieht das ganze jetzt so aus. Habe auch gleich noch der Arbeitsstelle und dem Hausarzt Kontaktdaten ermöglicht:

Sie dürfen in diesem Board keine Dateianhänge sehen.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 09, 2021, 19:05:29
Hallo zusammen,

ich wollte jetzt mal versuchen ein einfaches Personenformular zu erstellen, einfach um zu schauen ob die Daten auch angezeigt werden. Aber irgendwie zeigt er mir gar nichts an, also noch nicht mal die textboxen zu den Feldern:

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

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

Woran kann das liegen?

Ich habe die Felder über die Option "Vorhandene Felder hinzufügen" hinzugefügt. Die Formulare haben auch die richtige Tabelle als Datensatzquelle :S

Edit: OK ich hatte einen Denkfehler, jetzt funktioniert es soweit. Allerdings versuche ich gerade ein Listenelement das die Zeiträume hat einzufügen, aber anstatt nur den Zeitraum für die obige Person anzuzeigen, zeigt es alle an.

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

Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 09, 2021, 20:06:16
Hallo,

Bilder von den Formularen nützen nichts in diesem Fall.

Lad die DB mal hier hoch, komprimiert und gezippt.

Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 10, 2021, 13:53:01
Hallo,

anbei die DB.

Ich hab es erst nochmal selber versucht, aber habe es nicht hinbgekommen. Das Listenfeld zeigt einfach alle Zeiträume an und nicht zu der ausgewählten Person.
Sie dürfen in diesem Board keine Dateianhänge sehen.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 10, 2021, 18:20:14
Hallo,

die Listenfeld-Anzeige muss gefiltert werden und die Datensatzherkunft des Listenfeldes sollte so heißen:


SELECT tblquarantaene.qua_id, tblquarantaene.qua_von, tblquarantaene.qua_bis FROM tblquarantaene WHERE per_id_f =[].[per_id_f]
Dazu eine Ereignisprozedur "Beim Anzeigen" im Form frmQuarantaene:


Option Compare Database
Option Explicit

Private Sub Form_Current()
Me!Liste4.Requery
End Sub
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 10, 2021, 18:27:20
Kann ich den SQL Code auch in einem richtigen Editor eingeben in Access oder geht das nur über das Eigenschaftenblatt bei Datensatzherkunft in dem kleinen Feld?
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 10, 2021, 18:30:25
Hallo,

stell die Schreibmarke in das Eigenschaftenfeld und drück Shift-F2
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 11, 2021, 12:59:51
Hallo,

Soweit hat alles super funktioniert. Jetzt bin ich allerdings auf ein kurioses Problem gestoßen.
Hatte die DB als neue Version abgespeichert und dann Access neu gestartet (komprimieren und reparieren).

Nachdem ich dann das Formular Person wieder öffne, werden mir zwar 4 Datensätze angezeigt, aber 3 mal ist es nun die Person mit der ID 2 und einmal die Person mit der ID 3. Die Person mit der ID 1 wird gar nicht mehr angezeigt?!

anbei die DB.

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


EDIT: OK Problem doch selber gefunden. Dadurch das ich in dem Formular für die Person das Personen_Status_Zeit Formular drin hatte und dies dann gelöscht habe, verblieb trotzdem noch die Abfrage für das Formular Person die gleiche.

Ich habe also nun in der Abfrage die Tabellen zu dem Status und Zeitraum des Personen_Statuses gelöscht und es scheint wieder richtig zu funktionieren.

Ich hatte vorher versucht ein Formular für den Personenstatus im gleichen Format wie das Formular Quarantäne zu erstellen, was mir aber irgendwie nicht gelang (Hatte ich dort einen Zeitraum ausgewählt haben sich nicht die Felder entsprechend gefüllt)
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 13, 2021, 14:23:19
Hallo,

ich habe jetzt eine Suchenmaske erstellt und möchte nun über einen Öffnen-Button den jeweiligen Datensatz in der Personenmaske anzeigen lassen.

Muss dazu nun auf dem Formular frmPerson das Feld ID unsichtbar hinterlegt werden oder wie würde man das Öffnen nach ID angehen?

Erstelle ich einen Button mithilfe des Assistenten, dann öffnet dieser das Formular anhand vom Namen, welcher aber öfters vorkommen kann.

Falls die aktuelle DB benötigt wird, lade ich sie gerne hoch.

Vielen Dank im Voraus.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 13, 2021, 15:34:05
Hallo,

ZitatFalls die aktuelle DB benötigt wird, lade ich sie gerne hoch.

wäre von Vorteil...
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 13, 2021, 16:52:41
So ich habe jetzt etwas rumprobiert und zumindest funktioniert es erstmal, allerdings bin ich mir nicht sicher ob es so der richtige Weg ist oder ob es nicht einen besseren gibt.

Auch habe ich mal ein provisorisches Start Formular hinzugefügt um das anlegen von neuen Personen zu testen.
Dazu öffne ich das Formular frmPerson und Filter das auf die ID = 0, wie hier in einem anderen Thread beschrieben.

Den Button "Neu Anlegen" lasse ich dabei nur anzeigen, wenn im Feld "per_name" etwas drin steht um im Grunde dem Programm zu sagen, es handelt sich um eine neue Person, wenn der Name beim öffnen nicht im Feld per_name steht.

Was derzeit noch nicht so gut funktioniert ist, das wenn ich einen Button hinzufüge, dieser per Assistent als Makro erstellt wird, die Funktion "Makro in VBA umwandeln" klappt bei mir leider nicht.
 
Was auch noch nicht geht, er zeigt mir nicht die neu hinzugefügten Personen in der Suche an, ich gehe mal davon aus, weil diese keine PLZ und Ort haben und dies aber in dem Formular frmPersonSuche abgefragt wird :S

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

EDIT: Noch eine Sache, ich möchte auch in dem Register eine Seite haben wo man drüber nachvollziehen kann, mit welchen Personen die Person, die ich gerade bearbeite, Kontakt hatte. Dazu habe ich der tblPerson ein neues Feld "Quelle" hinzugefügt, dort kommt dann die ID der Person rein, wo sich diese Person von angesteckt hat.

D.h. Wenn ich eine Person bearbeite, dann habe ich das Register Kontaktpersonen und dort dann erstmal eine leere Liste, mit einem Plus Button oder so kann ich dann Personen hinzufügen, meistens werden es neue sein, die ich dann in einer Maske anlegen kann und die automatisch den Status "Kontaktperson" bekommt + in dem Feld "Quelle" die ID der Hauptperson.

Ich bin mir allerdings noch nicht so ganz sicher, wie das mit dem ganzen hinzufügen funktionieren soll bzw kann.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 13, 2021, 20:38:03
Hallo,

die 1-Tabellendaten müssen allesamt zuerst erfaßt werden, bevor ein n-Tabellen-Datensatz erfaßt werden kann, soll heißen, zuerst Arbeitsstelle Geschlecht, Hausarzt etc. und erst dann eine Person.

frmArbeitsstelle kann nicht als Unterform für diesen Zweck in frmPersonen verwendet werden.

Die Daten aus den 1-Tabellen ( alle 1-Tabellen, die im Bezeihungsfenster links von tblPerson stehen) müssen mittels Kombis aus den 1- Tabellen ausgewählt und zugeordnet werden.

Ein Start-Form mit Neu Anlegen-Button ist eher hinderlich.  Die Erfassung einer neuen Person wird einfach im frmPerson mittels Button-Klick angestoßen.  Von Makros und der Konvertierung in VBA-Code ist abzusehen, weil unnötig und "durch die Brust ins Auge" -Methode.

Ebenso ist ein Personen-Suchform überflüssig.  Eine solche Suche kann im frmPerson leicht und direkt erfolgen.

Mit 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?


Bei einer Person braucht es lediglich ein Kombifeld, mit dem die ansteckende Person ausgewählt und deren ID in das Feld "Quelle" ( das Feld heißt anders in der Tabelle....) abgelegt wird.


Kommen mehrere Personen in Frage, so braucht es eine weitere Tabelle ("tblInfizierer")  in die alle Personen abgelegt werden, die die aktuelle Person infiziert haben (könnten).

Zum Formular-Layout:

Erstelle für alle Tabellen Formulare (Datenherkunft Tabellenname), je nach praktischem Ermessen Endlos- oder Einzel-Form.
 
Erstelle das frmPersonen so:

Datensatzherkunft: tblPerson

mit

-allen Felder aus dieser Tabelle

-einem Registersteuerelement mit derzeit 7 Seiten.. Auf jeder dieser Seiten wird ein UFO-Steuerelement  eingebaut, das die Formulare der N-Tabellen bezgl. tblPerson anzeigt.


Vergiss nicht, die Eigenschaften "Verknüpfen von/nach" bei jedem UFO-Steuerelement korrekt auf die jeweiligen Schlüsselfelder einzustellen, sofern sie nicht schon von UFO-Assistenten gesetzt worden sind.



Die DB muss zuerst mit Hilfe der Formulare und dem Durchlaufen der DS richtige Ergebnisse anzeigen. Erfassen und Pflege in frmPersonen muss ohne weiteres Zutun (Code) korrekt möglich sein.


Danach kann "mehr Konfort" angegangen werden.

Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 13, 2021, 22:08:20
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.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 14, 2021, 11:49:20
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)

Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 14, 2021, 18:28:47
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?
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 14, 2021, 19:19:48
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.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 14, 2021, 21:21:55
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 :)
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 15, 2021, 08:18:43
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;
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 15, 2021, 15:32:16
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.
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 15, 2021, 15:42:05
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?
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 15, 2021, 16:01:03
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.

Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: DF6GL am Januar 15, 2021, 16:23:05
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
Titel: Re: Keine Eingabe in Unterformular möglich
Beitrag von: Paddy24 am Januar 20, 2021, 10:06:49
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.