Neuigkeiten:

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

Mobiles Hauptmenü

in PopUp-Formuar keine Dateneingabe möglich

Begonnen von KonradR, Oktober 01, 2023, 09:19:17

⏪ vorheriges - nächstes ⏩

KonradR

Hallo liebe Accessfreunde,

ich habe eine Accesdatenbank erstellt und zwischendrin Tabellen ergänzt, die neu erstellten Tabellen zu den bestehenden Tabellen in Beziehung gesetzt und von den bestehenden Tabellen teilweise, Felder gelöscht und neue hinzugefügt. Daten hatte ich zu dem Zeitpunkt schon eingegeben. Wenn ich jetzt über einen Button im 2. Unterformular ein PopUp-Formular aufrufe, soll sich dieses genau auf den Datensatz beziehen, in dem der Datensatzzeiger im 2. Unterformular steht. Das funktioniert aber nur, wenn ich über die Datenblattansicht von der tblZutaten aus die Daten eingebe und immer weiter über diesen Weg die zugeordneten Datensätze in den Unterdatenblättern ausfülle. Wenn ich die Daten über das Formular ausfüllen möchte, gibt es keine Zuordnung im PopUpFormular. Wenn ich die, für das PopUpFormular zugeordnete Datensatzquelle, eine Abfrage, so anpasse, dass die Verknüpfungseigenschaften unter den Tabellen Option 2 sind, dann werden zwar die Datensätze aus dem PopUpFormular dem Datensatz aus dem 2. Unterformular zugeordnet, aber ich kann keine Daten eingeben. Sieht dann so aus:
Sie dürfen in diesem Board keine Dateianhänge sehen.
 Es erscheint dann die Meldung "Es kann kein Wert auf der "1"-Seite einer Inklusionsverknüpfung eingegeben werden". Wenn ich für die Verknüpfungseigenschaften unter den Tabellen Option 1 auswähle, dann werden die Datensätze aus dem PopUpFormular dem Datensatz aus dem 2. Unterformular nicht zugeordnet, aber ich kann Daten eingeben. Sieht dann so aus:
Sie dürfen in diesem Board keine Dateianhänge sehen.

Wie kann ich ereichen, dass die Daten im PopUpFormular zugeordnet werden und ich neue Datensätze im PopUpFormular erstellen kann?

Nun habe ich unter den Tabellen folgende Beziehungen aufgebaut:
Sie dürfen in diesem Board keine Dateianhänge sehen.


KonradR

Hallo liebe Accessfreunde,

ich habe das Popup-Formular noch mal angepasst und nun als Endlosformular gestaltet. Es sollen also mehrere Unterdatensätze für den ausgewählten Datensatz im 2.Unterformular angezeigt werden und erstellt werden können. Das Problem mit der Zuordnung konnte ich so teilweise lösen.

Wenn ich nun im PopUp-Formular einen neuen Datensatz erstellen möchte, dann wird für das Feld "ZutatID" kein Wert vergeben und wenn ich den gerade eingegebenen Datensatz verlassen will, wird die Fehlermeldung "Das Microsoft Access-Datenbankmodul kann in der Tabelle 'tblZutaten' keinen Datensatz mit passenden Schlüsselfeldern 'LadenZutatIDRef' finden" angezeigt. Das Feld 'LadenZutatIDRef' ist natürlich nicht in der Tabelle tblZutaten enthalten. Aber wie kann ich dennoch eine Verbindung von der Tabelle tblZutaten zu den dahinterliegenden Tabellen herstellen um Datensätze im PopUp-Formular ergänzen zu können?

markusxy

Wie ist die Datenbasis des Popup-Forms?

Und dann gleich auch die Datenbasis von SubForm2, damit es keine Unklarheiten gibt.

Beim Datenmodell, hab ich so meine Zweifel ...

KonradR

Hallo markusxy,

Zitat von: markusxy am Oktober 02, 2023, 12:15:29Wie ist die Datenbasis des Popup-Forms?
Ich habe hier mal ein Bildschirmfoto gemacht und die Felder rot eingekreist, welche in der Abfrage drin sind, weil es mehr Felder sind als der Bildschirm an Breite zur Verfügung hat:
Sie dürfen in diesem Board keine Dateianhänge sehen.

Zitat von: markusxy am Oktober 02, 2023, 12:15:29Und dann gleich auch die Datenbasis von SubForm2, damit es keine Unklarheiten gibt.
Hier ist sie:
Sie dürfen in diesem Board keine Dateianhänge sehen.

Zitat von: markusxy am Oktober 02, 2023, 12:15:29Beim Datenmodell, hab ich so meine Zweifel ...
Warum, bzw. an welcher Stelle?

markusxy

#4
Grundsätzlich gilt: In einem Formular zur Datenanlagen/-Pflege wird nur eine Tabelle als Datenbasis verwendet.  ;)

Bei Referenzen, wird die Referenz-Tabelle via Kombobox eingebunden. Sie hat aber nichts in der Datenbasis verloren.

Also z.B. beim SubForm2 gehört in die Datenbasis ausschließlich tblEinkaufsliste.
Aber selbst wenn du wie gezeigt mehrere Tabellen verwendest, muss klar sein, dass nur in einer Tabelle Daten angelegt werden.
Einheiten und Zutaten werden via Kombobox eingebunden - wie du es offensichtlich ja mit den Einheiten machst.
Wie kommst du auf eine Arbeitsweise, wie im Popup Form gezeigt?

