Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Fragebogen mit 4 Items

Begonnen von Carl, September 22, 2026, 15:23:02

⏪ vorheriges - nächstes ⏩

Carl

Hallo,

ich möchte einen Fragebogen in einem ungewöhnlichen Design erstellen, bin mir aber noch nicht über das Datenmodell im Klaren.

(1) Es gibt eine tbl_items mit 100 Items in einem txtfeld, 50 Zeichen.
(2) Jedes Item gehört genau einer von 10 Skalen (A-J) an, die in der tbl_skalen liegen. Pro Skala gibt es also 10 Items.
(3) Die 100 Fragen bestehen einfach nur in der Darbietung von jeweils 4 Items auf einem frm_frage, wobei der Pb genau eines der Items als bevorzugt auswählen soll (wert=1) und eines als abgelehnt (wert= -1). Er wählt also zwischen 4 Optionen eine zum ablehnen und eine zum annehmen aus. Die anderen beiden Items erhalten bei dieser Frage den Wert 0. Die eigentliche Frage ist also unwichtig. Sie ist immer gleich und fordert zum Ausführen dieser Regel auf.
(4) Jedes Item wird insgesamt 4 mal dargeboten, mit anderen Items so kombiniert, dass immer wieder andere Kombinationen entstehen.
(5) Die Kombinationen seien in einer Steuertabelle vorbestimmt abgelegt und soll für jeden Probanden gleich sein. Sie soll zum Beispiel sowas angeben: ,,Frage 1, nimmt Items 4,17,56,78", und so weiter für alle Fragen.

(6)  Gespeichert werden sollen die Summen der Auswahlen eines jeden Items in einer gemeinsamen Tabelle. Es geht also darum, wie oft das Item wie gewählt wurde. Wenn beispielsweise Item1 die Auswahlen (1,0,-1,1) erhalten hat, soll eine 1 gespeichert werden, weil das die Summe der vier Werte ist.

Hintergrund ist, dass die Präferenzen oder Abneigungen gegenüber den einzelnen Items im Kontext zu anderen Items ermittelt werden sollen.

Welches Design ist da zu empfehlen?

Oder wie kann man das frm_frage automatisch so ansteuern, dass es nach einander die in der Steuertabelle angegebenen 100 Kombinationen anzeigt? Sollte das ein Formular werden, mit einem Weiter-Button, der gleichzeitig die Herkunftsbedingung ändert?


Knobbi38

#1
Hallo Carl,

ein mögliches Datenmodell für eine Forced-Choice Befragung in Access:

Sie dürfen in diesem Board keine Dateianhänge sehen.

Das Datenmodell ist bewusst denormalisiert (Design-Pattern für feste Tupel). In dem gezeigten Beziehungsdiagramm sind aus Gründen der Übersichtlichkeit doppeltete Tabellen (bedingt durch Constraints) ausgeblendet. Damit entsprechende Constraints per DDL erstellt werden können, verwendet die DB ausnahmsweise ANSI SQL-92, anstatt dem sonst üblichen ANSI SQL-89.

Für das Design würde ich ein Formular mit vier Optionsgruppen mit zwei Toogle-Buttons (Umschaltflächen) verwenden, was dann auf dem Formuar "Fragebogen" als zwei senkrechte Spalten dargestellt werden könnte. Im Kopf dann die Eingabemöglichkeit oder Anzeige der Probanten-Nummer.
Die Steuerung des Formulars wird dann mit VBA umgesetzt.

Für die Auswertung in Excel müsste man dann noch Import- und Exportroutinen vorsehen und die Matrix für die KONFIGURATIONSTABELLE kann damit direkt in Excel mit entsprechenden Formel erstellt werden.
 
Knobbi38



Carl

Das ist anspruchsvoll. Ich versuche mal, soweit ich komme.

Carl

#3
Sollen Beziehungen zwischen tblItem/ItemID zu tblKonfigFrage/Item1ID zu jedem der 1-4 Felder eingerichtet werden?

Und demnach auch von tblItem/ItemID zu tblAntwort/GewähltPlusItemID UND tblAntwort/GewähltMinusItemID?

Knobbi38

Hallo Carl,

