Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Pseiko am September 09, 2010, 07:47:31

Titel: Kombinationsfeld (Wert aus Datensatz + Vorgabewerte)
Beitrag von: Pseiko am September 09, 2010, 07:47:31
Hallo,

ich hänge schon eine ganze Weile an einem Problem mit einem Access-Formular. Ich möchte in ein Kombinationsfeld den im aktuellen Datensatz hinterlegten Wert angezeigt bekommen. Dahinter sollen mögliche andere Werte (aus einer anderen Tabelle) zur Auswahl angeboten werden.

Zum Tabellenaufbau:
Ich habe eine Tabelle "Anforderungen" in welcher der gewählte Wert als Zahl gespeichert wird und eine Tabelle namens "Werkstoffe" die ich entsprechend über die ID verknüpft habe. Nun bekomme ich es hin das der aktuelle Wert des Datensatzes im Kombinationsfeld (auch mit Namen) angezeigt wird. Allerdings wird er nicht direkt in den sichtbaren Bereich gescrollt / ausgewählt. So viel zu Problem 1.

Außerdem möchte ich nun gerne sämtliche Werte aus der Tabelle "Werkstoffe" ebenfalls in diesem Kombi-Feld zur Auswahl haben (hinter dem aktuellen Wert des Datensatzes).

Ich habe leider keine Ahnung wie ich das bewerkstelligen könnte. VBA versuche ich zu vermeiden, wenn es irgendwie möglich ist.

(Ich verwende Office 2007)
Titel: Re: Kombinationsfeld (Wert aus Datensatz + Vorgabewerte)
Beitrag von: MzKlMu am September 09, 2010, 07:53:30
Hallo,
das Problem (sichtbarerer Bereich ?) habe ich nicht ganz verstanden. Aber mal folgende Frage:
ZitatIch habe eine Tabelle "Anforderungen" in welcher der gewählte
Wert als Zahl gespeichert wird und eine Tabelle namens "Werkstoffe"
Hat ein Werkstoff mehrere Anforderungen?
Wenn ja, wie willst Du diese speichern?
Titel: Re: Kombinationsfeld (Wert aus Datensatz + Vorgabewerte)
Beitrag von: Pseiko am September 09, 2010, 07:59:01
Es geht dabei um Prüfberichte. Die Anforderungen ergeben sich aus dem Werkstoff und einer Norm. Für beides habe ich jeweils ein Kombi-Feld vorgesehen. Auch wenn es etwas merkwürdig klingt hat eine Anforderung einen Werkstoff. Über die Auswahl von Werkstoff und Norm fülle ich in meinem Hauptformular automatisch die Soll-Werte (ebenso im entsprechenden Bericht).

"Zum sichtbaren Bereich": Wenn ich einen Datensatz wähle ist in meinem Feld kein Wert ausgewählt. Ich muss also erst 1x scrollen um den Wert der eigentlich ausgewählt sein sollte zu sehen.
Titel: Re: Kombinationsfeld (Wert aus Datensatz + Vorgabewerte)
Beitrag von: MzKlMu am September 09, 2010, 08:04:20
Hallo,
das Kombifeld muss als Datenherkunft die Tabelle "Werkstoffe" haben. Es muss an das Fremdschlüsselfeld (für den Werkstoff) in der Tabelle "Anforderungen" gebunden sein. Im Kombis siehst Du beim Aufklaooen immer alle vorhandenen Werkstoffe. Es sollte auch immer gleich korrekt anzeigen.
Wie ist die Reihenfolge der Spalten im Kombi?
Was ist die gebundene Spalte?
Wie sind die Spaltenbreiten?
Steuerelementinhalt des Kombis?