Bezüglich Datenmodell fang ich gar nicht an, das ist deine Baustelle.
Die Benamsung ist schon strange. Die Kombination aus Laden und Zutaten nennst du tblLaden?
Nur so viel: Alles was du im Datenmodell falsch oder nicht praxisgerecht machst, bezahlst du später mit hohem Mehraufwand und viel rummurxen  ;)
Aber es darf jeder Erfahrung sammeln.


 

KonradR

Zitat von: markusxy am Oktober 02, 2023, 16:17:07Grundsätzlich gilt: In einem Formular zur Datenanlagen/-Pflege wird nur eine Tabelle als Datenbasis verwendet.
Das wusste ich nicht. Da habe ich wieder was gelernt.

Zitat von: markusxy am Oktober 02, 2023, 16:17:07Also z.B. beim SubForm2 gehört in die Datenbasis ausschließlich tblEinkaufsliste.
Aber selbst wenn du wie gezeigt mehrere Tabellen verwendest, muss klar sein, dass nur in einer Tabelle Daten angelegt werden.
Einheiten und Zutaten werden via Kombobox eingebunden - wie du es offensichtlich ja mit den Einheiten machst.
Das du das noch mal konkret benannt hast, war sehr hilfreich. Vielen Dank.

Zitat von: markusxy am Oktober 02, 2023, 16:17:07Wie kommst du auf eine Arbeitsweise, wie im Popup Form gezeigt?
Ich will alles auf einem Hauptformular mit Unterformularen unterbringen, die sich auf einem Bildschirm beschränken. Dann bleibt das Hauptformular mit den Unterformularen im Hintergrund und ich kann die entsprechenden Daten eintragen und weis in welchem Datensatz im übergeordneten Formular ich mich gerade befinde.

Zitat von: markusxy am Oktober 02, 2023, 16:17:07Bezüglich Datenmodell fang ich gar nicht an, das ist deine Baustelle.
Geht klar.

Zitat von: markusxy am Oktober 02, 2023, 16:17:07Die Benamsung ist schon strange. Die Kombination aus Laden und Zutaten nennst du tblLaden?
Ich hatte das aus einem Access-Kurs auf Linkedin von Lorenz Hölscher. Der hat empfohlen, die Felder immer mit den ersten fünf Buchstaben nach der Tabelle zu benennen. Dann können die im Nachhinein, bei der Formularerstellung über den Ausdrucksgenerator nicht verwechselt werden und es ist immer klar, welches Feld zu welcher Tabelle gehört.

In tblZutaten sind die Zutaten gespeichert und in tblLadenName sind die Ladennamen gespeichert. Die Tabelle tblLadenName ist eine Referenztabelle für die Tabelle tblLaden, denn ich möchte sichergehen, dass die Läden die ich in tblLaden (Szenario ohne Referenztabelle) eintrage, immer richtig geschrieben sind und ich nicht durch falsches Eintippen einen unnötigen weiteren Datensatz erzeuge.


Zitat von: markusxy am Oktober 02, 2023, 16:17:07Nur so viel: Alles was du im Datenmodell falsch oder nicht praxisgerecht machst, bezahlst du später mit hohem Mehraufwand und viel rummurxen  ;)
Aber es darf jeder Erfahrung sammeln.
Klar. Durch Fehler lernt man.


markusxy

Zitat von: KonradR am Oktober 03, 2023, 07:39:27
ZitatWie kommst du auf eine Arbeitsweise, wie im Popup Form gezeigt?
Ich will alles auf einem Hauptformular mit Unterformularen unterbringen, die sich auf einem Bildschirm beschränken.

Ich hab eher die Datenbasis Abfrage gemeint, bei der so viele Tabellen enthalten sind.

Zitat von: KonradR am Oktober 03, 2023, 07:39:27Der hat empfohlen, die Felder immer mit den ersten fünf Buchstaben nach der Tabelle zu benennen.

Also ich versuche die Namen so gut wie möglich sprechend zu wählen. Bei m:n verwende ich sofern sinnvoll immer eine Kombination der beteiligten Tabellen.
tblLadenName -> Laden
die Kombi tblLadenZutat.
Aber das nur so nebenbei als eher unwichtiger Hinweis.

KonradR

Zitat von: markusxy am Oktober 03, 2023, 16:14:13Ich hab eher die Datenbasis Abfrage gemeint, bei der so viele Tabellen enthalten sind.
Ich wollte, so wenig Unterformulare wie möglich machen, weil mein Ansinnen war und ist im aktuellen Unterformular so viele Daten wie möglich eintragen zu können und dann im Unterformular einfach mit der Tabulartortaste ein Feld weiter zu springen und dann wird automatisch in einer untergeordneten Tabelle ein neuer Datensatz angelegt. Es soll ja bei der Eingabe schnell und kompfortabel sein und wenn ich dann in ganz viele Unterformular gehen muss, ist es das meiner Meinung nach nicht.

Zitat von: markusxy am Oktober 03, 2023, 16:14:13Also ich versuche die Namen so gut wie möglich sprechend zu wählen. Bei m:n verwende ich sofern sinnvoll immer eine Kombination der beteiligten Tabellen.
tblLadenName -> Laden
die Kombi tblLadenZutat.
Aber das nur so nebenbei als eher unwichtiger Hinweis.
Danke für den Hinweis. Einfacher ist sicher besser. Ich werde noch mal über das Datenmodel schauen und prüfen, was ich optimieren kann.