Guten Morgen!
Bei der Arbeit bin ich auf folgendes Problem gestoßen: Wir haben hier eine sehr umfangreiche Datenbank, mit der wir einen Überblick über alle laufenden Projekte behalten. Über ein Formular werden jedem Projekt verschiedene Dokumente zugeordnet und zu jedem Dokument verschiedene Datumsangaben gepflegt (Versanddatum, Eingangsdatum, usw.). So weit, so gut.
Das Problem dabei ist, dass sich ein Dokument häufig auf mehrere Projekte bezieht. Das bedeutet, dass wir im Moment die Informationen zu diesem Dokument (Dokumentenname sowie die Datumsangaben) bei jedem Projekt einzeln eingeben. Das ist natürlich extrem umständlich und zeitaufwändig.
Daher meine Frage: habt ihr einen Vorschlag, wie wir diesen Prozess vereinfachen können? Ich hatte überlegt, eine separate Tabelle anzulegen, in der alle Informationen zu den Dokumenten hinterlegt werden sollen (also der Dokumentenname und alle notwendigen Datumsangaben), weiß aber nicht, wie diese Tabelle in das Formular einbinden kann.
Würde mich sehr freuen, wenn ihr mir weiterhelfen könntet!
Vielen Dank und viele Grüße,
Kathrin
Hi ele.gie,
dein Ansatz einer sparaten Tabelle ist eine sehr gute Idee und die würde ich so auch umsetzen. Diese Tabelle kannst du dann 1:n (Dokumente:Projekte) verknüpfen. Mit einer Abfrage kannst du die Daten dann so verknüpfen, dass du, wenn du diese als Datenquelle nimmst, auch die Dokumentangaben mit einbeziehen kannst.
Greets
Sulu
Hallo Sulu,
schon mal vielen Dank für deine Hilfe. Ich bin deinem Rat gefolgt, habe die Tabelle erstellt und mit der existierenden Projekttabelle verknüpft. Dann habe ich eine Abfrage über beide Tabellen erstellt. Und schon tauchte das erste Problem auf Aus irgendwelchen Gründen zeigt meine Abfrage keine Daten an, obwohl ja bereits jede Menge Daten in den Tabellen gepflegt wurden. Das ist schon ein bisschen merkwürdig, denn ich habe ja keine Auswahlkriterien gesetzt oder ähnliches, sondern lediglich die anzuzeigenden Spalten ausgewählt.
Dann habe ich im Anschluss daran über diese Abfrage ein neues Formular erstellt. Auch das funktionierte soweit problemlos, nur kann ich keine Daten eingeben, denn sobald ich es versuche, kommt die Fehlermeldung ,,Feld konnte nicht aktualisiert werden".
Ich habe so dass Gefühl, dass beide Probleme zusammenhängen. Irgendeine Idee, woran das liegen könnte?
Viele Grüße,
Kathrin
Es könnte evtl. an den Einstellungen der Tabellen zueinander sein.
Erstmal zum Problem, dass du keine Daten siehst: Du könntest da (Doppelklick auf die Beziehung in der Abfrage) einstellen, dass alle Tabellen eingestellt werden (Einer der Punkte 2 oder 3). Vllt. klappt es dann schon.
Greets
Sulu
Halo Sulu,
sooo, das hat schon mal super geklappt, jetzt kann ich immerhin in meiner Abfrage alle gewünschten Daten sehen.
Irgendetwas mache ich aber bei der Anlage des Formulars falsch... Jetzt bekomme ich zwar keine Fehlermeldungen mehr, wenn ich Daten eingeben will, aber das, was ich eigentlich mit dem Umbau erreichen wollte (dass ich die Daten zu jedem Dokument nicht noch einmal separat eingeben muss), klappt leider immer noch nicht.
Vielleicht ein bisschen mehr Info zum Aufbau des Formulars. Es gibt ein "Hauptformular" mit grundlegenden Daten zum Projekt und ein Unterformular, das alle Informationen zur Dokumentation enthält (also welche Dokumente mit welchen Datumsangaben zu diesem Projekt gehören). Dieses Unterformular muss ich also bearbeiten. Ich habe zunächst mit Hilfe des Assistenten ein "ganz normales" Formular auf Basis der Abfrage erstellt, dass alle benötigten Felder enthält. Dieses konnte ich auch problemlos in das Hauptformular einfügen. Wenn ich das Unterformular jetzt verwende und, sagen wir, beim Projekt Nr.1 das Dokument A eintrage, klappt das auch ganz wunderbar.
ABER: wenn ich anschließend Projekt Nr.2 öffne und dort dasselbe Dokument A eintragen will, bekomme ich eine Fehlermeldung, weil dieses Dokument ja bereits existiert und der Dokumentenname als Primärschlüssel fungiert. Das liegt daran, dass Access hier jetzt einen neuen Datensatz anlegen möchte. Genau das will ich aber eben vermeiden, ich möchte, wenn ich den entsprechenden Dokumentennamen eingebe, hier die Daten sehen, die ich bei Projekt 1 beim entsprechenden Dokumentennamen eingetragen habe.
Die Frage ist jetzt also, wie bringe ich Access bei, dass es hier nicht einen neuen Datensatz anlegen sondern den vorhandenen Datensatz mit dem entsprechenden Dokumentennamen anzeigen soll? Irgendwelche Vorschläge?
Auf jeden Fall schon mal vielen Dank für die Hilfe!
Kathrin
Du kannst dem Feld sagen, dass er aus deiner separaten Tabelle die Datensätze vorhalten kann (Im Formularentwurf -> Eigenschaften deines Feldes -> Daten).
Allerdings ist es dann möglich, dass du ein kleines Extra-Formular benötigst, mit dem du den Datensatz (Dokument) ersteinmal anlegst.
Greets
Sulu
Hallo ele.gie
Du möchtest ein Dokument ( Word) in einem Datensatz einfügen. Wenn du wie beschrieben den Dokument als Primärschlüssel bestehend aus Datum und Name verwendest sollte die Eigenschaft des Feldes auf "Ja (Duplikate möglich) " stehen, wenn er wie ich aus deinem Beitrag lese bei der zweiten versuchten Eingabe die Fehlermeldung kommt steht heute bei der Eigenschaft "Ja (Ohne Duplikate)".
Gruß Stefan
hallo stapi,
dein vorschlag hört sich zwar gut an, aber ich weiß nicht, ob das im Sinne von ele.gie ist. Soweit ich den Sinn der Tabelle verstehe soll ein Dokument einmal eingepflegt werden und dann auch neu angelegten oder auch alten Datensätzen zur verfügung stehen. Dann würde es ja nichts bringen, wenn ich ein dokument eingetragen habe und immer wieder neu anlege. Dann sind wir ja auf dem Stand vom Anfang geladet, dass man immer wieder alles neu eingeben muss.
Oder täusche ich mich da in der Funktion der von dir beschriebenen Lösung?
Greets
Sulu
Hallo alle miteinander,
@ Stapi: ich fürchte auch, dass dein Vorschlag mein Problem leider nicht löst... verstehe das nämlich auch so, dass dann meine Fehlermeldung zwar verschwindet, aber nur, weil ich dann jeden Datensatz mehrmals anlege. Und das wollte ich ja gerade vermeiden :-) Aber trotzdem vielen Dank!
@ Sulu: Dein Vorschlag klingt super, aber wie mache ich das? Der Ausdrucks-Generator ist für mich leider ein Buch mit sieben Siegeln... Vielleicht kannst du es mir ja anhand eines Beispiels irgendwie verständlich machen? Wäre echt super, du bist mir nämlich eine große Hilfe :-)
Viele Grüße!
Kathrin
Hallo,
eigentlich ist das ganze Vorhaben ein klassischer Fall für ein Hauptformular (für die Dokumente) ind einem Unterformaular für die Detaildatensätze. Hafo und Ufo sind über die Schlüsselfelder zu verknüpfen. Es wird dann gar keine Abfrage die beide Tabelle verbindet gebraucht. Hafo und Ufo haben nur die zutreffende Tabelle als Datenherkunft.
Es wird auch kein VBA gebraucht.
Auch das Übertragen des Schlüsselfeldes in die Detailtabelle erfolgt automatisch.
In einem solchen Formular können im Hafo neue Projekte angelegt und vorhandene geändert werden sowie gleichzeitig auch neue Detaildatensätze erfasst werden, alles in einem Formular, einfach und übersichtlich.
Hallo ele.gie,
im Anhang eine kleine Demo.mdb. Ich hoffe das hilft weiter. Allerdings habe ich das erweitern um dokumente nicht eingebaut. Das müsstest du in der db noch in der entsprechenden Tabelle machen. Auch Projekte können nicht über Formular angelegt werden.
Ich hoffe, das hilft trotzdem weiter.
Greets
Sulu
[Anhang gelöscht durch Administrator]
Hallo,
nach meiner Auffassung fehlt hier noch eine 3.Tabelle. Das ist eine n:m Beziehung zwischen Dokument und Projekt.
Anbei mein Vorschlag, als n:m Beziehung mit 3 tabellen und einem Hafo und einem Ufo.
In diesem Formular können auch neue Dokumente gleich erfasst werden.
[Anhang gelöscht durch Administrator]
Wieso willst du eine n:m-Beziehnung herstellen? Soweit es mich betrifft, ist das projekt eine eindeutige ID und jede davon steht genau zu einer ID aus der Dokumenttabelle (1). Aber umgedreht kann es mehrere Projekte geben, die zu einem Dokument gehören (m). Also ist das doch eine 1:m-Beziehung und damit eindeutig.
LG
Sulu
Hallo,
wenn Du ein 2.Dokument erfasst für ein Projekt wird noch mal eine Datensatz erfasst mit der gleichen ProjektID und einer anderen Dokumentid, wo ist jetzt die beschreibung des Projekts unterzubringen, zum den Projektnamen. Den kannst Du nicht in dieser Tabelle unterbringen, sonst wäre das redundant, also brauchst Du eine weitere Tabelle zur Beschreibung des Projekts. Damit ist das n:m.
Wenn Du mein Beispiel ansiehst, wird das deutlich.
Stimmt... Habe ich erst anders verstanden. Danke für die Berichtigung und sry ele.gie, dass ich dich falsch verstanden habe.
Also schau dir MzKlMus Datenbank an, die passt besser zu deinen Bedürfnissen.
Greets
Sulu
Hallo Sulu, hallo MzKlMu,
vielen Dank für eure Hilfe und eure Demo-Datenbanken. Im Normalfall gibt es zu jedem Projekt genau zwei Dokumente - ich hatte überlegt, diese in getrennten Tabellen anzulegen (eine pro Dokumententyp), aber die Lösung über eine dritte Tabelle, die Projekte und Dokumente verknüpft ist auch nicht schlecht.
@MzKlMu: deine Demo-Datenbank hilft mir schon mal um einiges weiter, aber ein Problem habe ich noch im Hinblick auf das ufo: Wie schaffe ich es, dass, sobald ich ein Projekt aus der Liste auswähle, mir in einem Feld rechts daneben automatisch der entsprechende Projektname angezeigt wird? Ich hoffe du verstehst, was ich meine, ich habe versucht, es im Anhang auch mal graphisch darzustellen :-)
Wäre echt super, wenn einer von euch mir dabei auch noch helfen könnte!
Vielen Dank und viele Grüße,
Kathrin
[Anhang gelöscht durch Administrator]
Hallo ele.gie,
wie sieht denn die Struktur aus? Also wo findet man den Projektnamen im Verhältnis zur Projektnummer?
Und vllt. hilft dir auch schon meine Dtanebank (s.o.) weiter. Dort wird auch bei jeder Änderung automatisch das Datum des aktuellen Dokuments in die Formularansicht geschrieben.
Greets
Sulu
Hallo Sulu,
ja, das ist genau das, was ich machen möchte - die Frage ist nur: wie hast du das hingekriegt? Kann ich aus deiner Demo-Datenbank leider nicht nachvollziehen.
Gruß,
Kathrin
Hallo Katrin,
eigentlich ist das Beispiel von MzKlMu doch gut so, du wählst eine Projektbezeichnung aus; speicherst aber dazu die ProjektNr!
Im Anhang ein Beispiel zur Ansicht von Projektnr und Projektbezeichnung. Bedenke aber, dass der Projektname richtigerweise in einem ungebundenen Feld nur "dargestellt" und nicht etwa noch einmal gespeichert wird.
Gruß Oma
[Anhang gelöscht durch Administrator]
Zitat von: ele.gie am August 30, 2010, 15:04:35ja, das ist genau das, was ich machen möchte - die Frage ist nur: wie hast du das hingekriegt? Kann ich aus deiner Demo-Datenbank leider nicht nachvollziehen.
Also du kannst das dadurch erreichen, indem du deinem Formular die Datenherkunft angibst und dann den entsprechenden Spaltennamen in dein Feld schreibst.
Dies kann dir auch ermöglichen ganze Listen von Datensätzen anzuzeigen. Also Vorsicht dabei und die Datenfiltern. Schaue dir am besten in meiner demo1.mdb die Formulare im Entwurf und dort die Eigenschaften an.
Gruß
Sulu