Hallo,
ich habe ein Problem mit Access. Es geht darum, dass ich Leistungsbögen erfassen muss:
- ca. 20 Leistungen, von denen jeder Patient mehrere in Anspruch genommen haben kann
- der (jeder dieser Leistungen) zugrundeliegende Betrag unterscheidet sich nun danach, ob der der Patient entweder privat
oder pflichtversichert ist. Also zum Beispiel:
-------------------------------------
Fritz Mustermann
Datum: 12.10.1999
Versicherungsart: privat
("X" = Leistung wurde beansprucht)
Leistung 1: X
Leistung 2:
Leistung 3: X
Leistung 4: X
Leistung 5:
.
.
.
Leistung 20: X
-------------------------------------
In der obigen Form werden die Daten in einer Tabelle ("Erfassungstabelle") mittels eines Formulars erfasst.
Das Feld "Name" war einfach Text, Datum natürlich Datum, Versicherungsart auch wieder Text, die einzelnen Leistungen
"Ja/Nein".
Nun muss ich erreichen, dass ich die Summe der Beträge der in Anspruch genommen Leistungen pro Patient angezeigt bekomme. Ich
habe nun dazu eine zweite Tabelle ("Wertetabelle") gemacht, die folgendermaßen aussieht:
Vers_art|Betrag_Leistung1|Betrag_Leistung2|...|Betrag_Leistung20
----------------------------------------------------------------
pflicht | 12,00 DM| 8,00 DM|...| 17,00 DM
----------------------------------------------------------------
privat | 19,00 DM| 14,00 DM|...| 26,00 DM
Dann habe ich zwischen den beiden Tabellen eine Beziehung hergestellt, in dem ich aus "Erfassungstabelle" das Feld
"Vers_art" auf "Vers_art" in "Wertetabelle" gezogen habe.
Nun erstellte ich eine Abfrage ("Abfrage1") , die alle Felder beider Tabellen enthält. Danach erstellte ich ein Formular
("Abfrageformular"), dass alle Felder von "Abfrage1" enthält.
Das ganze hat auch soweit prima funktioniert, d.h. es wurde mir in diesem Abfrageformular jeder Patient mit den in Anspruch genommenen Leistungen und den jeweils dazugehörigen Einzelbeträgen der Leistungen angezeigt. Auch die Abhängigkeit der Beträge von der Versicherungsart klappte.
Das Problem ist nun, die Beträge der in Anspruch genommen Leistungen zu addieren und als Summe anzuzeigen. Ich habe versucht,
ein neues Textfeld im Abfrageformular zu erzeugen, dass als Steuerelementinhalt enthält:
=Summe([Abfrage1]![Betrag_Leistung1]+[Abfrage1]![Betrag_Leistung2]+...+[Abfrage1]![Betrag_Leistung20])
Das Textfeld habe ich (wie auch die Felder Betrag_Leistung1 bis Betrag_Leistung20 in der Wertetabelle) als Währung (DM)
definiert. In der Formularansicht zeigt mir dieses Textfeld aber nur "#Fehler" an.
Was hab ich da falsch gemacht? Ich weiss nun einfach nicht mehr weiter.
Tausend Dank für Eure Hilfe,
MfG,
Robert Klerx
robert.klerx@mz-ac.de
Office - Word, Excel und Co. 9.753 Themen, 41.598 Beiträge
>Was hab ich da falsch gemacht?
Du hast den klassischen Anfaengerfehler gemacht und ACCESS, was eine Datenbank ist, wie EXCEL bedient.
so, wie es jetzt ist, bekommst du die Leistungssume nur unter erheblichen Muehen heraus.
Heute Abend nicht mehr, aber wenn ich morgen etwas zeit finde, droesele ich dein Tabellen-Design auseinander, dann zweige ich dir, wie du bei sowas immer an alle Daten kommst.
Du wirst aber nicht umhin kommen, dich bei so einer komplexen Sache mit dem Relationenmodell und dem Entity-Relationship Modell, also mit relationaler Datenbanktheorie, zu befassen, sowie mit dem Thema "Normalisierung". Keine Angst, es nicht wirklich kompliziert, und ich kenne auch ein Buch, in dem es sehr anschaulich und leicht verdaulich beschrieben ist:
"ACCESS 97 - Das Handbuch" bzw "ACCESS 2000 - Das handbuch" aus dem Verlag "Microsoft Press" -die Buecher wurden von den Access-Profis Ralf Albrecht und Natascha Nicol geschrieben.
Volker
Ich glaub, ich sollte mir wirklich mal langsam ein vernünftiges Buch anschaffen um das mal in den Kopf zu kriegen ;-)
Danke für deine Antwort, wäre toll wenn du mir mit dem Design noch ein wenig helfen könntest.
Grüße,
Robert
Wenn du mir sagst, was du machen moechtest....
Volker
Robert, so geht es nicht!
Du hast eine Beziehung, die wie folgt aussieht:
Der Person in der Erfassungstabelle werden mehrere Beträge ind er Wertetabelle zugeordnet. Das heißt 1 Person hat viele Möglichkeiten, nämlich n Möglichkeiten einer Zuordnung von Beträgen. dies ist eine 1:n Beziehung, die auch in ACCESS dargestellt werden muss! Das hast Du jedoch nicht getan und kommst sofort ins Schleudern.
Lösungsansatz:
1. Deine Tabelle Erfassungstabelle wird um ein Feld erweitert. Dies nennst Du Laufende Nummer (LN) und gibst ihm die Eigenschaft Autowert. Zusätzlich bekommt es die Eigenschaft Primärschlüssel. Wenn du dieses Feld einrichtest und hast noch keinen Primärschlüssel definiert, wird diesem Feld von Access automatisch der Primärschlüssel zu geordnet.
2. Deine Tabelle Wertetabelle erhält ein weiteres Feld, das Du ebenfalls LN benennst. Als Eigenschaft muss dieses Feld long integer haben. Es darf nicht als Primärschlüssel gekennzeichnet sein!!
3. Du rufst unter Extras die Option Beziehungen auf. Dann klickst Du mit der rechten Maustaste und klickst auf Tabelle anzeigen. Du klickst beide Tabellen an und siehst sie auf dem Schirm. Nun pass auf.
Du fährst mit dem Mauszeiger auf das fett angezeigte Feld LN in der Tabelle Erfassungstabelle (der Mauszeiger wird zu einer schmlane Zelle) hälst die Taste gedrückt und ziehst sie zum gleichnamigen Feld in der Tabelle Wertetabelle. Es muss eine Verbindungslinie aufgebaut werden, die auf der Erfassungstabelle eine 1 und auf der Wertetabellenseite ein Unendlichzeichen zeigt.
Wenn du das fertig gebracht hast, freue Dich, melde Dich und ich schreibe Dir, wie es weiter geht!
Gruß
Michael