PDA

Vollständige Version anzeigen : datensatz auf nächstem formular fortsetzen


Dean
22.03.2004, 14:41
hi

ich hab da ein (kleines) Problem an dem ich nicht mehr weiter komme :)


also ich habe ein hauptformular in dem die Personalien eingeben kann, danach kommt man zu einem andern Formular in dem man Fragen beantworten soll, doch die Antworten werden nicht in den gleichen Datensatz wie die Personalien geschriben sondern in den ersten Datensatz. ich weis das es etwas mit datensatz sperren oder so zu tun hat doch was genau weis ich nicht.

wäre schön wen jemand eine antwort für mich hätte :)
ich bin ganz durcheinander da ich die letzte woche wesentlich grössere probleme behoben habe und jetz vor einem solchen stehe.

mfg Dean

stpimi
22.03.2004, 14:43
doch die Antworten werden nicht in den gleichen Datensatz wie die Personalien geschrieben sondern in den ersten Datensatz

Datenmodell in Ordnung?

Mfg, Michael

Dean
22.03.2004, 15:02
ähm tut mir leid ich arbeite seit 2 wochen mit access wen du meinst ob meine Formulare richtig an die tabelle gebunden ist dann ja.
ich zeig dir ein beispiel:

Name Vorname Antwort1 Antwort2 Antwort3 Antwort4
Muster Hans 1 2 0 0

Meier Peter 0 0 0 0


die namen (also alles auf dem Startformular) wird in einen neuen Datensatz gespeichert, doch wenn man dann weiter geht und die antworten ausfüllt, speichert es das in den Datensatz 1 und die restlichen bleiben leer (0)

ich will den datensatz über mehrere formulare behalten.

mabe38
22.03.2004, 16:44
Ich habe den Eindruck, deine Datenbank ist nicht normalisiert.
Beschreibe doch mal den Aufbau deiner Tabellen, Beziehungen etc.
Ich vermisse bei dir schon eine eindeutige Identifikation (sprich Autowert und Primärschlüssel). Ein Name ist keine eideutige Identifikation.

Gruß Martin

stpimi
23.03.2004, 08:20
Hallo Dean!

Deine Datenbank ist definitiv nicht normalisiert, also in der 3. Normalform. Lies mal den Link "relationale Datenbanken" in meiner Fusszeile, da erfährst Du, wie du das machen musst.

Dann kannst Du noch, nachdem es sich offenbar um einen Fragebogen handelt, hier im Forum mit dem Suchbegriff "Fragebogen" einige Threads finden, die Dir weiterhelfen. Allerdings musst Du Dich dazu hier registrieren, denn sonst steht Dir die Suchfunktion nicht zur Verfügung.

Mfg, Michael

Dean
23.03.2004, 10:57
hi ihr

danke für die schnelle antwort.

leider bin ich nicht so der access und DB freak :)

also meine Progi ist zimlich simple aufegebaut:

1 haupttabelle

dort sind personalien und antworten gespeichert(den jeder kann dieses Feedbackformular nur 1 mal ausfüllen)

ich weis nicht was es da gross zu normalisieren gibt :)


Beim ersten Datensatz schreibt es nur die Fragen 1 und 2 in einen neuen datensatz (also Datensatz 2) und die restlichen so wie es sich gehört in Datensatz 1

wen ich jedoch den nächsten Datensatz beginne überschreibt es ALLES in den ersten Datensatz, auch frage 1 und 2.

Meint ihr wirklich das es an der normalisierung liegen könnte?
wenn würde ich mich über einen tipp freuen wie ich das mit der normalisierung gut hin bekomme.

danke nochmals :)

mfg Dean

stpimi
23.03.2004, 11:08
Vorschlag (wenns es wirklich ganz einfach sein soll...):

tblPerson
PersonID
PersonNachname
PersonVorname
....


tblFrage
FrageID
Fragetext
....

tblAntwort
AntwortID
FrageID
PersonID
Antwort
...

tblPerson enthält die Daten zur Person, tblFrage jede Frage einmal und tblAntwort die gegebenen Antworten je Person und Frage.

Mfg, Michael

Dean
23.03.2004, 12:04
ist es wirklich nötig mehrere tabellen anzulegen?

es wird nacher so sein das die Haupttabelle auf einem server im netzwerk steht, und ich jede tabelle mit der haupttabelle verbinden muss.

die fragen stehen nicht in der DB nur die antworten, dir fragen sind im Formular integriert.