Hast Du diese Kombis direkt in den Tabellen angelegt, oder nur im Formular?
Titel: Re: Kombinationsfeld (Wert aus Datensatz + Vorgabewerte)
Beitrag von: Pseiko am September 09, 2010, 09:15:29
Zitat von: MzKlMu am September 09, 2010, 08:04:20
das Kombifeld muss als Datenherkunft die Tabelle "Werkstoffe" haben. Es muss an das Fremdschlüsselfeld (für den Werkstoff) in der Tabelle "Anforderungen" gebunden sein.
Hab ich nach etwas gefrickel jetzt (denke ich) soweit umgesetzt. Funktional ist das Ganze jetzt. Bleibt noch ein kosmetisches Problem:
(http://img3.imagebanana.com/img/2ipx15c5/thumb/formular.JPG) (http://www.imagebanana.com/view/2ipx15c5/formular.JPG)

ZitatWas ist die gebundene Spalte?
Die gebundene Spalte ist 1, bei Spalte 2 bekomme ich als gewählten Wert nichts mehr angezeigt.
ZitatWie sind die Spaltenbreiten?
Die hab ich vorerst nicht definiert. Wenn ich anstatt der Zahl den gewählten Wert angezeigt bekomme wollte ich die 1. Spalte einfach auf 0 setzen.
ZitatSteuerelementinhalt des Kombis?
Spalte 1: Tabelle Werkstoffe -> ID
Spalte 2: Tabelle Werkstoffe -> Name
Anforderungen -> Werkstoff habe ich mit Werkstoffe -> ID verknüpft
ZitatHast Du diese Kombis direkt in den Tabellen angelegt, oder nur im Formular?
Die Kombis werden in Tabellen gespeichert. Genau genommen ist das Formular dazu da diese anzulegen.
Titel: Re: Kombinationsfeld (Wert aus Datensatz + Vorgabewerte)
Beitrag von: DF6GL am September 09, 2010, 09:27:59
Hallo,


ZitatDie Kombis werden in Tabellen gespeichert. Genau genommen ist das Formular dazu da diese anzulegen.


Wirf die Kombis (Nachschlagefelder) aus der Tabelle heraus!

Erstell NUR im Formular die passenden Kombifelder.

Titel: Re: Kombinationsfeld (Wert aus Datensatz + Vorgabewerte)
Beitrag von: Pseiko am September 09, 2010, 09:33:06
Hmm, wenn ich dich recht verstehe würde das mein komplettes System über den Haufen werfen.

Ich speichere in der Anforderungstabelle den Auswahlwert für Kombination und in einem anderen Feld für Norm und dahinter die Anforderungen (Anforderung1, Ist-Wert1...). Wenn ich das rausnehme bekomme ich die Anforderung zu Kombination ja nicht mehr zugeordnet. Oder ich verstehe jetzt was grundlegend falsch.
Titel: Re: Kombinationsfeld (Wert aus Datensatz + Vorgabewerte)
Beitrag von: MzKlMu am September 09, 2010, 09:34:02
Hallo,
ZitatDie Kombis werden in Tabellen gespeichert.
Die Frage war, ob die Kombis in den Tabellen angelegt/erstellt wurden?
Wenn ja, in den Tabellen unbedingt entfernen und ganz normale Textfelder verwenden.

Einstellungen für das Kombi:
Spalte 1: Tabelle Werkstoffe -> ID
Spalte 2: Tabelle Werkstoffe -> Name
Gebundene Spalte: 1
Spaltenbreiten: 0cm;5cm (Vorschlag)

Nenne die ID Felder nicht einfach ID, sondern WerstoffID bzw. AnforderungID.
Die zugehörigen Fremdschlüsselfelder erhalten die Endung _F (WerstoffID_F). Es ist sehr wichtig, dass man die Schlüsselfelder immer zweifelsfrei unterscheiden kann, sonst gibt das Durcheinander.
Grundsätzlich sollte es in einer DB keine Namensgleichheiten für Feldnamen geben, über alle Tabellen. Es vereinfacht kollosal den Umgang mit der DB in der Entwicklungsphase.
Titel: Re: Kombinationsfeld (Wert aus Datensatz + Vorgabewerte)
Beitrag von: MzKlMu am September 09, 2010, 09:38:18
Hallo,
Nachschlagefelder entfernen, dringend.
Du hast keine Nachteile. Was die Tabellen anzeigen ist bedeutungslos. Es ändert sich auch nichts am Konzept.
Verwende die Kombis ausschließlich in Formularen.


Access Anfänger: Die Nachteile von Nachschlagefeldern

aus DBWiki, dem Datenbank-Entwickler-Wiki

Man sollte Nachschlagefelder in Tabellen vermeiden, denn

   1. Ein Nachschlagefeld verbirgt den eigentlichen Feldinhalt. Wenn man beispielsweise eine Tabelle in Datenblattansicht öffnet, wird ein Firmenname dargestellt, obwohl in Wirklichkeit im Feld die Kundennummer steht, und der Firmenname aus einer anderen Tabelle stammt. Nachschlagefelder verhindern, dass Datenbanken sauber durchstrukturiert angelegt werden.

   2. Eine Abfrage, die das Nachschlagefeld verwendet und nach dem dargestellten Wert sortieren soll, funktioniert nicht. So wird im obigen Beispiel nicht nach dem Firmennamen, sondern nach der Kundennummer sortiert. Ebensowenig funktioniert die Angabe des Werts als Kriterium - auch hier müsste man die Nummer anstelle des Namens verwenden, um Ergebnisse zu erhalten. Wenn man den Wert aus einer Wertliste eines Kombinationsfelds auswählt, kann es passieren, dass gültige Daten mit falschen Werten überschrieben werden.

   3. Das Nachschlagefeld beinhaltet eine (intern angelegte) Beziehung zwischen den Tabellen sowie die Anlage zusätzlicher Indizes, die in aller Regel überflüssig sind und die Datenbank unnütz aufblähen. Auch kann es vorkommen, dass man auf diese Weise die maximal zugelassene Anzahl von Indizes je Tabelle unwillentlich überschreitet.

   4. Ein Kombinationsfeld auf der Basis eines Nachschlagefelds kann bei Filterung des Formulars dazu führen, dass der Filter mit dem Formular gespeichert wird. Beim nächsten Öffnen des Formulars fehlt der Wert und wird nachgefragt, was wiederum zu einem Fehler führt.

   5. Berichte, deren Datenherkunft Nachschlagefelder enthält, benötigen Kombinationsfelder zu deren Darstellung, die den Bericht langsam und ineffizient machen können.

   6. Die Datenbank kann nicht vernünftig von außen abgefragt (beispielsweise in Form einer Datenquelle eines Word-Serienbriefs) oder exportiert werden, da die Nachschlagefelder nicht nach außen gereicht werden.

   7. Wenn man das Access-Sicherheitssystem verwendet, reichen die Berechtigungen oft nicht aus, um die Nachschlagefelder mit Inhalt zu füllen, was zu schwer nachzuvollziehbaren Fehlern führt. Das gilt insbesondere, wenn man aus Sicherheitsgründen mit Abfragen mit "WITH OWNERACCESS OPTION" arbeitet.[/quote]

DBWIKI ist  zur Zeit nicht mehr Online, daher als Zitat.
Titel: Re: Kombinationsfeld (Wert aus Datensatz + Vorgabewerte)
Beitrag von: Pseiko am September 09, 2010, 10:40:49
Ok, mein Fehler. Nachschlagefelder benutze ich nicht. Ich speichere alles ganz normal als Text-/Zahlenfelder. In Unkenntnis der Existenz von Nachschlagefeldern, dachte ich ihr meint ob ich die Werte in meiner Anforderungstabelle speichere.

Der Hinweis mit der eindeutigen Benennung der Feldbezeichnungen klingt vernünftig. Allerdings fürchte ich das bestehende VB-Abfragen nicht aktualisiert werden (sprich: Ich die Feldbezeichungen darin manuell ändern muss)?! Falls nein müsste ich halt schauen ob der (dann erhebliche) Aufwand lohnt.

Das Kombifeld funktioniert jetzt auch wie gewünscht. Die Spaltenbreite hat mein "Kosmetikproblem" behoben.

Auf jeden Fall danke für die verständliche Hilfe, trotz meiner sehr überschaubaren Access-Kenntnisse!