Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Der_Schanko am Oktober 11, 2016, 15:11:30

Titel: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 11, 2016, 15:11:30
Hallo zusammen,

ich bin am verzweifeln und hoffe mir kann hier geholfen werden...
Ich möchte eine Access-DB zu entwerfen mit der u.A. folgende Dinge erledigt werden können:
Als Basis dienen mir mehrere Tabellen, z.B.:
Mein Ziel ist es nun mit Hilfe eines Formulars eine neue Tabelle zu erstellen in der die Zuordung der IT-Devices zu den MA festgehalten wird.
Den Aufbau des Formulars wollte ich wie folgt gestalten:

Dem "Bediener" steht im Formular die Möglichkeit zu Daten (z.B. Namen) in verschiedenen Kombifeldern auszuwählen. Diese Kombifelder beziehen sich auf verschiedene Tabellen, die größtenteils keine Beziehung zueinander haben.
Das Formular sollte möglichst als Liste aufgebaut sein, in der man nach und nach jedes IT-Device abarbeitet bzw. eine Zuordnung vornimmt.

Als Ergebnis möchte ich in dem Formular eine Liste erhalten in der z.B. jedes Handy inkl. Seriennummer einmal aufgeführt ist. Zusätzlich beinhaltet die Liste die Zuordung zum MA und zum ausgegebenen Zubehör.

Ist die Bearbeitung abgeschlossen, sollen alle Daten über einen Button in eine Tabelle übertragen werden (für weitere Bereichte/Formulare).

Ich hoffe, dass ich mein Problem ausreichend beschreiben konnte und hoffe auch eure Hilfe!

LG
Schanko
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: HB9876 am Oktober 11, 2016, 15:16:08
Hey Schanko,
ich kann dein Ansinnen nachvollziehen und betreibe selbst so eine Loesung (nicht Access).

Fuer mich hoert es sich nicht logisch an die Geraete in eigene Tabellen schreiben zu wollen.
Generell werden die Daten aus Formularen in Tabellen geschrieben, evtl. nicht gespeichert (wieder entfernt) wenn nicht gewollt.

Hast du dir Gedanken ueber den Tabellaufbau gemacht, zeig mal deine Idee dazu.

Gruss
Jens
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: MzKlMu am Oktober 11, 2016, 15:22:44
Hallo,
ZitatAuflistung der IT-Devices (getrennt z.B.: eine Tabelle für Handys inkl. Seriennummer etc)
Das ist bereits der 1.Fehler. Alle IT-Devices gehören in eine Tabelle mit einem Schlüsselfeld für die Geräteart. Demzufolge ist auch für die Geräteart eine Tabelle ereforderlich, die Art als Text und ein Feld für den Primärschlüssel (Autowert).
Dann wird eine weitere Tabelle benötigt zur Zuordnung der Geräte zum Mitarbeiter (n:m Beziehung). In dieser Tabelle wird nur der PS des MA und der PS des Gerätes jeweils als Fremdschlüssel gespeichert.
Alle Tabellen werden im Vorfeld erstellt. Zur Laufzeit werden weder Tabellen noch Felder erzeugt.
Zitatauf verschiedene Tabellen, die größtenteils keine Beziehung zueinander haben.
In einer Datenbank gibt es so gut wie keine beziehungslosen Tabellen.

ZitatIst die Bearbeitung abgeschlossen, sollen alle Daten über einen Button in eine Tabelle übertragen werden
Die Bearbeitung erfolgt mit gebundenen Formularen. Diese speichern direkt in den Tabellen. Zum Speichern braucht es keinen Button.
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 11, 2016, 15:26:45
Hallo,

also es handelt sich um mehrere Geräte, die nicht unbedingt logisch miteinander verbunden sind.
z.B. Handy (eigene Seriennummer) - Dockingstation (eigene Seriennummer) - mobiler Drucker (eigene Seriennummer) - Mitarbeiter
Aktuell sieht meine Tabellenstruktur so aus, dass jedes Gerät eine Tabelle besitzt in der noch weitere Daten festgehalten werden (Firmware, Hersteller usw.)

Um nicht manuell eine große Tabelle mit der Zuordnung erstellen zu müssen wollte ich das quasi über das Formular machen.
Die Zurodnung des Handys zum Drucker ist hierbei variabel, weil die Geräte untereinander kompatibel sind.
Dies würde mir auch die Möglichkeit bieten einzelne Geräte hinzuzufügen und zu bearbeiten.

Hoffe das hilt dir weiter

Lg
Schanko
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: DF6GL am Oktober 11, 2016, 15:29:59
Hallo,

ZitatIch möchte eine Access-DB zu entwerfen mit der u.A. folgende Dinge erledigt werden können:
•Zuordnung der verschiedener IT-Devices zu MA
•Reparaturbelege anzeigen etc...


Beschreibe doch mal die Situation ausführlich(!) und genauer....
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: MzKlMu am Oktober 11, 2016, 15:31:22
Hallo,
die Geräte gehören ohne Wenn und aber in eine Tabelle.

Zur Datenerfassung benötigst Du genau 2 Formulare.
Ein Hauptformular für die Anzeige der Mitarbeiterdaten und darin ein über die Schlüsselfelder verknüpfte Unterformular zur Zuordnung der Geräte zum Mitarbeiter.

ZitatDie Zurodnung des Handys zum Drucker ist hierbei variabel, weil die Geräte untereinander kompatibel sind.
Das musst Du mal erklären, wieso ist ein Handy zum Drucker kompatibel ?
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 11, 2016, 15:43:37
Hallo,

ZitatBeschreibe doch mal die Situation ausführlich(!) und genauer....

also zunächst geht es mir darum eine Zuordnung aller ausgeteilten Geräte zu einem MA anzufertigen.
Die Geräte sollen also ausgeteilt werden, wobei ich mit Hilfe des Formulars festlegen will welcher MA welches Gerät erhalten hat.

Ich habe also folgende Daten in unterschiedlichen Tabellen:

Das Formular soll meinem Wunschenken nach so funktionieren, dass ich zB. den Namen des MA in einem Kombifeld auswähle, dann die Seriennummer des Handys in einem weiteren usw.

So habe ich mir die grobe Struktur vorgestellt:

Name/Vorname -> Abteilung ->Seriennummer Handy -> Beschreibung Handy -> Seriennummer Drucker -> Beschreibung Drucker
Optimal wäre es natürlich, wenn die Abteilung sich automatisch an den ausgewählten Namen anpassen würde (ähnlich einem SVerweis in Excel)

Zitatdie Geräte gehören ohne Wenn und aber in eine Tabelle.

Das würde ja bedeuten, dass ich einem Handy direkt einen Drucker fest zuordnen muss.
Das will ich ja möglichst variabel in einem Formular.

ZitatDas musst Du mal erklären, wieso ist ein Handy zum Drucker kompatibel ?

Handy & Drucker stehen hier synonym für technische Geräte die wir in der Firma verwenden.
Jedes Handy hat seine eigene Seriennummer, ebenso wie jeder Drucker.
Da die Geräte aber untereinander kompatibel sind kann ich quasi unternander kombinieren, wie ich lustig bin.

LG
Schanko
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: MzKlMu am Oktober 11, 2016, 15:50:54
Hallo,
ZitatDas würde ja bedeuten, dass ich einem Handy direkt einen Drucker fest zuordnen muss.
ich verstehe es immer noch nicht. Wieso musst Du ein Handy einem Drucke zuordnen. Der Mitarbeiter hat ein Handy und ein Drucker. Das sind 2 Datensätze in der Zuordnungstabelle kombiniert wie Du lustig bist.
ZitatName/Vorname -> Abteilung ->Seriennummer Handy -> Beschreibung Handy -> Seriennummer Drucker -> Beschreibung Drucker
Das ist der Inhalt von 5 Tabellen.
- MA
- Abteilungen
- Geräte
- Gerätearten
- MitarbeiterGerät

Der von Dir vorgesehen Aufbau ist für eine Datenbank ungeeignet, das ist Excelaufbau aber kein Access.

Im Anhang ein Bild mit einen Vorschlag für die Tabellenstruktur. Inklusive einer einfachen Reparaturverwaltung. Die Struktur deckt Deine oben genannten Wünsche vollständig ab.
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 11, 2016, 17:14:31
Ich sag schon mal vielen Dank für deine Mühe!

Kann jetzt leider nicht mehr mit Access arbeiten, werde mir deinen Entwurf morgen direkt mal anschauen und versuchen umzusetzen!

LG
Schanko
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 12, 2016, 09:39:10
Guten Morgen,

ich habe nun meine Tabellstruktur, an dein Beispiel angepasst (siehe Anhang).

Wenn ich dich gestern richtig verstanden habe ist "tblZuordnungMitarbeiterGerät" nun meine Haupttabelle.
Mein Vorgehen hierzu wäre jetzt ein Formular in dem ich die einzelnen Felder aus den verschiedenen Tabellen auswählen bzw. kombinieren kann. Beispiel:

Handheld 1 -> Drucker 2 -> MitarbeiterI 1 -> MitarbeiterII 2 -> Bereich/Abteilung (automatisch zu MA) -> Gruppenleiter (automatisch zu Bereich/Abteilung) -> Sticknummer -> Fachnummer -> Bauteil/Halle (automatisch zu Fachnummer)

*Die Mitarbeiter sollten immer im selben Bereich arbeiten, somit reicht es wenn die Abteilung zum MA I automatich erscheint.*

Wie kann ich mein Vorgehen jetzt in die Tat umsetzten? :-\

