wie kann ich in einem formular, das einen datensatz anzeigt, mehrere
felder dieses datensatzes zusammenzählen und in einem separatem feld
sowohl abspeichern als auch im formular anzeigen lassen
Hallo Josef,
wie kann ich in einem formular, das einen datensatz anzeigt, mehrere
felder dieses datensatzes zusammenzählen und in einem separatem feld
sowohl abspeichern als auch im formular anzeigen lassen
Das geht direkt bei der Eingabe nur mit Makros: Eigentlich bläht so eine
Abspeicherung auch nur unnötig die Datenbank auf. Der Trick einer
Datenbank ist ja gerade, aus so wenig Informationen wie nötig so viel
Informationen wie möglich zu erschließen.
Die Anzeige im Formular (wenn der Datensatz abgespeichert wurde) ist
dagegen recht einfach. Dein Formular muss auf einer Abfrage beruhen.
Angenommen Du hast eine Tabelle "Kasse", die Du im Formular bearbeitest.
Du willst alle Informationen anzeigen, zusätzlich auch die
Multiplikation von "Anzahl" und "Einzelpreis". Dann formulierst Du als
Abfrage:
SELECT *, "Anzahl" * "Einzelpreis" FROM "Kasse"
Es kann vorkommen, dass die grafische Benutzeroberfläche so nicht ganz
klar kommt und eine Eingabe nicht möglich ist. Dann mach daraus
SELECT "Kasse".*, ("Kasse"."Anzahl" * "Kasse"."Einzelpreis") AS
"Preis_berechnet" FROM "Kasse"
Wenn Du es wirklich direkt bei der Eingabe sehen willst melde Dich noch
einmal.
Gruß
Robert
Hallo Robert,
danke für den Weg. Es geht auch ohne Abfrage. In einem Listenfeld und
Deinem SQL Befehl klappt es jetzt. Das mit der aktuellen Ansicht ist
eigentlich zweitrangig.
Jetzt hab ich noch eine andere Frage. In meinem Formular werden
Datensätze aus einer anderen Datenbank eingefügt. Über die Startnummer
und einem Listenfeld wird der Teilnehmer identifiziert. Das Formular
trägt jetzt nach Eingabe der Startnummer den Namen in das Feld ein.
Jetzt möchte ich aber das mir das dazugehörige Ergebinss, das sich in
der selben Tabelle und im selben Datensatz wie das des Namens befindet,
auch im Formular, aber in einem anderen Feld eingetragen wird.
Puh, ich hoffe ich konnte mich einigermaßen verständlich ausdrücken.
Hallo Josef,
Jetzt hab ich noch eine andere Frage. In meinem Formular werden
Datensätze aus einer anderen Datenbank eingefügt. Über die Startnummer
und einem Listenfeld wird der Teilnehmer identifiziert. Das Formular
trägt jetzt nach Eingabe der Startnummer den Namen in das Feld ein.
Jetzt möchte ich aber das mir das dazugehörige Ergebinss, das sich in
der selben Tabelle und im selben Datensatz wie das des Namens befindet,
auch im Formular, aber in einem anderen Feld eingetragen wird.
Du könntest natürlich das Listenfeld zu reinen Informationszwecken
missbrauchen. Ich würde das aber nicht machen, da das Listenfeld
eigentlich dazu verleitet, andere Daten eingeben zu wollen.
Vom Prinzip her müsstest Du mit einer Konstruktion
Hauptformular - Unterformular
besser bedient sein.
Im Hauptformular wählst Du die Startnummer aus, im Unterformular
erscheint dann der Inhalt der Tabelle mit dem Namen und den
Berechnungen. Beide Formulare werden über die Startnummer miteinander
verbunden.
Wenn Du im Hauptformular ein Tabellenkontrollfeld nutzt kannst Du durch
die Startnummern scrollen und erhältst im Unterformular dann die Namen
und Ergebnisse.
Ich hoffe mal einfach, dass ich das Wesentliche verstanden habe.
Gruß
Robert
Guten Morgen Robert,
naja, ganz so klappt es noch nicht. Das mit der Verknüpfung hab ich noch
nicht ganz überrissen. Weil ich ja aus 8 Datensätzen die Daten in eine
neue Tabelle eintrage.
Das Formular das ich nutze (Mannschaft_Eingabe), soll nach beendeter
Eingabe 8 Teilnehmer (Startnummer,Name,Ergebnis aus der Tabelle
Stammdaten) mit den dazugehörigen Ergebnissen anzeigen. Dazu kommt noch
die Eingabe aus einer anderen Tabelle die den Verein, also den
Mannschaftsnamen, beinhaltet. Die Mannschaften bekommen eine
fortlaufende Nummer, weil es vorkommen kann, das aus einem Verein
mehrere Mannschaften am Start sind. Zum Schluss kommt noch die
Ergebnissberechnung in diesem Formular, das anschließend ausgedruckt
wird.
Gelöst hab ich das Problem bisher so, daß ich in dem Formular für jeden
Schützen über ein Listenfeld und einem SQL Befehl anhand der Startnummer
den entsprechenden Teilnehmer ausgewählt habe. Allerdings muss ich das
jeweils einmal für den Schützen machen und anschließend nochmal für sein
Ergebniss. Nicht gerade elegant, aber es funktioniert.
Schöner wär es ich bräuchte die Startnummer für den Teilnehmer und sein
Ergebniss nicht 2 mal eingeben.
Ich bin nicht der große Programmierer, sondern ein einfacher User, und
hoffe ich konnte mich einigermaßen verständlich ausdrücken.
Wünsch Dir einen schönen Sonntag
Josef
Hallo Josef,
naja, ganz so klappt es noch nicht. Das mit der Verknüpfung hab ich noch
nicht ganz überrissen. Weil ich ja aus 8 Datensätzen die Daten in eine
neue Tabelle eintrage.Das Formular das ich nutze (Mannschaft_Eingabe), soll nach beendeter
Eingabe 8 Teilnehmer (Startnummer,Name,Ergebnis aus der Tabelle
Stammdaten) mit den dazugehörigen Ergebnissen anzeigen. Dazu kommt noch
die Eingabe aus einer anderen Tabelle die den Verein, also den
Mannschaftsnamen, beinhaltet. Die Mannschaften bekommen eine
fortlaufende Nummer, weil es vorkommen kann, das aus einem Verein
mehrere Mannschaften am Start sind. Zum Schluss kommt noch die
Ergebnissberechnung in diesem Formular, das anschließend ausgedruckt
wird.Gelöst hab ich das Problem bisher so, daß ich in dem Formular für jeden
Schützen über ein Listenfeld und einem SQL Befehl anhand der Startnummer
den entsprechenden Teilnehmer ausgewählt habe. Allerdings muss ich das
jeweils einmal für den Schützen machen und anschließend nochmal für sein
Ergebniss. Nicht gerade elegant, aber es funktioniert.
Schöner wär es ich bräuchte die Startnummer für den Teilnehmer und sein
Ergebniss nicht 2 mal eingeben.
So ganz kapiere ich nicht, wie jetzt Deine Konstruktion läuft. Du
arbeitest doch insgesamt mit der internen Datenbank, oder? In dieser
hast Du verschiedene Tabellen (Namen, Vereine, Wettkampfergebnisse ...).
Ich könnte mir das besser vorstellen, wenn Du mir das per privater Mail
einmal zusenden könntest, wenn nicht gerade besonders schützenswerte
Daten enthalten sind.
Gruß
Robert