find ich cool das ihr immer so schnell antworten gebt. ich werde mich gleich registrieren

cu

stpimi
23.03.2004, 12:47
ist es wirklich nötig mehrere tabellen anzulegen?

Im Sinne der Relationalität: Ja - zumindest die Antwort soll vom Benutzer getrennt sein.

Du hast mehrere Frage-Antworten-Kombinationen, jede stellt einen Datensatz dar. Stell Dir vor, Dein Auftraggeber kommt auf die Idee, eine zusätzliche/andere Frage stellen zu wollen - dann müßtest Du die DB umbauen. Und das ist wohl nicht der Sinn der Übung.

Die Fragen würde ich eben auch nicht fix ins Formular schreiben sondern aus einer eigenen Tabelle lesen und die FrageID mit der Antwort mitspeichern.

Mfg, Michael

Dean
23.03.2004, 13:08
ja das ist mir klar :)

nur das problem ist, das die leute die das nacher editieren wollen noch weniger ahnung haben als ich :)

Die Antworten werden nur in Forum von zahlen zwischen 1-5 in die Tabelle geschriben. Und neue fragen werden nicht dazu kommen die sind schon ewigs so.
Eigentlich funktioniert ja alles (fast) wie es sollte.
Nur wen ich zum nächsten Formular wechsle, geht der zum ersten Datensatz und überschreibt alles. Ich probiere es jetz einmal mit der Makro funktion gehezu - Datensatz - letzter

ich hoffe das ich das problem so lösen werde. Doch ich sehe schon was sich mit dieser Lösung für andere Probleme an bahnen :)

ich danke dir nochmal für dir hilfe.

wenn dir noch etwas in den sinn kommt, ich bin immer froh um rat.

mfg Dean

mabe38
23.03.2004, 13:24
Hallo Dean,
wenn dem so ist, liegt es doch nahe das ganze mit eher mit Excel zu realisieren. Du kannst dort auch Formulare erstellen. Dafür braucht man keine Datenbank.

Gruß Martin

Dean
23.03.2004, 14:33
nunja

das ganze ist natürlich ein bisschen komplexer, da ich schon zimlich viel zeit in dieses Projekt investiert habe.
und da ich excel noch weniger im griff habe als access bleibe ich wohl dabei. das ganze sollte schon eine DB haben den die Daten müssen auch gut auswertbar sein.

weis niemand an was das liegt das der immer den ersten Datensatz nimmt oder wie man das verhindern kann?
irgendwie hab ich das gefühl das die leute von MS da mal n update machen könnten den Access hat ja unmengen an Funktionen die nicht gehen. wie z.B. das scrollen durch die Datensätze mit dem mausrad. Da musste ich n riesen code implementieren und eine dll datei erstellen um das mausrad zu sperren.

janu, wen es wirklich keine Lösung gibt weis ich auch nicht mehr weiter :)
wen ich das ganze mit php/mysql lösen könnte wärs kein prob :(

wen jemand von euch zeit hätte könnte ich mal das ganze file schicken, es ist sehr einfach und dann könntet ihr mir vielleicht sagen ob das noch sinn macht so wie ich das aufgebaut habe :)

mfg Dean

mabe38
23.03.2004, 14:53
ja,
komprimiere deine Datenbank (Extras/Datenbankdienstprogramme/Komprimieren und Reparieren) und schicke sie gezippt rüber. Es reicht völlig aus wenn 3-4 Datensätze in der DB sind
Eine andere Möglichkeit wäre für Dich, auch wenn es vöölig daneben ist, mit dem Registersteuerelement zu arbeiten. Dann brauchst Du keine neuen Formulare aufzurufen.

Gruß Martin

Dean
24.03.2004, 07:28
ich weis leider nicht mal was Registersteuerelemente sind :/
kannst du mir mal deine e-mail geben? dann kann ich sie dir schicken.
Ich trage mal ein paar Datensätze ein, doch am besten du schreibst auch mal 1-2 rein um zu sehen das die Datensätze am falschen ort eingetragen werden.

mfg Dean

mabe38
24.03.2004, 07:35
Guten morgen Dean,
wo ist das Problem, die Datenbank in das Formun zu schicken? Du musst sie nur als gezippte Version hochladen.


Gruß Martin

Dean
24.03.2004, 07:52
ah ok

wollte es nicht gross veröffentlichen aber spielt keine rolle :)
aber seit gewarnt ich habe keine ahnung vonn acces ^^
noch mal danke