für die passenden DDL-Anweisungen brauche ich noch ein wenig Zeit. Ich melde mich hier nochmal, wenn ich soweit bin.

Knobbi38
 

Knobbi38

#5
Hallo Carl,

so, hier die DDL-Anweisungen für das Erstellen des Schemas mit den Constraints:

-- ===========================================================================
-- DATABASE SCHEMA: MULTI-ITEM PSYCHOLOGICAL TEST (FORCED CHOICE DESIGN)
-- ===========================================================================

-- 1. STEUERTABELLE: Skalen definieren (A-J)
CREATE TABLE tblSkala (
    SkalaID INTEGER CONSTRAINT pkSkala PRIMARY KEY,
    Code TEXT(1) NOT NULL
);

-- 2. STEUERTABELLE: Die 100 Test-Items hinterlegen
CREATE TABLE tblItem (
    ItemID INTEGER CONSTRAINT pkItem PRIMARY KEY,
    SkalaID INTEGER CONSTRAINT fkItemSkala REFERENCES tblSkala(SkalaID),
    ItemText TEXT(50) NOT NULL
);

-- 3. KONFIGURATIONSTABELLE: Festgelegte Fragen-Kombinationen (Fixed-Slot-Design)
-- Verhindert über die CHECK-Constraints, dass ein Item doppelt in einer Frage vorkommt.
CREATE TABLE tblKonfigFrage (
    FrageID INTEGER CONSTRAINT pkKonfigFrage PRIMARY KEY,
    Item1ID INTEGER CONSTRAINT fkFrageItem1 REFERENCES tblItem(ItemID),
    Item2ID INTEGER CONSTRAINT fkFrageItem2 REFERENCES tblItem(ItemID),
    Item3ID INTEGER CONSTRAINT fkFrageItem3 REFERENCES tblItem(ItemID),
    Item4ID INTEGER CONSTRAINT fkFrageItem4 REFERENCES tblItem(ItemID),
    CONSTRAINT chkKeineDuplikateInFrage CHECK (
        Item1ID <> Item2ID AND Item1ID <> Item3ID AND Item1ID <> Item4ID AND
        Item2ID <> Item3ID AND Item2ID <> Item4ID AND
        Item3ID <> Item4ID
    )
);

-- 4. BEWEGUNGSDATEN: Probanden-Stammdaten (AutoWert-Key)
CREATE TABLE tblProband (
    ProbandID COUNTER CONSTRAINT pkProband PRIMARY KEY,
    Name TEXT(100),
    TestDatum DATETIME DEFAULT Now()
);

-- 5. BEWEGUNGSDATEN: Testergebnisse (AutoWert-Key)
-- Speichert pro Frage das gewählte Gewinner- (+1) und Verlierer-Item (-1).
CREATE TABLE tblAntwort (
    AntwortID COUNTER CONSTRAINT pkAntwort PRIMARY KEY,
    ProbandID INTEGER CONSTRAINT fkAntwortProband REFERENCES tblProband(ProbandID) ON DELETE CASCADE,
    FrageID INTEGER CONSTRAINT fkAntwortFrage REFERENCES tblKonfigFrage(FrageID),
    GewaehltPlusItemID INTEGER CONSTRAINT fkAntwortItemPlus REFERENCES tblItem(ItemID),
    GewaehltMinusItemID INTEGER CONSTRAINT fkAntwortItemMinus REFERENCES tblItem(ItemID),
    CONSTRAINT chkPlusMinusUngleich CHECK (GewaehltPlusItemID <> GewaehltMinusItemID)
);

Kopiere jeden Block in die SQL-Entwurfsansicht einer leeren Abfrage und führe diese dann aus. Das wiederholst du für alle Blöcke – natürlich ohne die Kommentare – und danach solltest du in der Beziehungsansicht alle Tabellen mit den Beziehungen sehen.

Diese DDL-Abfragen funktionieren allerdings nur, wenn die DB auf "ANSI-SQL 92" in den Optionen umgestellt worden ist!

Knobbi38
 

Carl

#6
Danke, das hat mir sehr geholfen, Aspekte etwas besser zu verstehen. Ich baue jetzt erstmal die Tabellen etwas aus und mache die Formulare. Hast Du noch Tipps, was ich beachten soll?

