PDA

Vollständige Version anzeigen : Mehrwertiges Feld


zockab
26.04.2011, 15:41
Habe ein mehrwertiges Feld in einer Tabelle erstellt und mit eigenen Werten gefüllt. Das Feld ist nun als Listenfeld in einem Formular eingebunden. Ich kann zwar mehrere Werte anklicken, diese werden aber nicht gespeichert - hingegen alle anderen Werte auf dem Formular.
habe auch schon getestet das Feld als Kombinationsfeld anzugeben.
Muss ich irgendeine globale Einstellung ändern???
HILFE

gpswanderer
26.04.2011, 15:45
Hallo,
verszichte auf die Mehrwertfelder und baue eine ordentliche n:m Beziehung auf mit einer zusätzlichen Zwischentabelle zur Aufnahme der beiden Fremdschlüssel.
Mehrwertfelder verhindern den sauberen Aufbau einer DB und werden Dich endlos mit Problemen verfolgen.

Das Verhalten der Mehrwertfelder ist ähnlich der Nachschlagefelder, die Mehrwertfelder bauen ja darauf auf.
Zu den Nachschlagefeldern:
Die Nachteile von Nachschlagefeldern (http://dbwiki.net/wiki/Access_Anf%C3%A4nger:_Die_Nachteile_von_Nachschlagefeldern)

zockab
27.04.2011, 08:27
Wie mache ich das mit der Zwischentabelle - habe keine Ahnung wie ich das in einem Formular darstelle, damit ich mehrere Einträge auswählen kann.
:)

Atrus2711
27.04.2011, 08:50
Hi,

die mehreren Werte, die du im Mehrwertfeld hast, haben normalerweise etwa diese Form: 4,6,19,48 und "gehören" als ganzes zu dem Satz, der durch den Primärschlüssel gekennzeichnet ist, z.B. zu Satz 92.

Eine Zwischentabelle nimmt die gleichen Daten auf, nur in anderer Form: sie "kippt" die Werte. Sie besteht typischerweise aus zwei Spalten:

Spalte, die die bisherige ID des Satzes aufnimmt.
Spalte, die die einzelnen Mehrfachwerte aufnimmt

Im Beispielfall wäre also aus dem Einzelsatz
92 | 4,6,19,48
die Zwischentabelle
92 | 4
92 | 6
92 | 19
92 | 48
geworden. Länger und schmaler ist also die Devise.

So eine Zwischentabelle ist die typische Auflösung einer m:n-beziehung. Die Mehrwertfelder von Access 2007 (und aufwärts) sind da nur ein Entgegenkommen an Anfänger, das sich aber bald rächt. Du merkst es gerade.

Diese Zwischentabelle kann und sollte auch einem (Unter-)Formular als Datenquelle dienen. In diesem Formular kannst du ggf. die Kennziffern durch Kombifelder vorschlagen lassen, damit du die nicht auswendig lernen musst.

gpswanderer
27.04.2011, 08:50
Hallo,
die Zwischentabelle speichert die Fremdschlüssel der jetzigen beiden Tabellen.
Im Formular wird eine der beiden Tabelle als Hauptformular dargestellt und in einem Unterformular (Zwischentabelle) werden mit einem Kombi die Auswahlen getroffen. Jede Auswahl gibt einen Datensatz.

Hafo und Ufo müssen über die Schlüsselfelder verknüpft sein.

Erzähle mal etwas mehr über die beiden jetzigen Tabellen und deren Felder.
Und den Zweck der DB.

zockab
27.04.2011, 10:35
Es sind 10 Werte vorgeben (Frage z.B. Welche Zeitung lesen Sie, Mehrfachnennung möglich). Habe die Zeitungen in einer Tabelle gelistet.

Jetzt habe ich pro Kunde 10 FElder auszufüllen, u.a. das o.g. Zeitung - Mehrfachnennung. Ich schaff es nicht, dieses so im Formular darzustellen, dass es mehrfach ausgewählt werden kann. und weiss nicht, wie es in der zwischentabelle gespeichert werden soll.

Danke schon vorab

Atrus2711
27.04.2011, 10:45
Hi,

wenn es nur um die Zeitungsgeschichte geht:

Kunden 1:n Zeitungsnutzung n:1 Zeitungen


Kunden = Kundentabelle ("Köpfe")
Zeitungen = Liste der Zeitungen (Zeit, Taz, Welt, ...)
Zeitungsnutzung = wer liest was. Wenn ich (ein Kopf) drei Zeitungen lese, gibt das in dieser Tabelle drei Zeilen des Aufbaus Kopf | Zeitung. Dabei bleibt der Kopf in diesen 3 Zeilen gleich.


Das Formular setzt auf der Zeitungsnutzung auf und bietet die Felder Zeitung und Kopf je als Kombifeld an. Wenn du es als Unterformular benutzt, kannst du auch "zum 1-Kopf dessen n-Zeitungen" oder umgekehert "zur 1-Zeitung deren n-Köpfe" erfassen.


Wenn es um mehrere Umfragen dieser Art geht, geht das prinzipiell genauso, aber die Tabellen sollten tunlichst "Antwortmöglichkeiten" und "GegebeneAntworten" heißen. (oder ähnlich).

zockab
27.04.2011, 13:52
Hi,
habe jetzt ein Unterformular eingebaut. Aber dieses kann ich nicht als mehrfach-markierbar eingeben - wie z.b. ein listenfeld.
und vor allem, welchen code benötige ich, damit ich die id vom hauptfeld incl. den diversen ids vom listenfeld oder unterformular in die zwischentabelle speichere?

verzweifelte gruesse

Atrus2711
27.04.2011, 14:12
habe jetzt ein Unterformular eingebaut. Aber dieses kann ich nicht als mehrfach-markierbar eingeben - wie z.b. ein listenfeld.
brauchst du auch nicht. Jede dieser "Markierungen" wird eine Zeile. Die Angabe des "Einzelwertes" ist mit einem Kombifeld schnell erledigt; das geht auch per Tastatur.

welchen code benötige ich, damit ich die id vom hauptfeld incl. den diversen ids vom listenfeld oder unterformular in die zwischentabelle speichere?
Da barucht es keinen Code. Die ID des Hauptfelds sollte im Ufo automatisch drinstehen, wenn das Ufo im Hauptformular richtig eingebunden ist (dazu gibt es synchronisierende Felder). Und für die IDs des im Ufo auszuwählenden Werts ist das Kombifeld im Ufo zuständig, v.a. dessen Eigenschaften Gebundene Spalte und Steuerelementinhalt.

zockab
29.04.2011, 12:14
danke für die hilfe