ahhh.. ich kann nur bis 100kb hochladen, mein projekt ist aber 500kb gross :/

stpimi
24.03.2004, 07:57
Nur einige wenige Datensätze drinnenlassen, danach Extras/Dienstprogramme/komprimieren.


Sieh mal die Ratschläge in meiner Fusszeile: Uploads

Mfg, Michael

Dean
24.03.2004, 08:13
hmm

deine ratschläge hab ich befolgt aber ich hab sie nicht kleiner als 500kb gebracht.

und auf 3-4 datensätze kommt es nicht so drauf an oder?
ich habe das ganze mal zu mabe geschickt, ich hoffe das er es noch mehr komprimieren kann.

mfg Dean

mabe38
24.03.2004, 08:21
So ich habe Deine DB jetzt hochgeladen und sie von den ganzen Bildern befreit. Ebenso habe deine DLL nicht mitgeschickt. Gearbeitet habe ich noch nicht, da ich jetzt erstmal frühstücke.

Gruß Martin

Dean
24.03.2004, 09:03
danke viel mals :)

jo die DLL ist da um das mousewheel zu blocken.
nur keinen stress :) wen ich das alleine machen müsste wäre ich noch bis weinachten dran :)

mfg dean

mabe38
24.03.2004, 09:15
Wie schon vorher festgestellt, ist deine Datenbank überhaupt nicht normalisiert und würde auch nicht funktionieren. Ich habe jetzt aber nicht vor, dir eine komplette Datenbank zu bauen (das würd einiges kosten), sondern werde dir erstmal die Tabellen normalisieren und dir eine erste Hilfestellung für die Formulare geben. Den Rest solltest -damit Du auch was lernst- mit Hilfe des Forums machen.

Eine Frage noch,
Was ist der Unterschied zwischen Betreuer und Betreuer_LL

Gruß Martin

Dean
24.03.2004, 09:23
tut mir leid ich dachte das die normalisierung nicht nötig wäre da ich nur 1ne haupttabelle habe und die andern nur als Datenquellen dienen.
Betreuer ist der Betreuer und Betreuer_LL ist der Lehrlingsbetreuer.
mfg dean

mabe38
25.03.2004, 12:57
Hallo Dean,
anbei deine Datenbank zurück.
1. Die Datenbank ist normalisiert
2. Wenn Du eine Auswertung machen willst, geht das über Abfragen ein
Beispiel ist die Abfrage Auswertung
3. In dem MainFormular kannst Du Namen etc eingeben (so ganz klar war mir nicht was der Unterschied zwischen den Abteilungen, Bereichen etc ist. Schau mal ob das so richtig ist.
4. Wenn Du den button zu den Fragen drückst, wird der Wert der ID1 an das nächste Formular:FragenAntworten übergeben. Dies ist wichtig, damit du im Formular FragenAntworten den Fremdschlüssel im Unterformular Antworten hast.
Beschreibungen dazu findest Du in den entsprechenden Ereignissen.
Du benötigst jetzt nur noch ein Formular, dass du dir entsprechend verschönern kannst. dies ist nicht so mein Ding. Aber lass das mit den Grafiken, verbraucht zu viel Speicher.

Wenn Du noch Fragen hast( die wirst Du haben), melde Dich. Es muss auch noch gelöst werden, dass nach Frage 11 schluss ist. In Deiner Datenbank erscheint dann in leeres Textfeld. Dort könnte mann weitere Fragen aufnehmen.

Gruß Martin

Dean
29.03.2004, 07:32
hii endlich wider on :) zuhause kein inet gehabt das weekend :(

hmm ich danke dir viel mal für die DB jedoch hab ich überhaupt keine übersicht :) kann ich den die Formulare von mir nehmen?
Das ganze grafik zeugs MUSS eben hin :( vorgabe vom chef.
so ich belass es mal bei dieser frage und schaue mir die DB noch mal richtig an.
cu & thx Dean

mabe38
29.03.2004, 07:43
Hi Dean,
eventuell solltest Du mit Deinem Chef noch mals reden. Die FAQ 2.2 gibt darüber Auskunft.

hier klicken (http://www.donkarl.com/)

Ich denke, Du solltest zusammen mit Deinem Chef auch noch mal darüber sprechen, ob Ihr das ganze nich doch in Excel realisieren wollt, es ist
1. wesentlich einfacher
2. Auswertungen lassen sich mit stat. Methoden wesentlich einfacher erheben.
3. Access verfügt nicht über die relitv simplen Methoden von Excel, um Sachen zu berechnen.

Wenn Du dich ein wenig mit der Struktur von Tabellen von Access beschäftigt hast, ist es leicht in Excel weiterzumachen.

Eine Kombination beider Programme ist auch gut möglich.

Gruß Martin

Dean
29.03.2004, 08:01
naja :) da ich ein Lehrling bin hab ich nicht wirklich viel zu sagen :) da muss ich einfach umsetzten. Wenn dann hätte ich sowiso alles in PHP gemacht.
Eigentlich fand ich meine Version ja ganz nett :) es wollte die Daten einfach ned in den richtigen Datensatz schreiben, und jetz komm ich gar nicht mehr weiter, ich probier jetz meine Formulare noch einzubauen, wen das funktioniert binb ich zufrieden, mein chef auch :) doch sonst muss ich wider an meiner schlechten version weiter arbeiten :( es wird mir einfach zu gross :D und ich hab diese ganzen MS Produkte bis oben hin voll .... :)
naja ich brauch mal einen kaffee

