Datensatzherkunft in einem Unterformular ändern

Guten Morgen zusammen,

sitze mal wieder vor einem alleine nicht zu knackenden Problem.
Ich habe in einem Formular ein Unterformular eingebunden. Das Formular nebst Unterformular brauche ich für verschiedene Mitarbeiter.

Allerdings soll das Unterformular je nach Mitarbeiter, dessen Stunden enthalten. Jetzt habe ich gerade für die ersten zwei das Unterformular mit der jeweiligen Datensatzherkunft angelegt. Das wird aber bei dreißig Leuten ziemlich lästig. Gibt es eine Möglichkeit, die Datensatzherkunft des Unterformulares (tblPers1, tblPers2, tablPers3 usw.) automatisch herzustellen?

Mit freundlichen Grüßen

Roland

Hallo nochmal,
da ist mir doch gerade der Befehl Me.RecordSource = „tblPers3“ in die Hände gefallen. Das funktioniert auch, nur, dass ich jetzt im „eingebauten“ Unterformular immer nur einen Datensatz abgebildet bekomme, obschon ich im original immer die Daten für einen ganzen Monat als Liste sehen kann.

Auch kann ich nachdem ich RecordSource „beim Laden“ eingestellt habe, keine Verknüpfung der Datensäte Formular und Unterformular mehr eingeben.

Ich habe es auch schon mit einer Abfrage versucht, aber dann habe ich da wieder das Problem mit dem Tabellenzugriff- also quasi das Anfangsproblem.

Weiß hier jemand Rat?

Gruß aus der „im Momnet“ nicht verregneten Voreifel

Roland

Kann schon sein, dass du auch noch die Eigenschaften „LinkChildFields“ und „LinkMasterFields“ der Unterformular-Steuerelements neu setzen musst.

Gruß aus dem Norden
Reinhard Kraasch

(http://www.dbwiki.de - das Datenbank-Wiki)

N’abend Roland,

Gibt es eine Möglichkeit, die Datensatzherkunft des
Unterformulares (tblPers1, tblPers2, tablPers3 usw.)
automatisch herzustellen?

ja, das macht aber keiner, weil es zu umständlich und nicht so gut zu pflegen ist.

Denn wenn du die ganzen Zeitdaten - Tabellen in EINER Tabelle speichern würdest, hättest du kein Problem.

In der Tabelle Mitarbeiter hat jeder Mitarbeiter eine eindeutige ID.
Haben nun die Zeitdaten ebenfalls diese ID pro Datensatz, bekommst du im Unterformular immer die passenden Daten angezeigt.

Die Verbindung zwischen beiden Formularen ist dann die ID.

Grüße aus Raben Steinfeld (bei Schwerin)
Wolfgang
(Netwolf)

Wobei ich Wolfgang nur zustimmen kann: Es geht nichts über ein vernünftiges normalisiertes Tabellendesign, dann kann man sich solche Klimmzüge ersparen. Siehe auch hier: http://www.donkarl.com/FAQ/FAQ1Grundlagen.htm#1.31 (FAQ 1.31)

Gruß aus dem Norden
Reinhard Kraasch

(http://www.dbwiki.de - das Datenbank-Wiki)

Guten Morgen zusammen,

zunächst einmal danke für Eure Unterstützung, leider hat mich eine Sommergrippe für ein paar Tage aus dem Verkehr gezogen, so dass ich Eure Hilfen erst einmal ausprobieren werde.

-Ich habe immer gedacht, dass es sinnvoll ist, eben nicht alles in eine Tabelle zu packen, sondern jeweils eine gesonderte Tabelle zu erstellen, auf die dann ein „übergeordnetes“ Formular zugreift.

Zumal mir gerade die Rechenoperationen- Domsumme- usw. so viel länger dauern.

Naja, ich werde mich einmal bei dem Link einlesen.

Danke und Gruß

Roland

„Jeweils eine eigene Tabelle“ darf bzw. sollte immer nur heissen: „Je Entität eine Tabelle“, nie: „Je Instanz eine Tabelle“.

Also sehr wohl:

  • Eine Tabelle für Adressen
  • eine für Ansprechpartner
  • eine für Rechnungen

Aber nicht:

  • Für jede Rechnung / jede Adresse eine Tabelle

Wenn deine Berechnungen zu lange dauern, liegt es vermutlich daran, dass deine Kriterien falsch oder nicht trennscharf genug sind - oder dass die in den Kriterienausdrücken verwendeten Felder nicht indiziert sind.

Typische falsch formulierte Kriterien (erfordern, dass die gesamte Tabelle durchlaufen und ausgewertet wird):

... Nachname LIKE '\*Meier\*'
... Year(Datum) = 2007

Trennscharfe Kriterien:

... Nachname = 'Meier'
... Nachname LIKE 'Meier\*'
... Datum BETWEEN #2007-1-1# AND #2007-12-31#

Gruß aus dem Norden
Reinhard Kraasch

(http://www.dbwiki.de - das Datenbank-Wiki)