Oder muss ich die Zuordnung in meiner "Haupttabelle" manuell vornehmen? Das wäre natürlich nicht so schön  :(

LG
Schanko
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: MzKlMu am Oktober 12, 2016, 09:40:24
Hallo,
nachdem ich ohnehin bereits die Tabellen angelegt habe, habe ich die DB mal durch Formulare ergänzt.
Es gibt 2 Hauptformulare:
- frmErfassung
Hier werden die Mitarbeiter gepflegt (auch neue MA) und im Unterformular die Geräte zugeordnet. Es können nur Geräte ausgewählt werden wenn es freie unzugeordnete Geräte gibt.
- frmGeräte
Hier können Geräte gepflegt werden, auch neue Geräte eingetragen. Man sieht hier auch wer das Gerät z.Z. hat. Im Ufo werden Reparaturen erfasst.

Bitte Beziehungen ansehen und dann die Hafos.
Die Unterformular können zwar eigenständig geöffnet werden, sind aber wenig brauchbar.

DB (MDB) im Anhang.
Wenn ich weiter helfen soll, muss die DB im MDB Format bleiben, ich habe nur die ältere Access Version (2003).


Ich habe jetzt erst Deinen neuen Beitrag gesehen.
Zitatich habe nun meine Tabellstruktur, an dein Beispiel angepasst
Nicht ganz, daher noch mal der Hinweis:
Alle, ausnahmslos alle Geräte kommen in eine Tabelle.
Das ist auch aus der Ähnlichkeit der beiden Tabellen (Handheld und Drucker) klar erkennbar.
Ansonsten, beschäftige Dich erst mal mit meinen Beispiel. Ich bin erst heute Abend wieder hier.

Und noch etwas, vermeide unbedingt Sonder- und Leerzeichen in Feld und Objektnamen. So etwas "FTE in %" ist ein No-Go. Erlaubt ist nur der _ (Unterstrich).
Für aussagefähige Texte verwendet man das Bezeichnungsfeld und da kannst Du reinschreiben was Du willst.

Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 12, 2016, 15:34:06
Vielen Dank!

Deine Formulare kann ich perfekt als "Inspiration" benutzen ;D!

ZitatAlle, ausnahmslos alle Geräte kommen in eine Tabelle.

Für das Formular, dass ich gerade erstelle funktioniert meine Lösung (noch).
Im ersten Schritt würde ich das auch so belassen, weil es (für mich) noch ein wenig übersichtlicher erscheint.
Im Nachgang werde ich selbstverständlich schauen, inwiefern ich die DB noch verbessern kann!

Zurück zum Formular bzw. zum Formularentwurf (siehe Anhang).
Die ersten vier Felder können nun von mir beliebig kombiniert werden und werden in meiner Haupttabelle gespeichert.
Nun möchte ich der Einfachheithalber zwei Felder anzeigen lassen, die sich abhängig vom Kombifeld "Anwender I" automatisch füllen.
Und zwar soll sich das erste Feld automatisch den Breich/Abteilung ziehen und das zweite Feld entsprechend dem Bereich/Abteilung den jeweiligen Gruppenleiter.

Wie kann ich das nun bewerkstelligen? Ich muss ja für beide Ausgabewerte über mehrere Tabellen "hinwegschauen"...

LG
Schanko
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: MzKlMu am Oktober 12, 2016, 18:15:21
Hallo,
ich halte Deinen gegenwärtigen Aufbau der Tabellen für stark verbesserungsbedürftig bzw. eher unbrauchbar.
Was hat der Gruppenleiter in der Zuordnung zum Gerät zu suchen ?
Der Mitarbeiter hat einen Gruppenleiter, doch nicht die Kombination Gerät-Gruppenleiter.
Auch die Gruppenleite sind Mitarbeiter und gehören in diese Tabelle.
Was ist denn der Anwender I, was Anwender II ?
Auch die FachID hat in dieser Tabelle nichts verloren. Oder erkläre es.
Was ist denn eigentlich die StickID ?
Was PersoID I und II ?
Es gibt noch viel mehr Ungereimtheiten.

ZitatIm ersten Schritt würde ich das auch so belassen, weil es (für mich) noch ein wenig übersichtlicher erscheint.
Mache das lieber nicht. Erfahrungsgemäß ist der nachträgliche Aufwand zum ändern enorm. Ich halte das Konzept für untauglich mag es für Dich noch so übersichtlich sein.

ZitatIch muss ja für beide Ausgabewerte über mehrere Tabellen "hinwegschauen"...
Alleine aus dieser Anforderung lässt sich das falsche Datenmodell ableiten.

Beantworte mal die Fragen.

Noch mal der Hinweis: Feldnamen ändern, keine Leer und Sonderzeichen.
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 13, 2016, 08:50:35
Guten Morgen,

dann versuche ich mal all deine Fragen zu beantworten... :-[
Zunächst einmal funktioniert die DB fast schon so, wie ich es möchte.
Was mir aktuell fehlt, ist die beschriebene automatische Aktualisierung der zwei Felder im Formular.

Da es wie gesagt funktioniert und du mir bis jetzt leider auch noch nicht logisch dargestellt hast, warum ich meinen Aufbau denn zwingend so anpassen muss, wie du es im Kopf hast, lasse ich es auch erstmal so. :o
Ich möchte dich hier nicht angreifen, ich verstehe einfach nicht, warum es nur EINE Lösung geben soll?! :-[

Jetzt zum Formular (hier liegt eine Anforderung meiner Vorgsetzten/Schichtleiter vor, wie das auszusehen hat):
ZitatWas PersoID I und II ?
Die sind ursprünglich von mir in die Tabelle aufgenommen worden.
Werden nicht benötigt, also gelöscht. So wie alle anderen IDs in tblZuordnungMitarbeiterGerät (Bis auf MitarbeiterGerätID).

Ich hoffe, dass ich einige Ungereimtheiten auflösen konnte...

ZitatAlleine aus dieser Anforderung lässt sich das falsche Datenmodell ableiten.

Die Gruppenleiter werden aktuell sowohl in der Mitarbeitertabelle (als Mitarbeiter) und in der Gruppenleitertabelle (als Gruppenleiter mit der Zuordnung zum Bereich) geführt.
Ich stehe da wirklich auf dem Schlauch und wüsste nicht wie ich das einfacher gestalten kann.

Die Feldnamen werde ich jetzt als erstes anpassen!
Ich hoffe weiterhin auf deine Unterstützung :)!

LG Schanko



Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: MzKlMu am Oktober 13, 2016, 09:22:33
Hallo,
Zitatich verstehe einfach nicht, warum es nur EINE Lösung geben soll?! :-[
für eine korrekt aufgebaute relationale Datenbank gibt es nur eine Lösung mit normalisiertem Tabellenaufbau.
Nach Deiner neuen Beschreibung ist da noch viel mehr falsch.
Zitat•Es gibt einen Pool an Handhelds & Druckern, die immer paarweise ausgehändigt werden
Dazu ist eine extra Tabelle erforderlich die Handheld und Drucker kombiniert (Gerätegruppe)
Zitat•Es gibt den Mitarbeiterstamm, der sich über die verschiedenen Schichttypen verteilt. In der Regel arbeiten also zwei Mitarbeiter (jeweils aus einer Schicht) mit ein und dem selben Paar Handheld+Drucker
Gleiches wie zuvor. Du bildest über die beiden Mitarbeiter eine Gruppe mit einem Primärschlüssel und die Mitarbeitergruppe wird dann der Gerätegruppe zugeordnet.
Zitat•Beide Mitarbeiter sollten im gleichen Bereich arbeiten, dieser soll ebenfalls in der Zuordnung aufgeführt werden (z.B. Versand)-möglichst automatisch
Das ergibt sich automatisch, indem man einen Mitarbeiter einem Bereich zuordnet.
Zitat•Dieser Bereich hat für jede Schicht einen Gruppenleiter (Vorgesetzten)-ebenfalls anhand des Feldes "Bereich" automatisch gefüllt
Der Gruppenleiter gehört als Fremdschlüssel in die Bereichstabelle.
Zitat•Als Schlüssel werden die "Sticks" verwender, die ebenfalls eine Nummer besitzen (in zweifacher Menge - für jeden MA)
Die Sticks gehören ja dem Mitarbeiter und sind daher als Fremdschlüssel in der Mitarbeitertabelle zu führen.
ZitatDie Gruppenleiter werden aktuell sowohl in der Mitarbeitertabelle (als Mitarbeiter) und in der Gruppenleitertabelle (als Gruppenleiter mit der Zuordnung zum Bereich) geführt.
falsch, eine Tabelle reicht. 2 Tabellen ist ja erhöhter Pflegeaufwand. Eine Tabelle reicht völlig, mit einen Hakenfeld für den Gruppenleiter.

Du planst eine recht umfangreiche Datenbank. Wenn die ordentlich funktionieren soll, sind zum Aufbau die Normalisierungsregeln unerlässlich und zu befolgen. Du solltest Dich daher dringend erst mal mit den Grundlagen beschäftigen.
Hier 2 Links dazu:
https://www.hdm-stuttgart.de/~riekert/lehre/db-kelz/
http://www.access-tutorial.de/index.htm
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Beaker s.a. am Oktober 13, 2016, 14:40:20
Hallo Schanko,
ZitatDa es wie gesagt funktioniert und du mir bis jetzt leider auch noch nicht logisch dargestellt hast, warum ich meinen Aufbau denn zwingend so anpassen muss, wie du es im Kopf hast, lasse ich es auch erstmal so. :o
Ich möchte dich hier nicht angreifen, ich verstehe einfach nicht, warum es nur EINE Lösung geben soll?! :-[
Is' aber so, - siehe Klaus' letzte Antwort und, vor Allem, das was du in seinen Links
nachlesen kannst.
Bei deinem nächsten Problem, kommt mit "lasse ich es auch erstmal so" garantiert,
wirst du als Erstes wieder darauf hingewiesen werden, das dein Datenmodell nicht
stimmt. Und je später du das einsiehst je mehr Aufwand und Probleme kommen auf
dich zu. Ausserdem wird die ganze Entwicklung der Anwendung (Abfrage/Formuale usw.)
SEHR viel einfacher mit einem korrekten Datenmodell.
Ich will dich wirklich nicht entmutigen, aber IMO musst du nach deinem letzten Post
wirklich noch mal ganz von vorne anfangen. Ihr wollt am Ende auch "Spass" mit deiner
Anwendung haben. Und wenn die Basis stimmt wirst du auch sehen, wie viel Spass das
Lernen von Access/VBA beim Entwickeln der Anwendung machen kann (Motivation
vorausgesetzt).
Und wenn dann irgendwann Cheffe bei dir ankommt und fragt "Ich bräuchte noch
diese Auswertung oder jene Funktion, geht das?" schaust du dir dein (korrektes) DM
an, lächelst ihn an und sagst: "Klar, zeige ich Ihnen übermorgen."  :) :)
Also frisch ans Werk, Hilfe bekommst du hier sicher auch weiterhin.
gruss ekkehard
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 13, 2016, 19:32:42
Guten Abend,

zunächst noch einmal danke für eure Rückmeldungen.

Ich habe mir heute schon mal angefangen die Links anzuschauen.

Werde die ganzen Daten jetzt erstmal übergangsweise "manuell" speichern und meine DB überdenken und neuplanen.

Wahrscheinlich ist der Einstieg in Access mit so einer DB nicht unbedingt optimal, aber mit eurer Hilfe packe ich das sicherlich.

Wie gesagt werde ich meine Tabellenstruktur noch einmal überdenken (nachdem ich mich mit den ganzen Informationen beschäftigt habe, die ich hier schon erhalten habe.)

Ich melde mich auf jeden Fall wenn meine neue Struktur fertig ist! ;)

Schönen Abend
Schanko
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am Oktober 16, 2016, 13:08:11
Hallo Schanko,

laß dich nicht entmutigen. Viele Pofis betrachten die Normalisierung als unumstößliches Gesetz, als conditio-sine-qua-non (Voraussetzung ohne die nichts geht) und die Verletzung dieses Gesetzes als höchst zu bestrafen.

Du kommst vermutlich von Excel und da beschäftigt man sich eher selten mit Normalisierung und scheut sich auch nicht, Redundanzen (mehrfach vorkommende Werte) in den Tabellen zu haben; dabei darf das Wort Tabelle nicht mit dem Begriff Tabelle bei (relationalen) Datenbanken verwechselt werden.

Excel führt anschaulich Daten zusammen, die in eine Tabellenzeile gehören, wobei jede Spalte ihre Überschrift hat. Es ist dabei immer noch EINE Tabelle, so wie man sie auf einem Batt Papier oder als Formularbuch entwerfen würde.

Die Normalisierung auf dem Weg zu einer relationalen Datenbank besteht nun darin, sich mit den Inhalten der Excel-Tabellen-Spalten zu beschäftigen und sich zu fragen, ob es hier wiederkehrende Werte gibt, wie z.B. eine Personal-Id. Diese lagert man dann in eine zweite Datenbank-Tabelle aus (ohne Duplikate) und speichert in der Haupttabelle nur noch den Verweis (Referenz) auf die zweite. Somit hat man prinzipiell die Möglichkeit, auch auf andere Daten der zweiten Tabelle zuzugreifen (Name, Vorname etc.). [Sowas könnte man auch in Excel machen, indem man in der Spalte Personal-Id Daten nur über ein Pulldown-Feld auswählbar macht. Schon wäre dann bezüglich dieses einen Feldes eine relationale Tabellen-Struktur entstanden. Man könnte Excel-Anwendungen also durchaus relational und normalisiert gestalten, aber es werden dann noch immer keine internen Mechanismen bereitgestellt, die relationale Datenbank-Systeme auszeichnen (referentielle Integrität, Abfragen über mehrere Tabellen mit verknüpften/referenzierten Werten usw.)]

Ich glaube, dein eigentliches Problem ist es, anschaulich und übersichtlich darstellen zu können, welche Geräte an welchem Tag unter wessen Schichtleitung von welchen Mitarbeitern genutzt wurden usw. Dies ist also einfach nur eine Frage der Darstellung!

Angenommen du speicherst, wer zu einem Zeitpunkt ein Gerät (oder eine Geräte-Kombination) bekommt. Zusätzlich hast du gespeichert, welche Schicht das war und wer Schichtleiter.

Um nun eine übersichtliche Darstellung zu bekommen, musst du z.B.
>> in der Geräte-Tabelle nachschauen, wie die Stick-Ids lauten
>> in der Mitarbeiter-Tabelle den Namen nachschlagen
>> in der Schicht-Tabelle den Gruppenleiter holen
usw.

Hört sich aufwändig an. Ist es aber nicht, weil es in Access problemlos möglich ist, eine solche Fragestellung an die Datenbank zu richten. Du tendierst eher dazu, diese Daten gleich bei Eingabe, so wie man sie am Bildschirm sieht, abzuspeichern (wie Excel es machen würde).

Und hier entsteht das Problem, das Access-Profis sofort kritisieren. Die Lösung deines Problems besteht aber einfach nur darin, eine vernünftige Datenbasis zu konstruieren (Datenmodell) und dir passende Abfragen zusammenzusetzen, die deinen (Darstellungs-)Wünschen entsprechen. Viele Profis fordern aber, dass du zunächst ein "Normalisierungs-Seminar" mit mindestens der Note "Gut" abschließt.

Es ginge aber durchaus auch anders, wenn man pragmatisch (und unter Missachtung der "Gesetze") vorgeht und sich fragt:
1. Welche Lebensdauer haben Wer-was-wann-Datensätze?
2. Ist es erforderlich, z.B. nach einem Jahr zu wissen, wer damals welches Gerät hatte?
3. Wie oft ändert sich die Person des Schichtleiters?
4. Wie oft ändert sich die Gruppierung von Geräten (Handheld + Drucker)?
usw.

Ich vermute, dass viele dieser Daten nach kurzer Zeit (z.B. 2 Monaten) völlig uninteressant werden und deshalb plädiere ich für eine teilweise De-Normalisierung.

Speichere die Basisdaten (Personal, Geräte, Kombis usw.) in einzelnen Tabellen. Baue ein Formular, das aus diesen Tabellen IDs und Klartexte holt und speicher das in einer neuen Tabelle. Vielleicht ist Schichtleiter heute Herr Schmidt und morgen Frau Schulze. Statt nun eine komplizierte Schicht-Tabelle mit Zeiträumen zu bauen, kannst du das auch in eine kleine Tabelle mit genau einem Datensatz "Wer ist gerade Schichtleiter" schreiben und den Namen redundant unter Missachtung aller Normalisierungs-Regeln in der Wer-wann-was-Tabelle speichern.
Und sollte jemand einmal fragen, wie oft Geräte nicht rechtzeitig zurück gegeben wurden, wenn xyz Schichtleiter war, ist das auch noch möglich.


Ich möchte betonen, dass das skizzierte Vorgehen keine hoch-professionelle Lösung ist und ein paar Dinge dabei unberücksichtiegt bleiben. Es ist eine pragmatische Lösung, die sich daran orientiert, was der Fragesteller (vermutlich) möchte und für die tägliche Arbeit braucht. Klein und fein, mit Knopfdruck abrufbar. Es ist ein Kompromiss zwischen sinnvoller Normalisierung und praktischem Nutzen, aber auch zwischen der Offensichtlichkeit einer Excel-Tabelle und einer vielleicht verwirrenden Sammlung von Tabellen und Abfragen in Access. Und es ist ein kleiner Versuch, dem Fragesteller das Thema Normalisierung anschaulich näher zu bringen und ihm gleichzeitig Mut zu machen, darauf teilweise zu verzichten. Und ich weiß, dass ich dafür negative Kritik erhalten werde...


Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 17, 2016, 11:56:55
Hallo zusammen,

ich habe mich mit den geposteten Links beschäftigt und versucht meine Tabellenstruktur zu überarbeiten.
Ihr findet meinen Entwurf im Anhang.

Zur Erläuterung:

ZitatDazu ist eine extra Tabelle erforderlich die Handheld und Drucker kombiniert (Gerätegruppe)
Die Tabellen für die Mitarbeiter- und die Gerätergruppen sind (wie man sieht) geplant. Allerdings weiß ich nicht wie ich diese mit den anderen Tabellen verknüpfen soll. Zwei Beziehungen zwischen Tabellen funktionieren ja nicht.
Außerdem weiß ich nicht welche felder in diesen Tabellen auftauchen müssen.

Meine Vermutung:
Um Redundanzen zu vermeiden würde ich in der "Gruppentabellen" nur die jeweiligen IDs verknüpfen.
Den Rest sollte sich Access doch eigentlich über die definierten Beziehungen ziehen können?! :o

Zitatlaß dich nicht entmutigen. Viele Pofis betrachten die Normalisierung als unumstößliches Gesetz, als conditio-sine-qua-non (Voraussetzung ohne die nichts geht) und die Verletzung dieses Gesetzes als höchst zu bestrafen.
Nein entmutigen lasse ich mich so schnell nicht. Ich bin auch durchaus gewillt diese Normalisierung zu erlernen und einzuhalten. Mir ist es jedoch extrem wichtig zu verstehen, warum ich etwas nach bestimmten Richtlinien machen soll. Hierbei haben die zusätzlichen Erläuterungen und die angefügten Links schon sehr geholfen!

Ich hoffe das kann man auch anhand meiner Tabellenstruktur erkennen.

Ich bin gespannt auf euer Feedback!

LG Schanko
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Beaker s.a. am Oktober 17, 2016, 12:51:16
Hallo Schanko,
Siehste, wird doch.
In die Gruppentabellen gehören diese Fremdschlüssel nicht, da gehören nur die Attribute
der Gruppen hinein.
Um diese Tabellen mit den anderen beiden Tabellen (MA und Geraete) zu verbinden musst
du noch zwei Tabellen anlegen (MitarbeiterZuMAGruppe und GeraetZuGGruppe).
Diese erhalten ausser einem PK (Autowert) nur je zwei FK-Felder für die PK aus Mitarbeiter
und Geräte. Das nennt man eine n:m-Tabelle.
Ergebnis: ein MA kann zu n Gruppen gehören, und jeder Gruppe können n MA zugeordnet
sein. Für Geraete und deren Gruppen gilt es entsprechend.
Für die Zukunft; - wenn du irgendwo auf nummerierte Felder triffst, gehören diese als ein
Datensatz in eine neue Tabelle.
gruss ekkehard
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 17, 2016, 14:09:42
Hallo ekkehard,

ZitatIn die Gruppentabellen gehören diese Fremdschlüssel nicht, da gehören nur die Attribute
der Gruppen hinein.
Ich hoffe das habe ich jetzt richtig umgesetzt.
Aber um erhlich zu sein verstehe ich noch nicht ganz, warum ich das jetzt gemacht habe. :-[
Vielleicht könntest du mir das noch einmal in kurzen Sätzen erklären?

ZitatFür die Zukunft; - wenn du irgendwo auf nummerierte Felder triffst, gehören diese als ein
Datensatz in eine neue Tabelle.
Was meinst du damit? :-\

Sollte meine Struktur jetzt korrekt sein, kann ich mich doch an den Entwuf der Formulare machen oder?
Muss ich für das Festlegen der Mitarbeitergruppe und der Gerätegruppe jeweils ein eigenständiges Formular machen?
Oder kann ich diese Zuordnung in einem Endlosformular vornehmen?

Meine Vermutung:
Getrennte Formulare.
Wenn ja, wie führe ich Sie für den Benutzer zusammen?

Anbei mal meine DB und die Tabellenstruktur.
Die DB habe ich natürlich um Unternehmensdetails kürzen müssen.
Alle Werte sind natürlich frei erfunden, stellen in Ihrer Struktur aber die Ausgangslage dar.

Edit1:
Auf welcher Basis baue ich denn mein Formular am besten auf (Zuordnung MA & Geräte).
Probiere gerade rum, will aber nicht so wirklich funktionieren... :-\

Edit2:
Ich habe die Beziehung zwischen tblZuordnungMitarbeitergruppeZuGerätegruppe und tblMitarbeitergruppe bzw. tblGerätegruppe in eine 1:1 Beziehung geändert, da jedes Mitarbeiter-/Gerätepaar nur einmal in der Zuordnung vorkommen darf!

LG
Schanko
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Beaker s.a. am Oktober 17, 2016, 16:43:54
Hallo Schanko,
So wie ich das sehe, sollte das so passen.
In der Anlage ist jetzt auch eine .mdb dabei. Da können sich andere
(bessere) das auch mal anschauen.
Zuordnungen erfolgen meist in Unterformularen.
gruss ekkehard
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 18, 2016, 08:30:34
Guten Morgen,

sehr gut, hab gestern auch schon ein bisschen weiter damit gearbeitet und das ein oder andere Testformular erstellt (Nichts was man hier vorzeigen müsste  ;D)

ZitatIn der Anlage ist jetzt auch eine .mdb dabei.

Ich weiß gerade nicht, ob ich dich richtig verstehe. Meinst du meinen oder deinen Anhang ekkehard?
Bei dir finde ich nämlich nichts...  :o

Was mir jetzt fehlt ist eine strukturierte Vorgehensweise, wie ich letztenendes an mein Ergebnis komme.
Wie erstelle ich Geräte- bzw. Mitarbeitergruppen. Ich habe zwar die benötigten Tabellen, weiß aber noch nicht, wie ich diese einsetzen muss...
Im Prinzip werden die Gruppen ja in den Tabellen tblMitarbeiterZuGruppe und tblGerätezuGruppe erstellt. Hier führe ich ja jeweils die MitarbeiterID bzw. GeräteID auf und vergebe für ein Paar immer eine Gruppennummer, die dann in tblMitarbeitergruppen und tblGerätegruppen als Primärschlüssel eingetragen wird.
Hierbei würde aber noch manueller Aufwand entstehen, weil ich ja in letztgenannter Tabelle erstmal ein paar Nummern erzeugen müsste.

Mein Ansatz für ein Formular (frmGerätegruppenErzeugen) würde wie folgt aussehen:

Sollten meine Ansätze in der Aufzählung falsch sein, so möchte ich noch einmal meinen ersten Gedanken zur Zuordnung in einem einzigen Formular aufführen(vielleicht geht das ja auch, ich sehe es nur nicht:
Aufbauend auf diesem Formular könnte ich ja dann verschiedene Berichte generieren (wie zB ein Übersicht über die Geräte- & Mitarbeiterzuordnung inkl. Schlüsselnummer, Fach, Bereich & Bauteil)

Ich hoffe weiterhin auf eure Hilfe! :)

LG Schanko
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Beaker s.a. am Oktober 18, 2016, 19:31:52
Hallo,
Na super, ich mal wieder  >:( - jetzt aber ...
gruss
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: DF6GL am Oktober 18, 2016, 20:27:39
Hallo,,
seit ihr sicher, dass dieses Beziehungsmodell der Aufgabe gerecht wird?
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Beaker s.a. am Oktober 19, 2016, 00:14:25
Hallo Franz,
Nicht wirklich muss ich zugeben  :(
Bin z.Zt. mit dem Kopf immer irgendwie woanders.
Was meinst du, die Tabelle "tblZuordnungMitarbeitergruppeZuGerätegruppe"
eher direkt mit den MA verknüpfen (tblMitarbeiterZuGeraeteGruppe) also
FK IngMitarbeiterID (um bei seiner Notation zu bleiben) statt lngMitarbeiterGruppeID?
gruss ekkehard

P.S. Vielleicht sollte ich mich lieber raushalten, wenn ich Probleme mit der Abstraktion
der abzubildenden (fremden) Realität habe. :-[
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: DF6GL am Oktober 19, 2016, 08:31:41
Hallo,

ich will mich jetzt nicht sehr hier einmischen und den ganze Thread nachvollziehen, habe nur anhand des Beziehungsschemas keine durchgängige Logik erkannt. Soll heißen, was damit dargestellt werden soll, ist mir unklar.
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Beaker s.a. am Oktober 19, 2016, 11:16:51
Hallo Franz,
ZitatSoll heißen, was damit dargestellt werden soll, ist mir unklar.
So hätte ich mein P.S. auch formulieren können  ;)
Ich hatte das aus diesem "entwickelt" (#14)
Zitat
Zitat

•Es gibt einen Pool an Handhelds & Druckern, die immer paarweise ausgehändigt werden

Dazu ist eine extra Tabelle erforderlich die Handheld und Drucker kombiniert (Gerätegruppe)

Zitat

•Es gibt den Mitarbeiterstamm, der sich über die verschiedenen Schichttypen verteilt. In der Regel arbeiten also zwei Mitarbeiter (jeweils aus einer Schicht) mit ein und dem selben Paar Handheld+Drucker

Gleiches wie zuvor. Du bildest über die beiden Mitarbeiter eine Gruppe mit einem Primärschlüssel und die Mitarbeitergruppe wird dann der Gerätegruppe zugeordnet.
Beim letzten Absatz habe ich aber nicht aufgepasst, - muss 1:n statt n:m.
Korrektur anbei.
Würde mich freuen wenn du es dir nochmal anschaust.
Zitatnicht sehr
Vielleicht ein bisschen?  :)
gruss ekkehard
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: DF6GL am Oktober 19, 2016, 12:05:26
Hallo,

vielleicht wäre es erst sinnvoll, die Anordnung der Tabellen im Beziehungsfenster so zu ordnen, wie ich es dargestellt habe. Jeweils die 1-Tabellen links der zugehörenden n-Tabelle platzieren und entspr. "Spalten" zu binden.  Dann wäre die Übersichtlichkeit der Zusammenhänge viel besser....   ;)


Es ist nicht nur die 1:1- Verbindung, auch die Nicht-Verwendung der m:n-Tabellen ist zu hinterfragen.
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Beaker s.a. am Oktober 19, 2016, 14:47:46
Hallo Franz,
Zitatvielleicht wäre es erst sinnvoll, die Anordnung der Tabellen im Beziehungsfenster so zu ordnen, wie ich es dargestellt habe
Hat wohl jeder so seinen eigenes Verständnis.
Mit den Tabellen (bei dir links, bei mir gar nicht im Bild) hatte ich mich noch nicht
beschäftigt.
ZitatEs ist nicht nur die 1:1- Verbindung
Das würde ich so auflösen (s. Anlage)
Zitatauch die Nicht-Verwendung der m:n-Tabellen ist zu hinterfragen.
Welche? Die Zuordnung MAGruppen zu GeraeteGruppen?
Lässt sich ja wieder herstellen.
gruss ekkehard
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am Oktober 21, 2016, 18:30:13
Hallo nochmal.

Die bisher vorgestellten Lösungen zeigen ja "nur" unterschiedliche Datenmodelle, aber keine Funktionalität.
Ich habe mir jetzt die letzte DB heruntergeladen und eine Tabelle und ein Formular hinzugefügt.

Dies ist ein stark reduziertes Beispiel, aber vielleicht geht es so ungefähr in die Richtung, was sich Der_Schanko an Funktionalität vorstellt.

OK - ich arbeite dabei (bewusst) mit Redundanzen. Auch müsste man vielleicht noch einbauen, dass nur die jeweils letzten 10 oder 20 Datensätze angezeigt werden, evtl. mit select top 20... und absteigender Sortierung.

Aber insgesamt scheint es mir doch eine ergonomische Lösung zu sein oder zumindest eine Basis.

Übrigens sieht man in meiner Mini-Lösung auch, wie man ganz genau einen Record in einem Endlos-Formular updaten kann. Das ist wohl auch interessant.

(Um das Formular zu finden, muss man im Navigations-Bereich z.B. "Alle Objekte" anklicken. Das Formular hat den Namen GS1, den Namen der DB habe ich auf hh (HandHeld) abgekürzt.)

Grüsse

crystal

(Datenmodell = dm.png, Formular-Bsp. = form.png, accdb + mdb = hh.zip)

Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am Oktober 21, 2016, 18:37:27
PS: eigentlich ist es nicht nötig, meine neue Tabelle ins DM einzufügen und Referenzen auf andere Tabellen zu definieren, da alles im Formular stattfindet.

Für eine Lösung, die dem Umfang des DM entspricht, müsste man wohl noch etwas mit "Selects" für weitere Kombifelder arbeiten und auch weitere abhängige Felder "manuell holen" bzw. die Kombifeld-Selects passend komplex mit allen erforderlichen Joins erweitern...
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am Oktober 22, 2016, 17:47:17
Hallo Profis,

noch einige Fragen zum Verständnis.

In meiner kleinen Lösung (s.o.) nutze ich ja prinzipiell folgenden Code:


Private Sub GSGerätRef_AfterUpdate()
    Me.Recordset.Edit
    Me.Recordset.Fields("text14") = Me.GSGerätRef.Column(1)
    Me.Recordset.Update
End Sub


also im Wesentlichen Zugriffe auf Recordset.

In meinem Verständnis ist ein Recordset aber eine Anzahl von Records. Warum greift aber
Me.Recordset.Fields("text14") = Me.GSGerätRef.Column(1)
genau auf den aktuellen Record zu? Ist einfach nur das Wort Recordset falsch und es müsste eigentlich Record heißen? Oder nimmt Recordset implizit immer den aktuellen Record (so wie es scheint)?

Wenn es RecordSET gibt, wieso gibt es dann kein Recordset(i) oder ActualRecord?

Es würde mich ja schon brennend interessieren, was Microsoft hier implementiert hat. Können wir im nächsten Release Antworten auf diese Frage erwarten? Sollte es dann vielleicht möglich werden, den "Fokus" oder "Scope" in einem Endlos- oder Unterformular auch "offiziell" auf einen Record des Recordsets zu beschränken?

Vom Ansatz her ist Recordset ja wohl eher als eine Auflistung zu verstehen, was ja durchaus logisch wäre. Hat Microsoft einfach nur vergessen, dem Programmierer Möglichkeiten zu bieten, auf einzelne Elemente eines Recordsets, also Records, zuzugreifen?

Gibt es API-Funktionen, mit denen das möglich wäre?

Ist mein Trick (s.o. im Codefenster) bekannt (ich habe ihn durch simples Probieren nach Inspektion des Lokal-Fensters gefunden)?

Wird durch Recordset.Edit der "Fokus" bzw. "Scope" "automatisch" auf den aktuellen Record gesetzt?

Funktioniert mein "Trick" nur deshalb, weil alle sichtbaren Felder meines Formulars direkt mit der zugrunde liegenden Tabelle korrespondieren und ich mit
Me.Recordset.Fields("text14") = Me.GSGerätRef.Column(1)
direkt in die Tabelle schreibe (und nicht in das GUI)?


Fragen über Fragen - wer kennt Antworten?

-------------------
Zur eigentlichen Fragestellung noch ein paar Ideen:

In den Eigenschaften eines Kombifeldes kann man die Anzahl der Spalten und deren Breite (z.B. auch 0) einstellen. Trotzdem kann man auf alle Spalten-Inhalte mit column(i) zugreifen, auch wenn die Breite 0 ist.
Man kann also durchaus komplexe Abfragen formulieren, nur die interessanten Datenfelder darstellen (andere auf Breite 0 setzen) und dann mit VBA auf alle Spalten zugreifen.

Statt - wie in meinem Beispiel - explizit Felder für Nachname und Vorname in der Tabelle zu halten, könnte man diese beiden Werte natürlich auch in einem gemeinsamen Feld unterbringen. Über die gespeicherte ID hätte man ja trotzdem die Möglichkeit, alle Fremdfelder einzeln anzusprechen.

Die jetzige einfache Abfrage der Geräte-Tabelle könnte man mit einer Union-Abfrage auch auf Geräte-Kombinationen erweitern und dann im Code entsprechend agieren.

Statt dem gesamten Formular eine Abfrage wie Select Top... zu verpassen, könnte man auch einfach alle DS suchen, die noch kein Rückgabe-Datum haben, oder alle, die seit vorgestern ausgegeben wurden, oder oder oder.

Durch Klick auf einen Info-Button im Endlos-Formular könnte man weitere Details des Datensatzes in einem modularen Formular (ähnlich einer Messagebox) anzeigen.

Was haltet ihr von meiner kleinen Lösung? Ich würde mich sehr freuen, wenn ich hierzu ein paar Antworten erhalten würde.

Gruß und ein schönes Wochenende...

crystal

Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: ebs17 am Oktober 22, 2016, 19:23:49
Vorab: Es macht keinen Sinn, aber einen schlechten Eindruck, wenn Du eigene Unfertigkeiten und Unkenntnisse Microsoft anlastest.

    Me.Recordset.Edit
    Me.Recordset.Fields("text14") = Me.GSGerätRef.Column(1)
    Me.Recordset.Update

... ist gleichlautend (aber umständlicher) zum üblichen
    Me.text14 = Me.GSGerätRef.Column(1)
Im zweiten Fall ist immer das Textfeld im aktuellen Datensatz addressiert.
Wenn man das Formularrecordset verwendet, ist da der Datensatzzeiger auf dem gleichen Datensatz wie im Formular und somit auch auf dem im Formular aktuellen.

ZitatEs würde mich ja schon brennend interessieren, was Microsoft hier implementiert hat.
Wenn Du das Objekt Recordset kennenlernen möchtest, wäre der Objektkatalog (mit Taste F2 aus VBA-Editor heraus erreichbar) eine übliche Informationsquelle zu den möglichen Eigenschaften, Methoden und Ereignissen dazu.

ZitatMan kann also durchaus komplexe Abfragen formulieren, nur die interessanten Datenfelder darstellen (andere auf Breite 0 setzen) und dann mit VBA auf alle Spalten zugreifen.

Ja, man kann auch zusätzlich zu den Schuhen an den Füßen seine sämtlichen anderen Schuhe im Rucksack mitführen.
Im Normalfall macht man seine Abfragen so schlank und schnell wie möglich.
Abfragen mit vielen Feldern im SELECT-Teil würde ich nun nicht als komplex bezeichnen, breit trifft es sicher besser.
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am Oktober 23, 2016, 14:03:45
Hallo Eberhard,

danke für deine Antwort, die mich leider etwas enttäuscht hat. Ich hatte nämlich gedacht, einen tollen Trick gefunden zu haben, weil ich im Lokalfenster über Recordset.edit gestolpert bin.

Mein sich wiederholender Verdacht, dass MS bei der Implementierung nicht sorgfältig genug war, rührt schlicht daher, dass es unmöglich ist, ein Produkt wie Access fehlerlos zu entwickeln. Die Unmenge an KB-Artikeln nur für Access spricht da Bände. Entsprechendes gilt natürlich für alle Software-Produkte, sein sie von MS oder irgendeinem anderen Hersteller.

Ich weiß natürlich inzwischen, dass du ein nahezu extremer MS-Fan bist, der auf MS nichts kömmen läßt. Insofern macht dein "Vorab-Satz" auch keinen Sinn und ist nur Polemik und etwas Provokation. Danke trotzdem für die fachliche Aufklärung, die auch völlig ohne deine "Randbemerkung" ihren Sinn und Zweck erfüllt hätte.


Mit "komplexen Abfragen" meinte ich übrigens Abfragen über mehrere Tabellen mit entspr. vielen Joins, nicht die Anzahl der selektierten Felder. Ich wollte mit der Spaltenbreite 0 nur klar machen, das man für die optische Darstellung des Pulldown-Fensters einer Kombobox an der Benutzer-Oberfläche Felder einfach verstecken kann oder könnte und im VBA-Code trotzdem darauf zugreifen kann. Sicher kein schlechter Weg, um dem Benutzer vor für ihn nur verwirrende Daten auszublenden und die Breite des Pulldown-Fensters zu reduzieren.

Auch hier wieder ein völlig unnötiger Satz (der mit den Schuhen), der nur zu einigen Lachern führt, wenn man an die Damenwelt denkt.

----------

Letztendlich will ich mit meiner kleinen Lösung nur das anbieten, was der Threadstarter sich so vorgestellt hat: eine übersichtliche Darstellung des Verbleibs der Geräte mit der Option, im selben Formular auch weitere Geräte auszugeben und dabei komfortabel via Kombifeld auf hinterlegte Daten zugreifen zu können. Meiner Grundidee folgend kann man beliebige Felder aus beliebigen Tabellen holen und simpel und ergonomisch darstellen und zur späteren Verwendung so speichern, wie man sie am Bildschirm sieht.

Die zugrunde liegende Tabelle kann man dann zyklisch von alten Datensätzen befreien, ohne sich die Möglichkeit zu verbauen, zuvor andere Auswertungen in Form von Berichten und Statistiken, monatlicher Meldung an die Kostenkontrolle, Verlustmeldungen, Reparaturen usw. zu erstellen.

Das alles wird jetzt relativ einfach, allerdings unter Billigung von Redundanzen, möglich und das elaborierte Datenmodell leistet seinen erheblichen Anteil zur Strukturierung und Verwaltung der Basisdaten.

Und ich will zusätzlich zeigen, dass es möglich ist, sehr kompakte Formulare zur Darstellung und Eingabe von Daten zu gestalten, wenn man bereit ist, Redundanzen in Kauf zu nehmen.

Eine Alternative wäre es, im Endlos-Formular erst bei der Darstellung per VBA die abhängigen Felder (z.B. Name und Vorname aus der MA-Tabelle) anhand gespeicherter Referenzen (MA-Id) zu holen und in ungebundene Felder zu schreiben (mit damit verbundenen Problemen, die Endlosformulare so haben). Damit verliere ich allerdings die Information, wer vor 5 Tagen Schichtleiter von MA XY war, es sei denn, ich ergänze die MA- und Schichtleiter-Tabelle um eine durchgängige Zeiten-Verwaltung. Die Frage ist, ob sich ein solcher Aufwand lohnen würde.

Ich bin gespannt, was Der_Schanko dazu sagt.

Grüsse

crystal

Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: MzKlMu am Oktober 23, 2016, 15:31:53
Hallo,
ZitatIch wollte mit der Spaltenbreite 0 nur klar machen, das man für die optische Darstellung des Pulldown-Fensters einer Kombobox an der Benutzer-Oberfläche Felder einfach verstecken kann oder könnte und im VBA-Code trotzdem darauf zugreifen kann. Sicher kein schlechter Weg,
da hast Du nichts neues erkannt. Das ist übliches Vorgehen seit es Access gibt. Nahezu jedes Kombi ist so eingestellt. Und wenn man mit dem Assistenten ein Kombifeld anlegt wird das standardmäßig so eingerichtet.

Noch etwas zu den Redunundanzen, diese sind in jedem Fall in einem korrekten Datenmodell zu vermeiden. Sie sind Fehlerquellen und bergen die Gefahr von Dateninkonsistenzen weil bei der Aktualisierung redundanter Felder etwas nicht geklappt hat.
Und meine langjährigen Erfahrung nach in mehreren Foren zeigt, dass ein falsches Datenmodell immer einen erhöhten und dann unnötigen Programmieraufwand erfordert.
Ein gutes Datenmodell zeichnet sich dadurch aus, dass man nur die Benutzeroberfläche mit Datenvalidierung programmieren muss. Datenkonsistenz sollte sich nur über das Datenmodell ergeben. Auch Unionabfragen sind nur in wenigen Ausnahmefällen sinnvoll.
Und im Rahmen dieser Erfahrung in den Foren habe ich auch festgestellt, dass von den vielen MS angelasteten Access Bugs nur weniger als eine Handvoll als Bug übrig bleiben. Spontan wüsste ich keinen. Und die KB-Artikel umfassen im wesentlichen Hinweise zum Umgang mit Access, würde ich daher eher als Hilfe bezeichnen.

ZitatEine Alternative wäre es, im Endlos-Formular erst bei der Darstellung per VBA die abhängigen Felder (z.B. Name und Vorname aus der MA-Tabelle) anhand gespeicherter Referenzen (MA-Id) zu holen und in ungebundene Felder zu schreiben
Das macht man mit einer Abfrage und der Verknüpfung über die Schlüsselfelder viel eleganter und funktioniert auch in einem Endlosformular. Ich habe auch so gut wie noch nie mit Column(x) auf eine Kombifeldspalte verweisen müssen. Und VBA Lösungen sind immer weniger performant als das was man mit SQL (Abfrage) erledigen kann.

Ansonsten fällt es mir schwer Deinen Beiträgen zu folgen. Ist mir viel zu abstrakt.
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am Oktober 23, 2016, 17:22:06
Hallo Klaus,
Ich verstehe zwar nicht, was an meinen Beiträgen zu komplex wäre, aber da mag jeder eine andere Meinung haben.

Und allgemein:
Es ist immer wieder erstaunlich, wie in diesem Forum (und auch in anderen) Personen und deren Äußerungen, die nicht auf Mainstream-Linie liegen, von wenigen anderen, die sich als Pächter der Wahrheit verstehen, kritisiert, ins Lächerliche gezogen und mit erhobenem Zeigefinger abgetan werden. Dabei ist dies doch ein Diskussions-Forum, wo man auch mal andere Standpunkte haben können sollte, sei es nun aus Unwissenheit oder wegen eines anderen Erfahrungs-Horizonts.

Diskussion aber bedeutet für mich, sich mit den Thesen des anderen auseinander zu setzen und schlicht sachlich darzulegen, warum diese These nicht richtig ist oder sein kann. Und es bedeutet auch, Dinge sagen zu dürfen, die nicht zu 110% dem "Expertenwissen" entsprechen.

Es sollte ein Ziel sein, "falsche" Meinungen fachlich und sachlich zu kommentieren, um die Lösung des Problems voranzutreiben UND sowohl den Schreiber der "falschen" Meinung als auch andere dabei zu unterstützen, neue Erkenntnisse zu gewinnen, statt sie "von oben herab" zu kommentieren und dabei auch noch polemisch, provozierend, verächtlich und so weiter zu werden.

Ein schönes Beispiel für eine solche geradlinig zum Ziel führende, sachliche Diskussion ist mein Thread "Natürliche Sortierung", wie ich es darin auch geäußert habe.


Im Übrigen, lieber Klaus, bist auch du bisher eine konkrete Lösung des Themas schuldig geblieben. Bitte erstelle doch ein Formular, das dem Wunsch des TS entsprechen könnte, denn darum geht es doch vielen Fragestellern: wie mache ich das praktisch und so, dass es auch sinnvoll, einleuchtend, nachvollziehbar und einfach funktioniert, ohne dass ich zuvor ein Profi-Seminar absolvieren muss?

Im konkreten Fall reden wir von einer Anwendung, die eine begrenzte Lebensdauer von vielleicht ein paar Jahren haben wird, bis die Ausgabe der Handhelds vermutlich völlig anders gelöst oder nicht mehr erforderlich ist. Deshalb meine Idee, dem TS mit einem praktischen Beispiel einen Weg zu zeigen, statt ihn mit gebetsmühlenhafter Wiederholung die göttliche Notwendigkeit der Normalisierung einzutrichtern.

Ich bin Pragmatiker und stehe dazu, Lösungen zu entwickeln, die nicht für die Ewigkeit bestimmt sind, sondern um ein konkretes Problem zu lösen oder einen konkreten Wunsch zu erfüllen, ohne dabei jedoch einen Blick in die (nahe) Zukunft zu vergessen. Und ich weiß aus Erfahrung, wie kurzlebig manche wunderschönen, bis ins allerkleinste Detail während einer monatelangen Analyse wohl durchdachten Anwendungen im täglichen Proktionsablauf sind. Da reicht oft schon die Versetzung in eine andere Abteilung oder Mutter-(Vater-)schafts-Urlaub, manchmal sogar schon der Schichtwechsel.

In diesem Sinne...

crystal

Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: DF6GL am Oktober 23, 2016, 17:47:38
Hallo,


ich bitte, solche ellenlange Ergüsse der eigenen Meinung, die vermutlich niemand interessieren , OT sind und auch den TS nicht sonderlich weiter zum Ziel bringen,  im Smalltalk-Board anzusiedeln und weiter zu führen...

Moderator
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 24, 2016, 10:35:34
Hallo zusammen,

mir ist etwas andere Arbeit dazwischen gekommen, weshalb ich mich erst heute wieder mit der DB beschäftigen kann.

Ich versuche mal eure Diskussion hier nachzuvollziehen:
Ehrlich gesagt bin ich aber verwirrter, als ich es vielleicht vorher war.
Zitatich will mich jetzt nicht sehr hier einmischen und den ganze Thread nachvollziehen, habe nur anhand des Beziehungsschemas keine durchgängige Logik erkannt. Soll heißen, was damit dargestellt werden soll, ist mir unklar.
Ich dachte ich hätte meine Tabellenstruktur jetzt soweit angepasst, dass ich mit der Erstellung von Formularen starten kann. :(
Wenn nicht, dann würde ich euch bitten mir nochmal detailliert zu bschreiben was denn falsch ist. Oder eine Anpssung in der von mir angehängten DB vorzunehmen, damit ich mir diese nochmal genau anschauen kann. :)
ZitatDie bisher vorgestellten Lösungen zeigen ja "nur" unterschiedliche Datenmodelle, aber keine Funktionalität.
Ich habe mir jetzt die letzte DB heruntergeladen und eine Tabelle und ein Formular hinzugefügt.
Das Formluar ist meiner eigenen Aufgabenstellung schon sehr nahe.
Sobald ich nachvollzogen habe, wie es funktioniert kann ich darauf aufbauen wohl weitere Formulare & Berichte erstellen.
ZitatDie zugrunde liegende Tabelle kann man dann zyklisch von alten Datensätzen befreien, ohne sich die Möglichkeit zu verbauen, zuvor andere Auswertungen in Form von Berichten und Statistiken, monatlicher Meldung an die Kostenkontrolle, Verlustmeldungen, Reparaturen usw. zu erstellen.
Das dachte ich mir auch, wäre super!
Danke hierfür schonmal.
Zitatallerdings unter Billigung von Redundanzen
ZitatNoch etwas zu den Redunundanzen, diese sind in jedem Fall in einem korrekten Datenmodell zu vermeiden.
Hierzu müsstet ihr mich noch einmal aufklären. Wo bestehen diese Redundanzen?

Im Moment hab ich mehr Fragezeichen im Kopf als Antworten...
Die einzige Lösung, die bis jetzt wirklich das abbildet, wie ich es mir vorgestellt habe kam von crystal.
Wie können die angesprochenen Redundanzen denn aufglöst werden?

Ich möchte auch nicht, dass hier nun eine Grundsatzdebatte ausbricht.
Ich dachte nicht, dass meine DB solch ein  umfangreiches Unterfangen wird.

Was mir fehlt um auch eigenständig probieren zu können ist ein klarer Ansatz für mich (gerne auch mit Erklärung warum).
Welche Tabelle nehme ich als Basis für mein Hauptformular in dem ich die Mitarbeitergruppen zur Gerätegruppe zuordnen kann.
Die eindeutige Beantwortung dieser Frage in Verbindung mir der "korrekten" Tabellenstruktur würde mir sehr weiterhelfen!

Vielen Dank für eure weiteren Antworten

LG
Schanko
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: DF6GL am Oktober 24, 2016, 16:43:27
Hallo,

damit wir von gleicher Situation ausgehen, lade die Db mal hier hoch, evtl. datenreduziert, komprimiert/repariert und gezippt.

Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am Oktober 24, 2016, 18:33:57
Hallo Schanko,

vielen Dank für die Anerkennung meines Beitrags zu Lösung deines Problems bzw. Wunsches.

Um dir weiter helfen zu können, müsstest du bitte nochmal zusammenfassen, was du mit den Daten wie machen möchtest. Hierzu wäre es gut, wenn du kurz beschreiben würdest, welche Funtionalität du dir erwartest. Das Datenmodell als solches ist glaube ich schon sehr ausgereift, aber es bleiben eben Fragen zur Funktionalität.

Welche betrieblichen Abläufe möchtest du mit der Anwendung unterstützen? Bitte beschreibe diese Abläufe kurz und nenne die Informationen, die du dazu sehen möchtest, z.B. "Ausgabe eines Handhelds: Gerät auswählen, Name und Personalnummer des Ausleiers speichern, weitere Daten einsehen und ggf. speichern (Schicht, Schichtleiter, Kostenstelle...), Rückgabe-Zeitpunkt berechnen, usw.".

Dann kann man sich überlegen, wie diese Funktionen an der Oberfläche realisiert werden können und inwieweit es dabei möglich ist, Redundanzen (s.u.) zu vermeiden, ohne die Funktionalität einzuschränken.

Redundanzen sich schlicht Daten, die in einer DB mehrfach vorkommen. Wenn du eine Mitarbeiter-Tabelle hast und in der Geräte-Verbleib-Tabelle zusätzlich zur Personal-Nummer auch den Namen des Mitarbeiters speicherst (wie in meiner Beispiel-DB), ist eine Redundanz entstanden, denn auf den Namen könntest du ja auch über die Personal-Nummer zugreifen. Mein Beispiel zeigt also eindeutig, wie Redundanzen entstehen. Nach einiger Zeit steht in der Geräte-Verbleib-Tabelle der Name des MA Schulze mehrfach drin. In der "reinen Lehre" der Datenbank-Theorie ist das nicht erlaubt. Wenn man sich allerdings vor Augen führt, welchen Aufwand man treiben müsste, um diesen simplen Namen in Formularen darzustellen (man müsste ihn ja jedesmal aus der MA-Tabelle holen), muss man abwägen, ob man diesen Aufwand treiben möchte (z.B. mit viel VBA) oder die Redundanz schlicht akzeptiert, weil die Implementierung der Oberfläche dann erheblich einfacher ist.

Das eigentliche Problem von Redundanzen ist die Pflegbarkeit der Daten. Wenn sich der Name des MA z.B. ändert, wird er in der MA-Tabelle geändert, anhand der MA-Nummer. Aber was passiert in der Geräte-Verbleib-Tabelle? Nichts. Hier steht jetzt immernoch der alte Name drin und das kann natürlich zu Problemen führen.

Um das zu vermeiden, speichert man als in streng normalisierten relationalen Datenbanken grundsätzlich nur Referenzen auf die MA-Tabelle (Personal-Nummer) ab, denn so kann man jederzeit den aktuellen Namen bekommen.

Leider bieten Datenbansysteme kaum elegante Möglichkeiten, solche Referenzen an der Oberfläche zu de-referenzieren, also z.B. Name, Vorname etc. anhand der Personal-Nummer schnell und einfach zu holen und anzuzeigen. Natürlich geht das mit einfachen Select-Anweisungen, aber bei Access kommt nach meiner Erfahrung hinzu, dass es in Endlos-Formularen nicht immer gelingt, diese de-referenzierten Daten datensatz-abhängig darzustellen. Mag sein, dass ich hier falsch liege. Es bleibt aber die Tatsache, dass man eine solche De-Referenzierung für jeden aktuell darzustellenen Datensatz wiederholen muss. Und da denke ich als Pragmatiker: warum jedesmal und an allen Stellen wieder? und mache es lieber nur einmal und speichere die gewünschten Daten zusätzlich ab.

Lange Rede, kurzer Sinn. Ich wollte dich mit meiner Ausführlichkeit nur auf ein paar grundsätzliche Probleme bei der Entwicklung von Datenbank-Anwendungen hinweisen.

Grüsse,

crystal

PS an DF6GL:
Sorry, wenn dies wieder ein langer Text ist. Ich denke jedoch, dass er zum Verständnis beiträgt. Und ich habe niemand persönlich angegriffen, wie andere es mir gegenüber getan haben, was du vielleicht als Moderator auch bemängeln könntest...




Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: MzKlMu am Oktober 24, 2016, 18:54:05
Hallo,
ich schließe mich der Bitte von Crystal an. Erläutere noch mal im Zusammenhang was Du in den Formularen darstellen willst. Ich habe da etwas den Überblick verloren und will das ganze Thema nicht noch mal lesen.

@crystal
ZitatNatürlich geht das mit einfachen Select-Anweisungen, aber bei Access kommt nach meiner Erfahrung hinzu, dass es in Endlos-Formularen nicht immer gelingt, diese de-referenzierten Daten datensatz-abhängig darzustellen. Mag sein, dass ich hier falsch liege.
Da liegst Du falsch, garantiert. Gerade in Endlosformularen ist eine Abfrage die die Mitarbeitertabelle einschließt zu bevorzugen. Mit der Verknüpfung über die Schlüsselfelder. Eine solche Abfrage ist die schnellste und sicherste aller Möglichkeiten. Auch bei Endlosformularen. Es ist auch nur ein einziges Select erforderlich. Es wäre auch zu bedenken, dass der Zugriff auf die Daten ohnehin immer über Abfragen erfolgen sollte und nicht über die Tabelle direkt, sodass man daher immer eine Abfrage braucht. Die Abfragen können als gespeicherte Abfragen vorliegen oder direkt als Select ... in der Datenherkunft eingetragen sein. Der Zugriff auf die Daten über die Tabelle ist langsamer als der Zugriff über eine Abfrage. Das mag bei wenigen Datensätzen nicht relevant sein, aber sobald große Datenmenge ins Spiel kommen, ist das zu beachten.
Ganz generell kann man sagen, überall wo möglich SQL verwenden, das ist die Sprache zur Datenmanipulation in Datenbanken.

ZitatUnd ich habe niemand persönlich angegriffen, wie andere es mir gegenüber getan haben,
Ich lege Wert auf die Feststellung, dass ich mich da nicht angesprochen fühle.
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am Oktober 24, 2016, 19:07:42
Danke Klaus

für deine Hinweise. Ich bin ja durchaus lernfähig und offen für neue Erkenntnisse.

Vielleicht kommen wir gemeinsam einer Lösung näher und ich will gerne probieren, wie die De-Refenzierung "ad-hoc" an der Oberfläche per SQL besser funktioniert.

Aber jetzt ist erstmal Schanko gefragt (und gefordert).

Absolutes OK zu deinem Nachsatz.

Bis dann,

crystal
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 25, 2016, 14:16:52
Hallo zusammen,

im Moment habe ich echt viel um die Ohren, komme kaum noch zur Weiterentwicklung der DB.
ZitatRedundanzen sich schlicht Daten[...]
Gut, das habe ich soweit verstanden. Dann wollen wir uns mal an die Lösung des Problems machen.
Bzw. ich versuche euch nocheinmal die gewünschte Funktionalität zu beschreiben.
Ich werde mich zunächst ausschließlich auf das "Hauptformular" beschränken, da es am dringensten benötigt wird!

Auslöser meiner ganzen Arbeit war, dass unsere Schichtleiter mit der alten Lösung nicht mehr zufrieden waren.
Zu viel manueller Aufwand etc.
Den Aufbau fanden sie aber sehr gut, bzw. haben sich daran gewöhnt und möchten die Möglichkeiten auch gerne beibehalten.
Im Anhang 1 seht ihr das ursprüngliche Formular.
Eine Tabellenstruktur zu der Datei kann ich euch nicht geben, weil es keine gibt.
Ich weiß nicht wie und ob das geht, aber unter "Beziehungen" wird nichts angeziegt. Auch wenn ich mir alle anzeigen lasse... :-[

Ich möchte nun zur Funktionalität kommen. Diese ist in groben Zügen schon im "alten Formular" ersichtlich.
Hintergrund:
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: MzKlMu am Oktober 25, 2016, 14:20:42
Hallo,
Zitat•Ein Gerätepaar (Handheld + Drucker) wird IMMER
was ?
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am Oktober 25, 2016, 15:06:01
Hallo Schanko,

bitte beschreibe doch etwas genauer, was dies bedeutet:

ZitatAuslöser meiner ganzen Arbeit war, dass unsere Schichtleiter mit der alten Lösung nicht mehr zufrieden waren.
Zu viel manueller Aufwand etc.
Den Aufbau fanden sie aber sehr gut, bzw. haben sich daran gewöhnt und möchten die Möglichkeiten auch gerne beibehalten.

Was bedeutet "Zu viel manueller Aufwand"?

Schön wäre es, wenn du eine abgespeckte, anonymisierte Version der alten Anwendung hochladen könntest. Ansonsten mache bitte weiter mit der Erstellung eines kleinen Pflichtenhefts, in dem du beschreibst, welche Funktionalität erwartet/gewünscht ist.

Übrigens: dass du keine oder nur wenige Beziehungen siehst, liegt daran, dass der Entwickler diese in seinem VBA-Code bzw. in SQL-Abfragen untergebracht hat - ein nicht seltenes Problem bei Access-Anwendungen.

Bis dann,

crystal
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 25, 2016, 15:08:08
Hallo zusammen,
Irgendwie wurde mein Post gesplitet...
Das wollte ich natürlich nicht!! :-[


im Moment habe ich echt viel um die Ohren, komme kaum noch zur Weiterentwicklung der DB.
ZitatRedundanzen sich schlicht Daten[...]
Gut, das habe ich soweit verstanden. Dann wollen wir uns mal an die Lösung des Problems machen.
Bzw. ich versuche euch nocheinmal die gewünschte Funktionalität zu beschreiben.
Ich werde mich zunächst ausschließlich auf das "Hauptformular" beschränken, da es am dringensten benötigt wird!

Auslöser meiner ganzen Arbeit war, dass unsere Schichtleiter mit der alten Lösung nicht mehr zufrieden waren.
Zu viel manueller Aufwand (Mitarbeiter pflegen) etc.
Den Aufbau fanden sie aber sehr gut, bzw. haben sich daran gewöhnt und möchten die Möglichkeiten auch gerne beibehalten.
Im Anhang 1 seht ihr das ursprüngliche Formular.
Eine Tabellenstruktur zu der Datei kann ich euch nicht geben, weil es keine gibt.
Ich weiß nicht wie und ob das geht, aber unter "Beziehungen" wird nichts angeziegt. Auch wenn ich mir alle anzeigen lasse... :-[

Ich möchte nun zur Funktionalität kommen. Diese ist in groben Zügen schon im "alten Formular" ersichtlich.
Hintergrund:
Zielsetzung/Funktionalität:
Ich ahne, dass die gesamte Zuordnung NICHT in einem Formular gemacht werden sollte.
Vielmehr wie folgt:
Im Hauptformular würde man dann quasi jeweils eine Gruppe der beiden "Kategorien" auswählen und miteinander verknüpfen.
Wenn dem so ist müssten in dem Hauptformular als Endlosformular trozdem alle Felder so angezeigt werden wie ich es beschrieben habe.

Die Darstellung soll wie gesagt in groben Zügen dem alten Formular entsprechen.
Im Nachhinein, soll im Rahmen des Endlosformulars alle Zuordnungen angezeigt werden.
Zusätzlich soll die Möglichkeit bestehen neue Zuordnungen vorzunehmen.

Im Anhang findet ihr auch nochmal meine anonymisierte DB.

Liebe Grüße
Der Schanko
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 25, 2016, 15:09:41
Hallo nochmal,

irgendwie funktioniert hier gerade nichts...
Meine Anhänge sind nich vollständig hochgeladen worden...

Anbei nun alle erwähnten Anhänge
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am Oktober 25, 2016, 16:02:49
Hallo Schanko,

was in deiner DB fehlt sind die Formulare, Abfragen, Module... Mit den Tabellen allein kann man nicht so viel anfangen...

Bitte prüfe das nochmal.

UND:
Könnte/würde es am Ende reichen, dir "nur" ein paar neue Formulare und Berichte zu bauen?

Bitte verstehe, dass es nicht leicht möglich ist, dein Vorhaben nachzuvollziehen oder komplett zu verstehen, denn ich (und die anderen) kennen deine praktische Arbeit nicht. Deshalb ist es sehr wichtig, alles so zu beschreiben, dass es auch andere verstehen können.

Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 25, 2016, 16:26:09
Hallo crystal,

die angehängte DB war die, die ich im Vorfeld schonmal hochgeladen hatte...Sprich mein Entwurf
Die alte müsste ich noch flott anonymisieren. Das schaffe ich heute aber definitiv nicht mehr!

ZitatKönnte/würde es am Ende reichen, dir "nur" ein paar neue Formulare und Berichte zu bauen?
Klar, wie ich schon beschrieben hatte fehlt mir der Ansatzpunkt.
Ich habe ja nen Haufen Tabellen in meiner DB, weiß aber nicht, wo ich für meine Formulare ansetzten könnte.
Ziel ist es wie gesagt eine Formular ähnlich dem Beispielformular aus der alten DB zu entwicklen (hierzu habe ich ja einen Screenshot angehängt).
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Beaker s.a. am Oktober 25, 2016, 16:31:10
Hallo Schanko,
ZitatEine Tabellenstruktur zu der Datei kann ich euch nicht geben, weil es keine gibt.
Gab es doch schon mal. Vielleicht nicht optimal, aber auf jeden Fall was besseres
als das zuletzt gezeigte.
Was ist daraus geworden?
gruss ekkehard
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: DF6GL am Oktober 25, 2016, 16:32:29
Hallo,

bist Du sicher, dass die Datenzusammenhänge stimmen, so wie sie beschrieben sind?

Betrachte das mal so:


Das Equipment gehört keinem MA. Das Equipment gehört der/den Schicht/en

Ein oder mehrere MAs werden einer Schicht zugeordnet.

Jeder MA ist einem Bereich (was ist das genau?)  zugeordnet.
.
.
.


VOR dem Entwurf von irgendwelchen Formularen (auch wenn sie anfänglich noch so schön aussehen mögen) MUSS die Tabellenstruktur gemäß den Datenbeziehungen (die durch Analyse der Arbeitsabläufe zu ermitteln sind) stimmen, sonst wird das nix, zumindest fällst Du alle 5 Minuten in eine andere Grube.

   
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am Oktober 25, 2016, 20:48:28
Oh je!
Lieber Klaus:

ZitatZitat
Eine Alternative wäre es, im Endlos-Formular erst bei der Darstellung per VBA die abhängigen Felder (z.B. Name und Vorname aus der MA-Tabelle) anhand gespeicherter Referenzen (MA-Id) zu holen und in ungebundene Felder zu schreiben
ZitatDas macht man mit einer Abfrage und der Verknüpfung über die Schlüsselfelder viel eleganter und funktioniert auch in einem Endlosformular. Ich habe auch so gut wie noch nie mit Column(x) auf eine Kombifeldspalte verweisen müssen. Und VBA Lösungen sind immer weniger performant als das was man mit SQL (Abfrage) erledigen kann.

Ich habe das jetzt probiert und siehe da, es funktioniert.
Ich arbeite nun schon viele Jahre mit Access, aber ich habe definitiv nicht gewußt, dass es so einfach möglich ist, abhängige Felder (Name, Vorname) einer Referenz (MA-Id) an der Oberfläche darzustellen!

Erst aufgrund deines Hinweises (s.o.) habe ich es jetzt probiert.

So muss ich mich entschuldigen (bei dir und anderen), denn ich habe das einfach nicht gewusst.

Damit ist das ganze Thema "Redundanzen" schlicht und einfach erledigt, wunderbar!

Wieso nur habe ich diese Technik nicht schon vor Jahren gekannt - sie hätte mir viel VBA-Code erspart.

Gruß,

crystal

Im Anhang meine revidierte DB.
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: MzKlMu am Oktober 25, 2016, 22:49:23
Hallo,
ZitatWieso nur habe ich diese Technik nicht schon vor Jahren gekannt -
weil Du Dir keine Grundlagen erarbeitet hast (ohne erhobenem Zeigefinger). Access ist eines der wenigen Programme die man lernen muss. Da kann man nicht einfach so intuitiv mal beginnen wie bei Excel oder Word. Die Kombination von Tabellen mit Verknüpfung über die Schlüsselfelder zur Darstellung abhängiger Felder ist das A+O relationaler Datenbanken und letztendlich auch Sinn und Zweck der Beziehungen/Verknüpfungen.
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 26, 2016, 08:16:46
Guten Morgen zusammen,

im Anhang findet ihr nun die anonymisierte alte DB.
Ich werde aus dieser DB aber einfach nicht schlau...
Wie gesagt ich habe sie nicht erstellt, sie wurde mir einfach nur als Beispiel gegeben mit der Bitte Sie neu aufzubauen.
Und bevor ich versuche etwas nachzuvollziehen, was ich eh nicht selber "verbrochen" habe, dachte ich mir, dass ich die DB neu aufziehe...
Und das führt mich und uns nun hierher... ;D

ZitatDas Equipment gehört keinem MA. Das Equipment gehört der/den Schicht/en
Das ist bei uns aber so.
Das Gerät bzw. Gerätepaar wird in beiden Schichten von unterschiedlichen Mitarbeitern genutzt.
Als Beispiel:
Max Mustermann (Schicht1) & Petra Musterfrau (Schicht2) sind dem Gerätepaar Handheld1 & Mobiler Drucker1 zugeordnet worden.
Die beiden Mitarbeiter greifen in ihrer Schicht auf das Gerätepaar zurück. Durch die aufeinanderfolgenden Schichten ist das ja kein Problem.
Die Geräte "gehören" also den Mitarbeitern. Sie werden in einem definierten Fach weggeschlossen, bis der andere Mitarbeiter es wieder aus dem Fach entnimmt. Für dieses Fach haben beide Mitarbeiter einen Schlüssel.
ZitatJeder MA ist einem Bereich (was ist das genau?)  zugeordnet.
Grob unterteilt gibt es drei Bereiche:
ZitatDamit ist das ganze Thema "Redundanzen" schlicht und einfach erledigt, wunderbar!
Es  freut mich, dass meine Fragestellung zu so viel Erleuchtung führt :D
Würde diese Erleuchtung nur auch bei mir ankommen :-[ :P
Die DB schaue ich mir aber direkt mal an!

Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am Oktober 26, 2016, 20:16:27
Hallo Schanko,

danke für die DB und deine Erläuterungen.
Die DB ist sicher nicht geeignet, hier oder da ein paar neue Features einzubauen... Wenn ich sie mir anschaue, wird klar, warum Anwender sie für zu schwierig halten.

Fraglich ist, ob es im Rahmen dieses Forums möglich ist, dir umfassed zu helfen. Ich denke, du müsstest da schon erstmal in Eingenleistung gehen. Anhand der vorliegenden Informationen und Beschreibungen eine neue Anwendung aufzusetzen, ist mit Sicherheit deutlich mehr, als man von einem Forum erwarten kann.

Zudem scheint es ja so zu sein, dass du mit Access als Entwickler nur sehr wenig Erfahrung hast, was die Kommunikation zusätzlich erschwert.

Es gibt hier im Forum auch Menschen, die ihre Leistungen professionell und kommerziell anbieten, also schlicht gegen Bezahlung. Du bzw. deine Firma braucht ein komplettes Redesign der alten Anwendung, in der ja nur ein sehr kleiner Bruchteil der gewünschten Funktionälität realisiert ist und zudem viele grundsätzliche Fehler begangen wurden.

Bitte gestatte noch zwei Fragen: wieso hast gerade du den Auftrag bekommen, die Anwendung zu überarbeiten? Und: bist du Praktikant o.ä. oder langjährig angestellt? Sorry für diese offenen Fragen.

Grüße,

crystal
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: Der_Schanko am Oktober 31, 2016, 20:22:15
Hallo crystal,

ich habe mir das mittlerweile schon gedacht.
Hat sich ja relativ schnell herauskristallisiert, dass meine Datenbank im Ganzen viel zu umfangreich ist, um sie in einem Thread zu bearbeiten.

Ich denke dennoch, dass mir das Ganze was gebracht hat. Leider stoße ich aber an die Grenzen meines Wissens. Learning by Doing hat halt auch Grenzen.

Ich bin schon was länger im Unternehmen. Konnte mich da halt schon durch nen paar Excel- und Word-Geschichten "profilieren" und habe deswegen das glückliche Los alle Arbeiten zu bekommen die irgendwie mit Office zu tun haben.
Da ich mit Acces (auf oberster Ebene) auch regelmäßiger Auswertungen usw mache, dachte ich halt, dass ich auch die DB hinbekomme. Bin auch kein Informatiker, eigentlich nur Analyst.

Aber das ist nun alles ziemlich OT.

Ich bedanke mich für alle Hilfe die mir hier geboten wurde. :) :)
Titel: Re: Tabellen ohne Referenz in Access-Formular zusammenführen
Beitrag von: crystal am November 02, 2016, 15:00:56
Hallo Schanko,

danke für deine ehrliche Antwort.
Vielleicht ist es noch nicht zu spät, die Hoffnung aufzugeben, bitte check deine persönlichen Mitteilungen.

Gruß,

crystal