Sollen zwischen die Tabellen und die Formularen generell Abfragen gestellt werden oder können die Formulare direkt auf die Tabelle aufsetzen?




Knobbi38

Ich denke, mit einer einfachen Abfrage bzw. Tabelle als Datenherkunft ist es so nicht getan. Es bietet sich in diesem Fall an, einfach ein ungebundenes Formular zu verwenden und die Steuerung komplett in VBA zu implementieren. Die Steuerung selbst ist hierbei eigentlich überschaubar, denn die Vorgaben sind ja ziemlich restriktiv: durchlaufen der Items und speichern der Antworten in tblAntwort und dann noch eventuell ein Formular zum Import-/Export nach Excel.

Knobbi38

Carl

Frage: Ist das so beabsichtigt, dass in den Tabellen tblItem(ItemID), tblSkala(SkalaID) und KonfigFrageID die ID's nicht mit dem Felddatentyp "Autowert" erzeugt wurden?

Skala und Items sind unabhängig, und ändern sich später auch noch mal.

Knobbi38

Ja, dass ist Absicht. Diese IDs werden bereits in Excel vorgegeben und werden von dort importiert, denn auch die Auswertung in Excel muss ja in sich konsistent bleiben.
 
 

Carl

Zitat von: Knobbi38 am September 25, 2026, 13:44:41Ich denke, mit einer einfachen Abfrage bzw. Tabelle als Datenherkunft ist es so nicht getan.


Die Items selber stehen noch nicht fest. Es sollen viel mehr in der tblItem gesammelt werden, als letztendlich bei den Fragen angezeigt werden. Grund: Weil die Items, die sich als gering trennscharf erweisen, nach und nach heraus gefunden und ersetzt werden sollen mittels der Konfiguration der Fragen. Also beispielsweise sollen Items, die jeder Proband präferiert, ersetzt werden durch solche, die nur bestimmte Probanden präferieren. Beispiel mögen Sie eher: "nette und freundliche Menschen" wäre ein unbrauchbares Item, wo hingegen "kompetente aber eigensinnige Fachleute" ggf. trennschärfer wäre.

Das Formular, das auf KonfigFragen aufsetzt, soll 4 Steuerelemente enthalten, die alle sehr viele Items anbieten. Der Entwickler sortiert dann um, bis er ca. 100 Fragen zusammen hat.

Carl

Zitat von: Knobbi38 am September 25, 2026, 13:55:42Ja, dass ist Absicht. Diese IDs werden bereits in Excel vorgegeben und werden von dort importiert, denn auch die Auswertung in Excel muss ja in sich konsistent bleiben.
 
 

Ach verstehe, man vergibt die ID händisch. Wenn man es als Autowert vergeben würde, würde Access bei der Arbeit neue Werte erzwingen.

Macht Ihr den Export automatisiert?

Knobbi38

#12
Konfiguration und Auswertung wird hier in Excel gemacht, das bevorzugte Tool. Von dort werden für jede Befragung die Items, die Reihenfolge der Items, die Tupels usw. übernommen. Dort wird es oft als Matrix dargestellt.

Die Befragung wird dann mit Access durchgeführt. Nach Abschluss werden die Ergebnisse wieder nach Excel exportiert und dann dort entsprechend irgendwelcher Vorgaben ausgewertet.

So hatte ich den Workflow verstanden. Natürlich könnte man auch alles in Access machen, aber eigentlich ist für den Part Konfigurieren/Auswertung bei Befragungen Excel besser geeignet und gängiger.

ZitatEs sollen viel mehr in der tblItem gesammelt werden, als letztendlich bei den Fragen angezeigt werden.
Nur nochmal zum Verständnis: in tblItems stehen nur die für diese Befragung notwendigen 100 Items und werden für jede Befragungsaktion neu aus Excel importiert. Auch die Tupels, welche vier Items zusammen angezeigt werden, werden in Excel konfiguriert. So können beliebig viele Befragungen zusammengestellt und durchgeführt werden, ohne das an dem "Befragungstool" in Access irgendetwas geändert werden müsste. 

Knobbi38