PDA

Vollständige Version anzeigen : Daten aus Tabelle auslesen und Felder verknüpfen ??


paulhansen
23.09.2001, 21:07
Hallöchen,
ich habe ne Tabelle mit einem Autowertfeld (ID), Einem Datumsfeld und 160 Textfeldern. In den Textfeldern landen über ein Formular Personennamen und im Datumsfeld, der dazugehörige Tag. Sprich für jeden gewählten Tag gibt es 160 zu vergebene Textfelder, die mit Personennamen belegt werden können.
Ich hoffe, nicht zu kompliziert ausgedrückt :D
So wat nu ? Ich bräuchte nun irgendeine Möglichkeit festzustellen, welche Person an welchen Tagen eingetragen ist und andersherum, welche Personen an einem Tag eingetragen sind. Dabei ist noch wichtig, dass eine Person auch mehrmals am Tag eingetragen werden kann, ich aber wissen möchte wer überhaupt eingetragen ist.... Bevor ich mich hier noch weiter verhaspel .. hoffe ich auf HILFE !!!
P.

PS: Über ne simple Abfrage scheint mir das nicht zu klappen ... oder lieg ich hier falsch ?

Ikke
23.09.2001, 22:14
Hallo Paul,

es ist nur so eine Frage, kann auch sein, daß ich vollkommen mißverstanden habe, aber warum hast Du denn soviele Felder angelegt??? :eek:
Es hätte doch gereicht, wenn Du die Felder ID, Datum, Name angelegt hättest! Dann wären es eben 160 DS pro Tag geworden, die hättest Du aber einfach über eine Abfrage filtern können!
Wie gesagt ist nur so eine Anregung.... ;)

paulhansen
24.09.2001, 08:18
an sich gebe ich Dir (Ikke) ja Recht, aber der Gedanke der Redundanz der der Datensätze hat mich auf die Idee der 160 + 2 Felder gebracht. So fülle ich an einem Tag 162 Felder - nach Deiner Idee mit 3 Feldern pro Tag lande ich aber bei insgesamt 480 Feldern (160 * ID + 160 * Datum + 160 * Textfeld) !
Zudem dachte ich, is so nen Kalendertag schneller zu finden, da ich ja nur einen Datensatz pro Datum habe ... nach Deiner Idee müsste ich (im schlimmsten Fall, wenn alle Textfelder belegt wären) 160 Datums-Datensätze durchsuchen, um ein Textfeld zu suchen.
Vielleicht is meine theorie ja auch nicht so dolle ... bin auf Anregungen sehr gespannt !!!

P. :D

Anne Berg
24.09.2001, 09:07
Deine Frage spricht doch eigentlich für sich: Du hast ein Problem mit Deinem Tabellenkonzept!!
Um einen Namen zu einem bestimmten Datum zu finden, mußt Du nun 160 Felder 'manuell' durchsuchen. Oder willst eine Abfrage basteln, in der alle Felder berücksichtigt werden (Where name1 = 'xyz' Or Name2 = 'xyz' Or Name3 ... Or Name160 ...)??!!

Dagegen bietet Ikkes Vorschlag alle Möglichkeiten der einfachen(!) Datenauswahl nach Name und/oder Datum und bei Verwendung von Indizes und Schlüsselfeldern wirst Du sicher keine 'Langeweile' kriegen!

paulhansen
24.09.2001, 09:51
Heißt das nu ich soll doch meine so geliebte Redundanzreduzierung aufgeben und die höhere Anzahl an Datensätzen in kauf nehmen ???
Gut, die Abfragesituation wäre dann sicher simpler ... aber ist sie schneller ???
Zudem müsste ich so wahrscheinlich noch ein weiteres Feld dazu legen, statt wie bisher:
160 Textfelder + Id + Datumsfeld müsste ich wohl so auf 160 * (1 TextfeldNummer + ID + Datum + Person) = sprich sogar 4 * 160 = 640 DS-Felder kommen.

Is das wirklich die Lösung ??? eine Vervierfachung !!!
P.

