Neuigkeiten:

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

Mobiles Hauptmenü

Formular mit Nachschlagefeld

Begonnen von TomTom2903, November 14, 2013, 10:33:17

⏪ vorheriges - nächstes ⏩

TomTom2903

Hallo Zusammen,
habe ein kleines Problem bei einem Formular.
Das Formular basiert auf eine Tabelle, in der die Ausprägungen der einzelnen Werte mit einer ID hinterlegt sind. Die Ausprägungen werden dann über eine andere Tabelle gesteuert.
Z.B.
Tabelle: tbl_Produkt
mit Spalten: Produkt_ID; Ausp_ID

Tabelle: tbl_Auspraegung
mit Spalte: Ausp_ID; Auspr_Text

Nun habe ich ein Endlosformular aufgebaut, dass auf er Tabelle tbl_Produkt basiert.
In diesem Formular möchte ich natrlich nicht die ID der Ausprägung angezeigt bekommen, sondern den Text der Ausprägung.
Die Ausprägung soll nicht änderbar sein.

Hier gibt es meines Wissen 3 Möglichkeiten:
1. über ein Textfeld. Nachteil: Performance nicht so toll.
2. Über ein Listenfeld. Nachteil: Oben und unten Pfeil wird angezeigt und wenn keine Ausp_ID vorhanden ist, wird der erste Wert der Tabelle tbl_Auspraegung angezeigt.
3. Kombinationsfeld. Nachteil: Wird das Symbol zum aufklappen angezeigt.

Vgl. auch JPG

Hat jmd eine Idee wie man die Nachteile bei Möglichkeit 2 und 3 verhindern kann.
Oder
Hat jmd eine ganz andere Idee?

Danke & Gruß
Tom



MzKlMu

Hallo,
binde das Formular an eine Abfrage mit beiden Tabellen (und der Beziehung), dann hast Du alle Felder aus beiden Tabellen ohne Performanceverlust zur Anzeige zur Verfügung. Das ist der Regelfall und die schnellste Lösung wenn ein Kombi nicht erforderlich ist.
Man sollte ohnehin ein Formular nie direkt an eine Tabelle binden.

PS:
Ich hoffe, Du hast das Nachschlagefeld nicht bereits in der Tabelle angelegt.
Gruß Klaus

TomTom2903

Hallo,
danke für die Antwort.
Die Nachschlagefelder habe ich nicht über die Tabelle eingebunden, sondern das mache ich ausschließlich im Formular.

Das Problem ist, wenn ich eine Querry für das Formular als Datensatzquelle hinterlege, kann ich ja da wo ich ein Kombinationsfeld benötige, den Wert nicht ändern.
-> Also d.h. ich möchte bei bestimmten Feldern im Formular nur den Text angezeigt bekommen, der sich hinter der ID befindet und bei anderen Feldern soll die Möglichkeit bestehen, über ein Kombinationsfeld den Wert (ID) zu ändern.

MzKlMu

#3
Hallo,
ZitatDas Problem ist, wenn ich eine Querry für das Formular als Datensatzquelle hinterlege, kann ich ja da wo ich ein Kombinationsfeld benötige, den Wert nicht ändern.
Wieso, eine Querry/Abfrage heißt ja nicht, dass Du nichts ändern kannst. Auch in einer normalen Auswahlabfragen mit mehreren Tabellen und einfachen Inner Joins können Daten ganz normal geändert werden. Das wäre ja schlimm, wenn das nicht ginge.
Das ist alles über die vorgeschlagene Abfrage problemlos möglich.

Verwendest Du bisher keine Abfragen für Deine Formulare ?
Das wäre allerdings ein Fehler. Zugriff auf Daten sollte immer über Abfragen laufen. Wie willst Du sonst z.B. eine korrekte Sortierung sicherstellen?
Auch ist der Zugriff auf die Daten mit einer gespeicherten Abfrage schneller als der Zugriff über die Tabelle direkt.
Gruß Klaus

TomTom2903

Hallo,
eigentlich eher weniger. War bisher nicht notwendig.
Beim Endlosformular ist das nun der Fall.
Versuche diese Problematik mit Dlookup oder DOmwert zu umgehen.

Ich probiere es mal kurz aus.
Danke für Info

Aber aus meiner Erinnerung weiß ich noch, dass bei Querrys teilweise die Werte nicht geändert werden konnten. Wann ist das den der Fall?

MzKlMu

#5
Hallo,
ZitatVersuche diese Problematik mit Dlookup oder DOmwert zu umgehen.
das ist gelinde gesagt Unsinn und völlig daneben und überflüssig bis zum geht nicht mehr.  ;D ;D Sorry, aber da bin ich fast sprachlos. Das wäre dann was die Performance betrifft der Supergau. Domwert ist eine Performancebremse erster Klasse.
Und wer Domwert (DLookup) benötigt hat ohnehin was falsch gemacht.

Warum probierst Du die Abfrage nicht einfach mal aus?

ZitatAber aus meiner Erinnerung weiß ich noch, dass bei Querrys teilweise die Werte nicht geändert werden konnten. Wann ist das den der Fall?
das hast Du falsche Erinnerungen. Abfragen die hier benötigt werden sind immer bearbeitbar. Da sind ja nur Inner Joins notwendig. Und das funktioniert mit 5 und mehr Tabellen immer noch.
Right/Left Joins können nicht bearbeitbar sein, müssen aber nicht.
Gruppierte Abfragen gehen nicht. Ebenso Abfragen die auf eindeutige Datensätze eingestellt sind (SELECT DISTINCT....).

Aber das ist ja hier alles nicht der Fall.

In meinem Beitrag oben habe ich noch einiges ergänzt.
Gruß Klaus

TomTom2903

Hallo,
zu Domwert benutze ich äußerst ungern. Ab und zu bei vba nehme ich dlookup.
Performance ist natürlich katastrophal.

Ok, das mit der Querry hat sich bei mir so verinnerlicht. Warum weiß ich nicht mehr. Schon ein weilchen her. Vermute das mit der Group by was war...
Abfragen nutze ich natürlich sonst überall.
Nur wie gesagt, beim Formular mit Datensatzquelle Abfrage bin ich irgendwo auf die Schnauze gefallen...

Also habe es jetzt probiert und funktioniert einwadfrei.
Den Hinweis wann Querrys im Formular zur Datenänderung nicht funktioniert, schreibe ich mir jetzt hinter die Ohren ;-)

:D DANKE FÜR DEINE HILFE   ;D