Hallo zusammen,
ich bin in Access leider völliger Neuling, muss aber in Access eine Datenbank erstellen, die für mich leider nicht so einfach ist. Habe zwar schon diverse Bücher, Tutorials und was weiß ich nicht noch alles durchgearbeitet, aber eins kann man damit leider nicht lernen: Erfahung im Datenbankdesign. Ich hab zwar auch schon einige Themen hierzu gefunden, die haben mir zwar bei vielen schon wietergeholfen, aber mein Problem ist noch nicth wirklich geklärt.
Die Datenbank soll Grundlage für eine Befragung, sprich einen Fragebogens sein. Die Befragung wird intern und nicht anonym durchgeführt. Der Teil der Datenbank mit dem ich die Befragten Personen verwalte, hab ich hinbekommen, aber der Fragebogen mit den Fragen und vor allem den Antworten dazu bereitet mir leider große Probleme.
In dem Fragebogen wird es "nur" offene und halboffene Fragen (und hier soll immer Mehrfachnennung möglich sein) geben. Des weiteren können die Fragen noch dahingehen unterschieden werden, ob sie bewertet werden oder nicht. Vielleicht versuch ich mal kurz den Aufbau kurz darzustellen und geb da dann auch grad ein fiktives Beispiel jeweils zu den Fragen.
(http://s1.directupload.net/images/111001/temp/xozifrjj.jpg) (http://s1.directupload.net/file/d/2664/xozifrjj_jpg.htm)
Mein Problem ist jetzt, dass ich nicht genau weiß, wie ich das ganz in Tabellen in meiner Datenbank aufbaue?
Ich weiß z.B. auf folgende Fragen keine Antwort:
- Nutze ich eine Tabelle für alle Fragen? Oder nutze ich eine Tabelle für alle "Allgemeinen Fragen" und eine für alle "bewerteten Fragen"? Oder erstelle ich jeweils für alle "offenen Allgemeinen Fragen" eine Tabelle, für alle "halboffenen Allgemeinen Fragen" eine Tabelle, ebnso dann auch für die bewerteten Fragen zwei entsprechende Tabellen? Oder Fasse ich alle offenen Fragen in einer Tabelle und alle halboffenen Fragen in einer Tabelle zusammen? Oder gar für jede Frage eine eigene Tabelle? Oder muss ich da ganz anders rangehen?
- Die gleichen Fragen beschäftigen mich auch mit den Antworten, aber die möchte ich jetzt nicht extra aufzählen.
- Wie handhabe ich das mit den halboffenen Fragen. Erstelle ich hier für jede halboffene Frage eine Tabelle, die die Antwortmöglichkeiten enthält? Wie bewerkstellige ich die Mehrfachantworten? Wie handhabe ich das mit dem "Zusatzfeld "sonstiges"? Und wie könnte ich es abbilden, falls nach eine Aufzählung gefragt ist, bei der die Anzahl der Antwortmöglichkeiten im Voraus gar nicht bekannt sind?
Das sind zwar ziemlich viele Fragen, aber ich hoffe trotzdem, dass mir hier jemand weiterhelfen kann und will. Im Voraus schonmal rechtherzlichen Dank.
Hallo,
anbei ein Ausschnitt des Beziehungsfensters einer Fragebogen-DB , die ich mal erstellt habe.
Die relevanten TAbellen sind mit tblFBxxx benamst:
tblFB: Fragebögenfragen
tblFBE: Ergebnisse zu den einzelnen Fragen.
tblFBEM: Zuordnung eines Umfragenden zu einem Fragenbogenkomplex.
tblFBEA: Adresse enes Befragten (
Mehrfachauswahl/Einzelauswahl-Ergebnisse (Unterschieden mit Feld FB_Kombinatorisch) werden als Binärkombinaton in FBE_Itemwert gespeichert. Die entsprechende Viaualisierung findet in einem dazugehörenden Formular statt. Verbale/beschreibende Antworten werden in FBE_Memo abgelegt.
Nimm das nur als Beispiel. Wahrscheinlich sind weitere spezifische Tabellenfelder nötig und manche Tabellen sind überflüssig (tblFBEA).
[Anhang gelöscht durch Administrator]
Schonmal vielen vielen Dank für die Hilfe. Ich werde mir diesen Ausschnitt mal in Ruhe anschauen und versuchen nachzuvollziehen und dann auf mein Beispiel zu übertragen.
Hallo nochmal,
ich hab mir jetzt dein Beispiel mal angeschaut und schwanke zwischen, ich habs verstanden und dann wieder, dass ich es doch nicht verstanden habe.
Ich hab jetzt mal die Datenbank soweit umgesetzt, wie ich mir sicher war. Nur wie ich das jetzt mit den Antworten mache, weiß ich leider immer noch. Vor allem die Unterscheidung zwischen den Antworten zu offenen Fragen und den Antwortmöglichkeiten bei einer halboffenen Frage. Ich hab meine Beispiel-Datei mal unter folgenden Link hochgeladen.
http://www.fileuploadx.de/45672 (http://www.fileuploadx.de/45672)
vielleicht schaut ja mal jemand rein und kann mir den entscheidenden und erleuchteten Hinweis geben, wie das mit den Antworten bewerkstellige.
Hinweise auf weitere Fehler (falls welche in der Datei sind) bin ich dankbar, wenn ich darauf hingewisen werde.
Auch hier wieder im Voraus: Vielen DANK!
Hallo,
wer hat schon Lust, 90 Sekunden tatenlos zu warten bis er etwas herunterladen darf, was er ja gar nicht braucht.
Lade also besser hier im Forum direkt hoch und verzichte zukünftig auf solche Filehoster, die meisten laden sich da sowieo nichts herunter. Du tust Dir einen Gefallen.
@MzKlMu
Vielen Dank für den Hinweis, ich werd dann mal schauen, woe und wie ich hier die Datei hochladen kann und schreib dann nochmal!
Hier nun der Upload der Datei direkt im Forum. Sorry, die Möglichkeit habe ich vorhin nicht gesehen!
[Anhang gelöscht durch Administrator]
Hallo,
naja, von "umgesetzt" kann man bei den 3 Tabellen noch nicht reden....
Wo sind die Fragen und die Fragestruktur hinterlegt?
Was meinst Du denn mit " offene und halboffene Fragen " ? M. E. sind das ein Auswerte-Ergebnis (wenn "halboffen" die teilweise Beantwortung einer Frage bedeutet) und hat erst mal dem Aufstellen einer Fragebogenstruktur (Welche Fragen gibt es, bzw. wie heißen die Fragen (Nummerirung und Bezeichnung/Text, ist eine Frage Muliti-choise oder Single-choise, hat eine Frage weitergehende Textantworten, etc..) nichts zu tun.
Die "teilweise" Beantwortung einer Frage muss auch erst mal definiert werden, was es eigentlich bedeutet, z. B. bei einer Muliti-choise-Frage
Hallo,
und ergänzend noch ein dringenmder Rat:
Verzichte unbedingt auf Nachschlagefelder in den Tabellen direkt, verwende ganz normale Felder des entsprechenden Datentyps.
Die Nachschlagefelder sind von Übel und verhindern den sauberen Aufbau einer DB.
In Formularen kannst Du diese bedenkien los verwenden, aber nur dort.
Vielen Dank für Eure Beiträge.
@DF6GL: Unter "Offene Fragen" versteht man Fragen bei denen eine Antwort frei formuliert wird und unter eine "halboffenen Frage" gibt es Antwortmöglichkeiten, die "man ankreuzen/auswählen" kann, des weiteren gibt es da dann aber auch eine Möglichkeit, die offen ist, in die man selbst was eintragen kann, oft steht da dann "Sonstiges: und hier kann dann das formuliert werden". In meinen Fall soll da immer "Multiple Choise" (Mehrfachnennungen) sein.
Die Fragen hab ich in der Tabelle "tblFragen" hinterlegt", sind aber nur 4 beispielhafte Fragen.
@NtKlMU: Danke für den Hinweis mit den Nachschlagefeldern. Lös ich das dann "nur" über die Beziehung (mit referenzieller Integrität)?
Hallo,
ZitatLös ich das dann "nur" über die Beziehung (mit referenzieller Integrität)?
Was willst Du denn mit den Nachschlagefeldern lösen, da gibt es nichts zu lösen. Die Nachschlagefelder sind ja unabhängig von den Beziehungen, die immer eingestellt (mit RI) werden sollten.
Auch für die n-Seite sind ganz normale Felder zu verwenden. In diesem Fall Zahl, LongInteger, wie Du es hast.
Zu den Nachschlagefeldern:
Die Nachteile von Nachschlagefeldern (http://dbwiki.net/wiki/Access_Anf%C3%A4nger:_Die_Nachteile_von_Nachschlagefeldern)
In Formularen sind die Nachschlagefelder (Kombinationsfelder) kein Problem.
@MzKlMu: Vielen Dank für den Link und den Hinweis, dass ich da gedanktlich total auf dem falschen Weg war. Ich werd dann alle "Nachschlagefelder" entfernen.
Hallo,
ok, mit den "halboffenen" Fragen...
Das ist dann ein Attribut zu einer Frage, das die Fragestruktur definiert.
In meinen Tabellen wären das die Felder FB_Kombinatorisch (Muliti-Choise/Single-choise) und FB_Textaktiv (FBE_Memo aktiviert/nicht aktiviert)
Hallo,
ich werde mich nochmal hinsetzen und mein gesamtes Datenbankdesign überarbeiten, denn mir wurde einiges jetzt etwas klarer, auch wenn noch nicht alles, aber ich geb die Hoffnung nicht auf :-) Eure Beiträge helfen mir jedenfalls auf dem Weg dahin.
@DF6GL: Stehen bei Dir in Deiner Datenbank alle Antworten dann in der Tabelle "tblFBE"?
Hallo,
ja...
Ich hab jetzt nochmal das Datenbankdesign neu erstellt, sprich ich hab das Blatt mit dem ich bisher gearbeitet habe einfach mal weggeworfen und ganz von vorne begonnen. Fürs DB-Design verwende ich ein ERM.
Bis zu der Tabelle "Fragen" komm ich da ganz gut durch und bin mir auch sicher, dass da keine gravierenden Fehler drin sind (ich will aber Fehler nicht ausschließen ;)).
Jetzt kommt aber wieder mein "Antworten" Problem.
Ich hab ja zwei Arten von Fragen. Dieser unterscheide ich in der Tabelle "Fragen" durch das Feld "Frageart Referenz", das eine Beziehung zur Tabelle "Fragenarten" hat. Die Art der Antwort hängt ja jetzt sowohl von der Frage an sich ab und um welche Frage es sich handel:
- Bei einer offenen Frage, besteht die Antwort aus einem frei zu formulierenden Text ODER einer Zahl, des Weiteren gibt es Feld in dem die zu vergebenden Punkte drin stehen.
- Bei einer halboffenen Frage, soll ich bei der Antwort aus vorgegebenen Antwortmöglichkeiten, mehrere Auswählen können (oder halt nur eine, aber es besteht immer die Möglichkeit mehrere auszuwählen). Bei den Antwortmöglichkeiten, sind die jeweiligen zu vergebdenen Punkte schon vorher festgelegt, sie sind sozusagen Konstant (vergleichbar mit der Gewichtung einer Frage). Da es sich aber um eine halboffene Frage handelt gibt es hier die Möglichkeit eine Antwortmöglichkeit frei zu formulieren, bei der ich dann auch die Punkte selbst eintragen kann
Und hier liegt mein Hauptproblem. Ich weiss nicht wie ich dies abbilden kann.
In dem Zusammenhang stellt sich mir dann auch die Frage wie ich die "Notizen" zu eine Frage abbilde. Hier spielt es ja keine Rolle, um welche Frageart es sich handelt. Denn zu jeder Frage gibt es ein Notizfeld, in dem beim Ausfüllen des Fragebogens, Notizen [Memo-Feld] eingetragen werden können, die nicht direkt zur Beantwortung der Frage dienen, aber trotzdem von Interesse sein könnten. Diese soll denn in das Notizfeld eingetragen werden.
Zur Veranschaulichung hab ich hier mein ERM als Bilddatei. Die "Antworten" und "Notizen" sind noch nicht darin enthalten, da ich ja nicht weiß, wie.
(http://s14.directupload.net/images/111002/temp/yeaqnegb.png) (http://s14.directupload.net/file/d/2665/yeaqnegb_png.htm)
(Sorry, dass die Bilddatei bei einem Hoster und nicht hier hochgeladen wurde, aber die Datei hat mehr als 200kb)Auch hier bin ich wie immer sehr dankbar um Hilfestellungen.
Hallo,
in dem ERM hab ich gerade einen Fehler entdeckt. Und zwar ist die Beziehung "Kontaktpersonen" -> "Firmen" eine n:1 Beziehung und keine m:n-Beziehung, wie in dem Bild dargestellt. Ausserdem fehlt in der Tabelle "Kontaktpersonen" eine Refernzfeld auf die Tabelle "Firmen".
Hallo,
1)
Nix "oder" . Zwei Felder, einer für den Text, eines für numerische Werte.
Es muss ein Tabellenfeld (in der Antwort-Tabelle (tblFBE)) geben, in das die "schriftliche" Antwort eingetragen werden kann (bei mir das Memofeld). Die zu vergebenden Punkte (Bewertung) würde ich in einer weiteren Nachschlagetabelle hinterlegen und für spätere Auswertungen heranziehen.
2)
Wie schon gesagt, hab ich das so gelöst, dass in einem Zahl-Feld (FBE_Item) eine den "durchnumerierten" (mit fortlaufender Zahl bezifferten) Auswahlpunkten entsprechender Wert (durch eine Berechnung/Funktion)eingetragen wird. Bei Single-choise die 2-er Potenz der Auswahlnummer, bei Multi-Choise die Summe der 2-er Potenzen der ausgewählten Punkte:
Auswahl 3: 2^3=8
Auswahl 1 und 3: 2^1 + 2^3=9
Spätere Auswertungen/Bewertungen "dekodieren" diese gespeicherten Zahlen anhand der Auswahlmöglichkeits-Definition (Feld FB_kombinatorisch) dieser Frage wieder.
Die "Antwortmöglichkeiten" werden bei der Erstellung einer Fragestruktur insofern angegeben, als dass die jeweilige Antwortanzahl einer Frage für jede Frage festgelegt wird.
Bewertungspunkte werden nirgends selber eingetragen, das Eintragen der Antworten beschränkt sich auf das ein-oder mehrfache Anklicken der Auswahl-(Options oder Kontrollkästchen) Felder und das Ausfüllen des Memofeldes im entspr. aufgebauten Formular.
" wie ich die "Notizen" zu eine Frage abbilde"
na, einfach ein Textfeld in der Tabelle einbauen (und später im Formular natürlich anzeigen, siehe "Memo-Feld", Kann ja auch ein normales Textfeld sein, wenn 255 Zeichen ausreichen.)
btw: In Tabellen stehen nur Werte. Die passende Daten-Eingabeform (Anklicken von Optionsfeldern für die Multi/Single-Choise-Auswahl, und/oder Texteingabe in normale Textfelder/Memofelder) wird mittels FORMUALRE realisiert.
Hallo nochmal,
ich hab glaube ich eine Lösung für mein Problem. Bin mir nur unsicher ob es funktioniert (muss es noch mit Daten testen), aber vor allem bin ich mir unsicher, ob das korrekt ist. Anbei der "entscheidene" Ausschnitt aus meinem Modell.
tblKategorien:
- hier stehen die verschiedenen Kategorien drin
tblFragentypen:
- hier stehen die verschiedenen Fragentypen drin (offen, halboffen und geschlossen)
tblFragen:
- hier steht die Fragen drin
- Mit der Referenz zur tblKategorie leg ich fest, zu welcher Kategorie die Frage gehört
- Mit der Referenz zur tblFragentypen, leg ich fest um welchen Fragentyp es sich bei der Frage handelt.
tblAnworten:
- in der tblAntworten stehen meine Vorabantworten drin (auf meine Fragen soll es eine Vorabantwort
- die immer frei formuliert wird) geben und eine eigentliche Antwort
tblAntwortmöglichkeiten:
- enthält die Antwortmöglichkeiten für die geschlossenen bzw, halboffenen Antworten
- durch die Referenz zur tblFragen leg ich fest, zu welche Frage die Antwortmöglichkeit gehört
Viele Grüße,
[Anhang gelöscht durch Administrator]
Kurze, aber wichtig Anmekung zu meinem Lösungsvorschlag.
Mir ist selbst aufgefallen, dass da noch ein böser Fehler drin ist, denn ich darf keine "Kreisbeziehung" bilden. Hab auch schon ne Lösungsidee hierfür, aber die kann ich aus Zeitgründen erst gegen Abend mal posten.
Hallo,
ich wollte nochmale meinen neustens Lösungsversuch zur Diskussion stellen. Nachdem ich zwischenzeitlich der Meinung war, ein richtiges Datenbankmodell entwickelt zu haben, um dann festzustellen, dass dies doch nicht so ist, bin ich nun total verwirrt, verzeifelt und übermüdet.
Hier nun der letzte Stand meiner Lösung, bei der mir bis jetzt kein Fehler aufgefallen ist, nur probiet hab ich noch nicht, ob das so passt.
Hier mal das dazugehörige ERM (in Access muss ich es noch umsetzen).
(http://s14.directupload.net/images/111006/temp/wrpbh8fg.png) (http://s14.directupload.net/file/d/2669/wrpbh8fg_png.htm)
Nochmals Danke für Eure Geduld und (weitere) Hilfe/Tipps/Kommentar.
Gruß
Ich hab mitlerweilde mein Datenbankmodell erstellt. Ob es von der Datenbanktheorie her perfekt ist weiß ich nicht, aber es ist praktikabel und handhabbar.
Jetzt gehts also an die konkrete Realisierung.
(Und da gibt es gleich ne Frage in einem extrea Thread, weil die hier nicht hinpasst)
Nochmal an alle, die mir hier geantwortet und somit weitergeholfen haben.
Gruß
Hallo nochmals,
nachdem ich gedacht hatte ich hätte eine Lösung, dank Eurer Hilfe, bin ich jetzt beim erstellen von Abfragen und Formularen stutzig geworden und wollte dann hier doch nochmal nach Hilfe fragen.
Wobei es jetzt nicht mehr um die Unterscheidung in offene, geschlossene Fragen usw. geht. Eigentlich ist es fast ein grundlegendes Problem zu dier Thematik (die hätt ich mal vor allem anderen lösen sollen ich weiß)
Ich hab eine Tabelle Persone, in der ich alle Personen erfasse, die ich befrage. Es handelt sich dabei nicht um eine anonyme Umfrage, sondern ich muss die Antworten den Personen zuordnen können.
-> tblPersonen (perID; perName;)
Ich möchte alle Personen die gleichen Fragen stellen, daher habe ich eine Tabelle Fragen (sozusagen einen Fragenkatalog), der alle Fragen (und deren Nummer) enthält.
-> tblFragen(fraID;frage)
Nun wollte ich alle Antworten in einer Tabelle Antworten speichern. Hier hab ich dann jeweiles eine Referenz auf die tblPersonen und eine auf die Fragen und speicher die gegebene Antwort ab.
-> tblAntworten(antID;antperRef;antfraRef;antWort)
Die Beziehung zwischen den Tabellen würde wie folgt aussehen: tblPersonen 1:N tblAntworten N:1 tblFragen
Ich hab mir überlegt, dass ich so ja jeder Antwort die entsprechende Frage und Person zuordnen kann. Ich muss aber die Fragen auch nur einmal in der tblFragen erfassen und kann sie dann jeder Person stellen.
Ist dieser Gedankengang denn richtig?
Zuerst hatte ich folgende Überlegung, die ich verworfen hatte und jetzt wieder drüber nachdenke: tblPersonen 1:N Fragen 1:N Antworten, aber da müsste ich doch die Fragen jeweils neu eingeben für jede Person, oder? (die Referenzen wären dann natürlich entsprechend und nicht mehr wie oben dargestellt).
Von der Überlegung (auch auf Papier) halte ich die erste Lösung für richtig, aber ich scheitere daran, ein gescheites Formular zu bauen, das dem Fragebogen entspricht. Auf dem Formular sollte oben die Person einmal stehen, die den Bogen ausfüllt (Ein Wert aus der tblPersonen), alle Fragen aus der tblFragen und ein Antwortfeld (tblAntworten) das mit der Antwort befüllt wir, die die Person auf die Frage gibt bzw, wenn Sie schon eine Antwort gegeben hat, dass man diese da sehen kann.
Mit welcher der beiden oben genannten Versionen komm ich denn eher an mein Ziel? Oder muss ich das ganze ganz anders aufbauen?
WIe immer bin ich sehr dankbar für Ratschläge, Tipps, Hilfestellungen die mir bei meiner Problemlösung helfen.
Gruß