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