Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datensatzherkunft / Gebundene Spalte falsch?

Begonnen von Hannes, April 04, 2012, 09:50:14

⏪ vorheriges - nächstes ⏩

Hannes

Hallo,

ich habe ein Problem bei den 3 verknüpften Tabellen:

die Tabellenstruktur ist

tbl_Projekt
NummerProjekt (Autowert) PK
NameProjekt

tbl_PKProjektStatus
NummerProjektStatus (Autowert) PK
NummerProjekt FK
NummerStatus FK

tbl_Status
NummerStatus (Autowert) FK
NameStatus

Ich möchte ein Formular erstellen, bei dem bei Anlage eines neuen Projektes aus den 4 bereits eingefplegten verschiedenen Statusmöglichkeiten per Listenfeld ausgewählt werden kann. Im Hfo wird NameProjekt eingegeben und im Ufo NameStatus.

Leider bezieht sich das Listenfeld NameStatus in den Auswahlmöglichkeiten immer auf die Spalte 1 mit dem PK, und nicht auf den Namen.

Daten in Listenfeld NameStatus:

Steuerelemntinhalt   NameStatus
Herkunftstyp             Tabelle/Abfrage
Datensatzherkunft    Status
Gebundene Spalte     2

Aktiviert                      ja
Gesperrt                     nein

der Rest ist leer.

Hat jemand eine Idee?

Vielen Dank!

Hannes









DF6GL

Hallo,

ganz so klar ist es nicht, was Du unter
"Ich möchte ein Formular...."
meinst.


Wenn Du für die Tabelle "tbl_PKProjektStatus" (bzw. den dort hinterlegten Datensätzen) mittels Listenfeld eine Auswahlmöglichkeit aus allen verfügbaren Status ("tbl_Status") herstellen willst, so muss sich das Listenfeld im (Endlos-Unter-)Formular mit Bezug auf Tabelle "tbl_PKProjektStatus" befinden und solche Einstellungen haben:

Steuerelementinhalt:   NummerStatus
Herkunftstyp:             Tabelle/Abfrage
Datensatzherkunft:    Select NummerStatus, NameStatus from tbl_Status
Gebundene Spalte:     1
Spaltenanzahl:           2
Spaltenbreiten:         0cm;3cm
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Hannes

Stark, vielen Dank, jetzt hat man die richtigen Auswahlmöglichkeiten. Allerdings hat kann ich das Feld jetzt nicht mit dem Status belegen, obwohl die Auswahlmöglichkeiten bestehen. Im Feld steht auch (AutoWert), obwohl ein Text rein muss.

Für mein Verständnis:
In "Steuerelementinhalt" gibt man den PK der Herkunftstabelle an, und in "Datensatzherkunft" dann den Inhalt mit
-SLECT from- Anweisung, wobei man durch 0cm Spaltenbreite das "SELECT NummerStatus" ausblendet ?

Warum reicht "SELECT NameStatus FROM Status" mit Spaltenzahl 1 nicht?

Grüße Hannes

Hannes

Die 2 Spalten stellen sicher, dass der PK gespeichert wird. Falls falsch, bitte korrigieren  :)

MzKlMu

Hallo,
ZitatIn "Steuerelementinhalt" gibt man den PK der Herkunftstabelle an, und in "Datensatzherkunft"
Nein, Steuerelementinhalt wird das Feld der Zieltabelle die den PK der Herkunftstabelle als Fremdschlüssel speichern muss.
ZitatWarum reicht "SELECT NameStatus FROM Status" mit Spaltenzahl 1 nicht?
Weil Du die Zahl in der Zieltabelle speichern musst und nicht den Text.
Gruß Klaus

Hannes

Sorry für die späte Antwort, war ein paar tage internetfrei unterwegs. stmal Danke für die Erklärung. momentan habe ich immer noch das Problem der zwar richtigen Auswahlmöglichkeiten in "NameStatus" , aber es kann nicht mit einer der Möglichkeiten belegt werden.

Welche Übersicht an den gängigsten SQL-Anweisungen ist die Beste? Bin gar nicht auf die Idee gekommen, das man das i.d.F. mit einer  Anweisung machen muss.

Grüße Hannes

MzKlMu

Hallo,
und wo hakt es dann jetzt noch?

Kannst Du nicht ein kleines Beispiel (Access2003!) erstellen und hier mal hochladen?
Gruß Klaus

Hannes


MzKlMu

Hallo,
na hier im Forum, siehe erweiterte Optionen.
DB bitte vorher komprimieren/reaprieren und dann zippen (oder Rar).
Gruß Klaus

Hannes

So, Problem ist wie gesagt das Listenfeld im Formular ProjektStatus, welches sich nicht belegen lässt...

[Anhang gelöscht durch Administrator]

Hannes

Ich seh gerade, schreibgschützt sieht man die 5 Auswahlmöglichkeiten aus tbl_Status im Ufo nicht.

MzKlMu

Hallo,
wie ich bereits weiter oben sagt, muss das Feld an das Fremdschlüsselfeld gebunden werden. Da man Primärschlüssel und Fremdschlüssel immer zweifelsfrei unterscheiden können muss, hänge ich an den Fremdschlüssel immer noch ein _F an.
In einer DB sollte es keine gleichen Namen geben, auch nicht in unterschiedlichen Tabellen. Das spart viele Ärger und Arbeit.

Geänderte DB anbei.

PS:
Ein Kombinationsfeld wäre hier besser geeignet als ein Listenfeld.

[Anhang gelöscht durch Administrator]
Gruß Klaus

Hannes

Ok Super, jetzt funktionierts, Kombinationsfreld wollte ich eigenltich haben, habe es whl verwechselt.
Ich möcht allerdings noch einschränken, das pro Projekt immer nur ein Status möglich sein kann. Dieser kann sich im Verlauf des Projektes ändern, aber momentan können ja parallel mehrere möglich sein.

MzKlMu

Hallo,
ZitatIch möcht allerdings noch einschränken, das pro Projekt immer nur ein Status möglich sein kann.
Das bedarf der Erläuterung.
Kann ein Projekt im Laufe seiner Dauer nicht seinen Status wechseln?
Und willst Du diesen Wechslen nicht per Datum festhalten?

Wenn beide Fragen mit Nein beantwortet werden, ist die Zwischentabelle überflüssig. Dann genügt ein Feld in der Projekttabelle für den Fremdschlüssel des Status.
Gruß Klaus

Hannes

Kann ein Projekt im Laufe seiner Dauer nicht seinen Status wechseln?
Und willst Du diesen Wechslen nicht per Datum festhalten?


Beides ja. Momentan kann ich aber bei Neuanlage einses Projektes gleich mehrere Status angeben. Es sollte aber immer nur einer gleichzeitig möglich sein, also nur eine Zeile im Formular bei Status (ich verwende jetzt ein Kombinationsfeld).