Hallo an die nette Access Gemeinschaft,
ich habe eine Tabelle mit Daten. Dazu habe ich ein Formular zur Eingabe der Datensätze. Zusätzlich habe ich ein Formular erstellt zur Darstellung der Gesamten Datensätze als Enslosformular. Jetzt zu meinem Problem.
Ich möchte aus diesem Formular über ein Textfeld eine Gewisse Anzahl(z.B. 5) auswählen und diese sollen Zufällig aus dem Gesamten Datensätzen gewählt werden. Diese möchte ich dann ausdrucken.
Leider steh ich da komplett auf dem Schlauch.
Als Hintergrundidee: Möchte eine Datenbank von Lernerfolgskontrollen anlegen. Jedes Thema der LEK ist eine neue Tabelle. Das bedeutet das eine Tabelle aus Frage, Antwort A, Antwort B..... usw. anders gehts leider nicht wegen dem Autowert Feld.
In der Anlage ist mein Anfangsversuch.
Kann mir jemand einen Rat geben?
Danke
Gruß Marco
[Anhang gelöscht durch Administrator]
Ich kann deine DB nicht öffnen, hab halt noch n altest system,
ZitatJedes Thema der LEK ist eine neue Tabelle. Das bedeutet das eine Tabelle aus Frage, Antwort A, Antwort B..... usw
Ich glaube das hört sich nicht gut an, du solltest deine datenstrucktur nocheinmal überdenken. Eine Tabelle LEK, eine Tabelle Fragen und eine Tabelle Antworten sollten reichen glaub ich.
Zitatanders gehts leider nicht wegen dem Autowert Feld.
Das verstehe ich jetzt aber nicht. Was hat der Autowert damit zu tun? Ich hoffe du meinst jetzt nicht wegen der Zufallsgenerierung? Dafür wird nicht zwangsläufig ein Autowert benötigt, durch die unterschiedlichen Längen der Fragen/Antworten lassen sich mittels RND/ZZG auch "Zufälle" generieren.
Aber die Tage kommen bestimmt die Spezis wie Hondo, database etc vorbei die haben a) bestimmt moderne Systeme als ich und sind b) in der Datenbankstruckturierung fitter als ich.
Hallo,
deine Abfrage dafür sieht so aus:
SELECT Top 5 A.IDFeld, A.*
FROM Tabelle1 As A
ORDER BY Rnd([A.IDFeld]) DESC;
Gruß Andreas
Hallo,
das Thema LEK ist ein recht komplexes - mitunter!
Du musst dir als Erstes darüber klar sein, wie diese LEK aufgebaut sein soll.
Wie werden die Fragen ausgewählt, sind diese in Themenkreisen geordnet, werden Fragen nach Zufallsprizip ausgewählt, ist der Test ein Multiple Choice-Test oder gibt es zu jeder Frage nur eine Antwort.
Wie wird bewertet - ohne Bewertungsschema keine Kontrollmöglichkeit ... uvm.
Erst dann, wenn diese Fragen und die zu erfassenden Daten bekannt sind, gehst du daran dein DATENMODELL zu bauen.
Wenn dieses richtig, fehlerfrei und nachvollziehbar besteht solltest du an die Erstellung von Formularen, Abfragen udgl. denken.
Ich habe unten ein SEHR vereinfachtes Modell von Tabellen in deine DB eingefügt - sieh dir das mal an...
Die Frage um die Auswahlmöglichkeit hat Andreas ja schon beantwortet.
Schönen Sonntag
[Anhang gelöscht durch Administrator]
Hallo und schönen Sonntag,
danke für die Antworten :)
@database: Besten Dank für deine Überlegungen. Ja so ähnlich sollte sich Anfangs meine Datenbank aufbauen. Jedoch ist das zu komplex und meine Kenntnisse reichen dafür bei weitem nicht aus. Deshalb muss ich eine vereinfachte Variante machen und ich habe mich schon sehr schwer getan. Da das ja mit der einen Datenbank nicht hingehauen hat mit der Zufallsgenerierung muss ich jetzt die andere Variante bauen. Also soll es so sein, dass der Dozent die Datenbank öffnet und ein Anfangsbildschirm sieht. Sich entscheiden kann per Button was er machen möchte. Neue Fragen eingeben, Gesamtanzahl Fragen ansehen und eine LEK zusammenstellen lassen per Zufallsklick. Dafür habe ich Tabellen erstellt für jedes Thema und dazugehörig für jedes Thema ein Eingabeformular. So habe ich sichergestellt das jedes Themengebiet eine eigene ID mit Autowert hat.
Mein Problem ist jetzt nur, ich weiß nicht weiter. Ich gebe in meinem Gesamtansichtsformular eines Themengebietes eine Anzahl über ein Textfeld ein. Dann mit einem Button übergeben das sich ein neues Formular öffnet mit der Anzahl Fragen aus der Gesamtanzahl Fragen des Themengebietes. Dieses kann ich dann Ausdrucken.
Muss ich jetzt den Code:
SELECT Top 5 A.IDFeld, A.*
FROM Tabelle1 As A
ORDER BY Rnd([A.IDFeld]) DESC;
in dem neuen Formular eingeben(Ereignis:Beim Laden)? Oder muss ich eine Abfrage starten?
Danke für die Antworten.
Gruß Marco
Hallo,
ich verfolge deine Fragen nun doch schon seit deinem ersten Beitrag ...
ZitatDafür habe ich Tabellen erstellt für jedes Thema ...
So läuft das nicht, ... sorry, ich reihe das in die Kategorie 'grober Unfug'! ;)
und das Ergebnis ist:
ZitatMein Problem ist jetzt nur, ich weiß nicht weiter
Du kommst so auch auf keinen grünen Zweig.
Auch die Änderung der Tabellenstruktur (wie es bereits erfolgt ist) wärend der Entwicklung ist GIFT.
Es macht m.E. wenig Sinn, wenn du in einer derart verfahrenen Situation beginnst Formulare mit VBA-Code zu besiedeln, wenn das Fundament, das Datenmodell, die Tabellenstruktur nicht stimmt!
Ich weiß schon ... wenn man mal begonnen hat möchte man rasch ein Ergebnis sehen.
Leider - und da bist du sicher nicht alleine damit - kommt man nicht recht weit, wenn die Grundagen nicht passen.
Zitateine LEK zusammenstellen lassen per Zufallsklick...
Alles klar, so soll es ja auch sein - nur nach deinem Schema gehts nicht.
Dein Dozent sollte die Möglichkeit haben, einen Test automatisch generieren zu lassen indem er lediglich die Anzahl der Fragen bekannt gibt
oder er wählt bestimmte Themengebiete aus Kategorien (sofern die Fragen Kategorisiert sind) und gibt selbst die Themen und Fragen durch anklicken vor oder, ...
Werden die abgelieferten Ergbnisse dann elektronisch verarbeitet oder nicht ....?
ZitatDann mit einem Button übergeben das sich ein neues Formular öffnet mit der Anzahl Fragen ...
Nein, die ausgewählten Fragen sollten in einem formatierten Bericht dargestellt werden, der dann ausgedruckt werden kann.
ZitatJedoch ist das zu komplex und meine Kenntnisse reichen dafür bei weitem nicht aus
Bitte, dagegen gibt es eine absolut hilfreiche Medizin - LESEN, LESEN, LESEN, PROBIEREN und VIEL GEDULD!
So findest z.B. in der Linkliste der Signatur von DF6GL in den Links #1 und #1a einfach zu verstehende Erklärungen zur Tabellengestaltung und zum Datenbankaufbau.
Ebenso findest du auf www.dbwiki.net (http://www.dbwiki.net) unter der Kategorie 'Access Grundlagen' viele wertvolle Tips und Hinweise.
Tja und dann - gibt es noch dieses Forum - und du wärst nicht der Erste, der die Erstellung von einfachen Datenbanken hier online gelernt hätte. ;) ;D ::)
Bitte dies alles nicht als negative Kritik an dir zu sehen - sind gut gemeinte Ratschläge um dir tiefere 'Verfrustung' zu ersparen! ;)
Wenn du meinen Vorschlag genau angesehen hast, wirst du erkennen, dass damit ein Multiple-Choice-Test realisierbar ist.
Wenn du nun in den einzelnen Tabellen mögliche fehlende Felder ergänzt und DB dann hier wieder hochlädst, haben wir eine Diskussionsgrundlage, auf der sich deine LEK aufbauen läßt.
Sehr günstig ist natürlich auch eine genaue detaillierte Beschreibung deines Vorhabens gleich mit zu liefern - wie bereits erwähnt ist das Theme LEK u.U. recht weitläufig.
Alles klar?
HTH
Hallo,
danke für das Mutmachen:)
So habe die Datenbank mit den Tabellen ein wenig Angepasst und wieder reingestellt.
Dazu habe ich nochmal die Grundsätzliche Datenbankstrukur der Vorüberlegungen reingestellt und eine Beispiel LEK zum besseren Verstehen, diese gibt es bis heute nur in Papierform und einzeln.
Meine weitere Frage wäre: bei den Tabellen, wie kann ich jetzt daraus ein Formular erstellen zum Eingeben neuer Fragen und zum Löschen alter Fragen?
Und die wichtigste Frage: das mit den Zufallsgenerator der Fragen funktioniert doch wieder nicht, da das Autowertfeld doch fortlaufend ist und jedes Thema in diesem Autowertfeld ist oder?
Danke für die Hilfe.
Gruß Marco
[Anhang gelöscht durch Administrator]
Hallo,
ich habe die angehängte Datei nach den mitgelieferten Informationen begonnen umzubauen.
Das Tabellenkonstrukt ist in der gegenständlichen Datei nicht fertig ausgeführt, die Tabellen die in Beziehung stehen sollten jedoch NICHT mehr geändert werden.
Das Tabellenmodell ist in meiner Arbeitsdatei bereits vollständig!
Mußt ein wenig Geduld haben - ich komme erst morgen am Abend wieder dazu was zu machen.
Damit du in der Zwischenzeit ein wenig herumbasteln kannst, habe ich die Datei in einem fortgeschrittenem Stadium angehängt.
Hier kannst du nun nach dem Muster der funktionsfähigen Formulare versuchen Fragen und Antworten zu erfassen.
Die Formular-Rohlinge befinden sich bereits in der DB.
Wenn ich das so richtig interpretiere möchtest du KEINE Ergebnisse speichern sondern die Tests nur papiermäßig abhandeln?
Viel Erfolg beim basteln... ;)
[Anhang gelöscht durch Administrator]
Hey,
1000 dank. Das sieht echt klasse aus. Ich bastel ein wenig rum und stell ein paar Datensätze rein.
Ja es soll nur als Papierform genutzt werden, also zum Ausdrucken.
Vielen Dank
Gruß Marco
Hallo,
habe die Datenbank noch ein wenig weiter entwickelt(so gut ich kann).
Morgen kann ich weiter probieren. :)
Danke
Gruß Marco
[Anhang gelöscht durch Administrator]
Hallo,
an der Datenbank noch ein wenig weiter experimentiert.
Bei dem frmAntworten kann ich die Antwortliste nicht nach den verschiedenen Antworten anzeigen lassen.
Auch habe ich noch das Problem mit der Zufälligkeit. Muss ich eine Abfrage machen mit Rnd()?
Danke für die Antworten
Gruß Marco
[Anhang gelöscht durch Administrator]
Hallo Marco,
du hast die Tabelle 'tblAntworten' nicht nach meinem Vorschlag gestaltet sondern eine Denormalisierung vorgenommen (alle 4 Antwortmöglichkeiten in einem Datensatz).
Entsprechend DEINER Tabellengestaltung habe ich das Formular frmAntworten ein wenig umgeändert und mit VBA-Code hinterlegt, der die Befüllung der Felder,
die Möglichkeit zur Änderung von Antworttexten und die Speicherung von Lösungen und Punkteanzahl ermöglicht.
Für die Auswahl von Fragen nach dem Zufallsprinzip habe ich eine Abfrage in die DB gestellt 'qryZufallsfragen'
Mit einer Erweiterung um die Antworttexte dient sie als Datenherkunft für einen Bericht, der ausgedruckt dann deine Testfragen darstellen kann.
HTH
[Anhang gelöscht durch Administrator]
Moin Franz,
bin schwer begeistert und ist sehr professionell. Ich habe versucht alles nachzuvollziehen und steige langsam dahinter.
Danke nochmal.
Jedoch hängt es bei mir noch an dem Ergebins der LEK. Da bin ich schon Anfangs hängengeblieben. Jetzt sind ja Fragen und Atworten in 2 verschiedenen Tabellen. Wenn ich jetzt eine LEK ausdrucken möchte, für den Lehrgang X, dass Thema X, möchte ich ja nur die Fragen und Antworten haben des Themas betreffend. Dann muss ich diese ja filtern. Und wenn ich dann aus den Fragenkatalog(eines Speziellen Themas) 10 oder 20 herausziehen möchte und diese dann noch per Rnd() brauch ich doch ein Autowert mit der ID. Das hab ich ja jetzt nicht oder? Oder versteh ich das nicht ganz?
Ich kann immer nur Danke sagen.
Gruß Marco
Hallo,
Franz ist zwar keiner in der Liste aber das macht nix ... ;) :D ;D
"... brauch ich doch ein Autowert mit der ID..."
Ja stimmt, du benötigst dazu die ID des THEMAS um praktisch eine Vorauswahl zu treffen.
Auf Grund dieser 'Vorauswahl', die durch ein Kombifeld zu realisieren ist, bestimmst du welche Fragen überhaupt in Betracht zu ziehen sind.
Die zugehörige Abfrage holt dir dann die gewünschte Anzahl von Fragen samt deren möglichen Antworten aus den Tabellen.
Dass Fragen und Antworten in verscheidenen Tabellen stehen ist dabei ja unerheblich.
Der springende Punkt dabei ist der, dass die Fragen mit der Themen-Tabelle in Beziehung stehen.
Wird diese Tabelle in die Zufallsabfrage integriert und schränkt man dann die Auswahl auf die ID eines bestimmten Themas ein, dann hast du das Ergebnis wie du es oben beschrieben hast.
Ich werde mich am Samstag hinsetzen und dir das in einem Auswahlformular beispielhaft zusammenschieben - früher komm' ich leider nicht dazu. ;D
Hallo,
ja so müsste es funktionieren. Hab vielen Dank fürs hinsetzen:)
1000 Dank
Gruß Marco
Hallo Marco,
im Anhang findest du die Version 4 deiner DB.
Ich habe wie versprochen ein Formular zusammengeschoben (frmLEKerstellen) in dem ein Kombifeld zum Auswählen des Fragenthemas und ein Textfeld zur Eingabe der gewünschten Fragenanzahl zu finden ist.
Mit klick auf den Button wird ein Bericht geöffnet, der dann die Fragen samt der möglichen Antworten als MultipleChoice-Test darstellt.
Der Bericht (rptLEK) hat die Abfrage 'qryZufallsfragen' als Datenherkunft. Die SQL dieser Abfrage wird beim Klicken auf den Button im Formular dynamisch erstellt
und der Abfrage zugewiesen bevor der Bericht in der Druckansicht geöffnet wird.
Natürlich sind keine besonderen Formatierungen enthalten, ich denke, das kriegst du auch selbst hin ... ;)
Das Beispiel soll dir helfen etwaige Erweiterungen oder Ergänzungen auch selbstständig zu schaffen.
Sollten Probleme auftauchen bitte mit einem neuen Thread ins Forum posten.
[Anhang gelöscht durch Administrator]