mabe38
29.03.2004, 08:10
Hallo Dean,
mir kommt das so vor, wie ich es mal bei einer städt. Beruffeuerwehr erlebt habe. Dann bauen wir uns mal eine Homepage, geht ja mit Frontpage-Express ganz schnell . Die Feuerwehr wunderte sich allerdings hinter, das das ganze auf anderen Browsern schlechter aussah, bzw es manchmal bis 4 Minuten dauerte, bis die Website denn geladen war. :(
Vielleicht solltest Du als Lehrling auch mal darauf bestehen, dass man die Sachen proffesionell macht und das man Leute, die damit arbeiten auch einweisen muss, wie etwas funktioniert.


Gruß Martin

Dean
29.03.2004, 08:18
ja das wäre schon ok

nur haben wir (ich und die anderen lehrlingen) bis jetz ca. 5 solche websiten gemacht mit PHP und mySql
die waren auch ganz OK nur jetz wollten sie das wir mal etwas mit Access machen, doch niemand hat ne ahnung von access. Mein Chef wäre doch niiemals auf die Idee gekommen zu Normalisieren :) ich sag ja nicht das ich mehr versteh aber so muss es nun mal sein :/
meinst du den nicht das ich meine Formulare verwenden kann? ich bin schon ein bisschen am anpassen aber irgendwie gibt es die ganze zeit so kleine fehler...
naja ich probier einfach mal


mal so ne frage zwischenrein: Wie kann ich verschidene Tabellen als Datenherkunft in einem Formular angeben? Bis jetz war ja alles in einer Haupttabelle, doch jetz in verschidenen.

Dean
06.04.2004, 08:06
hallo mabe? noch da :)

wäre cool wen du oder jemand anders mir diese eine frage noch beantworten könnte ich hab da keinen durchblick mehr.

Du hast "Standort" aus der Tabelle Standort mit "ortID" aus der Tabelle "Schnupperberuf" verbunden, wie und was muss ich jetz ansprechen um die Daten zu speichern?
Geht das dann per "ortID" in die "Schnupperberuf" tabelle?
Und wie müsste dann das Statement in etwa aussehen?

ich danke nochmal für die super Hilfe
gruss Dean

stpimi
06.04.2004, 08:20
mal so ne frage zwischenrein: Wie kann ich verschidene Tabellen als Datenherkunft in einem Formular angeben? Bis jetz war ja alles in einer Haupttabelle, doch jetz in verschidenen.

Geh in die Datenherkunft Deines Formulares (klick neben den Detailbereich, rechtsklick, Eigenschaften, Register Daten) und klick dann auf die drei Punkte NEBEN dem Eingabefeld - Du kommst in einen Abfrageeditor, in dem Du mehrere Tabellen auswählen kannst - wobei zwischen den gewählten Tabellen natürlich eine Verknüpfung existieren muss (Die DB von Martin habe ich nicht angeschaut....)

Mfg, Michael

Dean
06.04.2004, 09:59
danke

doch die Frage war nicht mehr so aktuell :)

vielleicht hat martin auch noch mal zeit etwas zu schreiben, vielleicht kann er sich an meine DB noch knapp erinnern :)
jetz seh ich langsam den sinn des normalisierens, und das es bei mir auch nötig war.

gruss dean