Anne Berg
24.09.2001, 10:03
Das entspricht (IMHO) dem Konzept relationaler Datenbanken.
Es wird sicherlich schneller sein, als die 160 Datenfelder 'manuell', d.h. per Schleife zu durchlaufen - zumindest nicht langsamer.
Außerdem, wer garantiert Dir, daß die Zahl 160 morgen noch gültig ist?! Denk mal an den Aufwand, dies zu ändern!!
Wie kommst Du denn auf einmal auf vier Felder? (--> Textfeldnr. + Person)
Wenn die Personen einer 'Textfeldnummer' eindeutig zuzuordnen sind, legst Du eine weitere Tabelle mit Nr. und Person an und verwendest bei Deinen täglichen Einträgen diese Nr.
Das mag Dir noch umständlicher erscheinen, ist aber durch seine Flexibilität von großem Vorteil.
Dazu kannst Du noch Beziehungen zwischen den Tabellen aufbauen (mit referentieller Integrität), sodaß eine Person nicht gelöscht werden kann, solange noch ein Eintrag besteht.

paulhansen
24.09.2001, 10:21
Wieso jetzt 4 Felder ??!!

Die Tabelle bezieht sich auf einen Kalender mit 160 Feldern, der bedingt durch das Datum gebildet wird. In diese Felder kann per "Click" eine zuvor gewählte Person aus einem Kombifeld eingetragen werden. Dazu gab es bisher dann einen Eintrag im Datumsfeld + dem jeweiligen Feld (f01 - f160). Dazu kommt noch die ID (obwohl ich die wahrscheinlich garnocht brauche - Schlüssel ist das Datum)

Wenn ich nu aber nach eurer (ich sehe es ein ... sicherlich genialeren) Methode vorgehe, benötige ich doch ein weiteres Feld.

Somit ID + Datum + Person + Feldzahl = 4

Schließlich fehlt sonst die direkte zuordung von Person, Datum und Feld !!

Bist Du Dir sicher, dass eine Aufteilung in zwei Tabellen sinnvoller ist ??
Tabelle 1: ID, Datum, Übergabenumer
Tabelle 2: Übergabenummer, Person, Feldnummer

.... ????

Ist hier überhaupt ne ID notwendig ... es sollte doch eigentlich auch folgendes ausreichen:

Tabelle 1: Datum, Person, Feldnumer


Oder ???

P.

Anne Berg
24.09.2001, 12:03
Ich hatte nur gedacht, eine Person wäre immer auf dem gleichen Feld, ist aber wohl nicht so, also vergiß es mit der Extra-Tabelle.

Auf die ID kannst Du im Prinzip verzichten, ... obwohl immer empfohlen wird, eindeutige Schlüssel zu verwenden.Vielleicht macht es aber doch Sinn, kommt drauf an, was Du mit den daten sonst noch anstellst.

Apropos - jetzt bin ich neugierig geworden: was ist das denn für ein 'Kalenderblatt' mit 160 Feldern???

paulhansen
24.09.2001, 14:08
Stimmt, eine ID ist sicher sinnvoll. Schließlich ist mein Datumsfeld jetzt nicht mehr eindeutig, da es ja max. 160 * vorkommen kann. Somit wähle ich wohl doch besser ne autowert-ID.
Jaha ... was is das für ein Kalender - Anne - ????
Ganz einfach es handelt sich um einen Tageskalender der in der x-Achse die Zeiten von 8.oo h bis 16.30 h angibt (18 Felder) und in der Y-Achse auf 9 verschiedene Funktionen verweist (Arbeitsbereiche - bzw. Mitarbeiter). D.H. es gibt insgesamt 18 * 9 Felder ... sprich 162 Felder (oh, hab mich zuvor verzählt). :rolleyes:
Der Tageskalender wird über einen Monatskalender per Click aktualisiert, bzw. geöffnet. Dabei kann aus einem Kombifeld ein Kunde/Patient ausgewählt werden, der wiederum über einen Click auf eines der 162 Felder dieses geclickte füllt ... Alles UNKLAR :D

P.

Anne Berg
25.09.2001, 08:31
Hallo und Danke für die Erläuterung. Ist also so eine Art Terminplaner.
Klappt's denn inzwischen wie gewünscht?

paulhansen
25.09.2001, 09:01
Jupp, Deine Lösung scheint bisher wirklich die Bessere zu sein. Zumindest ist so der Datenzugriff leicht möglich - bin mal neugierig, wie es ist, wenn so 1000 bis 2000 Termine vergeben wurden ... wird die Praxis zeigen.

Jetzt fehlt nur noch die Verknüpfung des Hauptformular-Datumsfeld, mit dem Datumsfeld der gefüllten Tabelle, jetzt Abfrage. ... mal gucken ob ich mit den Lösungen von Unterformular mit Feld verknüpfen ??? (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=49462)
was anfangen kann ???
Dir erstmal lieben DANK

P. ;)