Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Feld automatisch ausfüllen lassen





Frage

Hallo Ihrdadraussen! kann ich (wie?!?) Accesxp dazu bringen, mir ein Feld automatisch als die Summe aus vorangegangenen Feldern auszufüllen? Es handelt sich um DM-Beträge, dieses Feld soll einfach nur die Gesamtsumme der Einträge in den Vorangehenden Feldern ausrechnen und eintragen. DANKE!!

Antwort 1 von PotzBlitz

Hallo Wilma,

das ist schon machbar. Wenn du das Feld in einem Formular brauchst, dann füge ein neues, ungebundenes Feld hinzu und lege die Steuerelementinhalt-Eigenschaft wie folgt fest:
= DomSumme("<Ausgabefeld>";"<Tabellenname>";"<Bedingung> <=" & [<Bedingungsfeld>])

Die Bedingung wird benötigt, um nur die Datensätze zu berücksichtigen, die vor dem aktuellen Datensatz liegen. Dafür eignet sich z.B. ein Datumsfeld o.ä. Um das Feld als Währung anzeigen zu lassen, musst du nur die Format-Eigenschaft des Feldes auf "Währung" stellen. Bei diesem Beispiel schleicht sich aber ein kleines Anzeigeproblem ein. Wenn das Feld <Bedingungsfeld> leer ist wie bei einem neuen Datensatz, dann wird in dem Textfeld "#Fehler" angezeigt. Um das zu unterdrücken, kann vor der Summenbildung erstmal geprüft werden, ob dieses Feld überhaupt gefüllt ist:
= Wenn(Nicht IstNull([<Bedingungsfeld>]);DomSumme("<Ausgabefeld>";"<Tabellenname>";"<Bedingung> <=" & [<Bedingungsfeld>];"")


<Ausgabefeld> = Das Feld, über das die Summe gebildet werden soll.
<Tabellenname> = Die gleiche Tabelle, die auch dem Formular zugrunde liegt.
<Bedingung> = Feld in der Tabelle, anhand dessen vorhergehende Datensätze erkannt werden können.
<Bedingungsfeld> = Feld im Formular, das an <Bedingung> gebunden ist.

Gruss
PotzBlitz

Antwort 2 von Wilma

Hallo PotzBlitz,

Danke erstmal, werde das in den nächsten Tagen mal ausprobieren, obwohl ich´s noch nicht richtig "geschnallt" habe. Bin auf dem Gebiet absoluter Neueinsteiger...

Beim Lesen habe ich allerdings das Gefühl, daß Du das was ich vorhabe viel komplizierter ansiehst, als es gemeint war. Ich beabsichtige nur die Summe der Beträge in (mehreren)vorher ausgefüllten (oder zum Teil auch frei gelassenen)Feldern des GLEICHEN Datensatzes automatisch ausrechnen zu lassen. Die Tabelle (bzw das Formular) dient dazu, Rechnungen zu erfassen. Pro Datensatz eine Rechnung, und hier einzelne Positionen mit eben automatischer Summenbildung des Endbetrages (Was wiederum zur Kontrolle dienen soll, ob die eingegebenen Einzelpositionen richtig eingetippt wurden, sprich der berechnete Endbetrag der gleiche ist, wie er auf der rechnung steht..)

Grüße!
Wilma

Antwort 3 von Teddy7

Hallo Wilma !
Da bietet es sich an, die Summe vom ersten zu summierenden Feld an anzuzeigen.
Dazu müßtest Du bei jedem zu summierenden Feld beim lostfocus-Ereignis hinterlegen:
ErgebnisFeld = FeldA + FeldB + FeldC
ErgebnisFeld.requery
Durch die zweite Anweisung wird das ErgebnisFeld mit neuem Wert angezeigt.
Wenn Du das nicht willst reicht es auch nur bei einem (dem letzten) Feld diese Befehle zu hinterlegen.
Gruß
Teddy

Antwort 4 von PotzBlitz

Hallo Wilma,

wenn das so ist, dann habe ich dich wirklich falsch verstanden. Mein Vorschlag berücksichtigt alle vorhergehenden Datensätze und ist somit bei deinem Vorhaben ungeeignet. Nun ja, isch hatt halt gemeint, gell? :-)

Gruss
PotzBlitz

Antwort 5 von Knubbel

Hallo Wilma,

ich habe DEine Nachrivht erst heute gelesen, aber ich denke ich habe eine brauchbare Lösung:

Zunächst unterstelleich, dass die Eingabefelder [Eingabe1], [Eingebe2]...[EingabeN] und das Ergebnisfeld [Summe] in Deiner Datenbank vorhanden sind.

Nun brauchst Du nur noch das Makro "SetzenWert" kreieren. Dieses ist relativ einfach:
Feld: [Formulare]![Name des Formulars]![Summe]
Ausdruck: [Eingabe1]+ [Eingabe2] + .... + [EingabeN]

Hierdurch wird bei jeder Eingabe im Summenfeld das gewünschte Ergebnis dargestellt. Voraussetzung ist jedoch, dass beim Anlegen der Tabelle bei der Option der Eingabefelder für "Standardwert" der Wert "0" vorgegeben wird. Hierdurch ist das Feld nicht leer, und die Addition kann durchgeführt werden.

Nun brauchst Du nur noch bei den Eingabefeldern in der Funktion "Beim Verlassen" diese Makro eintragen.

Versuch es einmal! :-)

Gruss Knubbel

Antwort 6 von Wilma

Hi Knubbel,

ES FUNKTIONIERT!!!
ich hab´zwar eigentlich keine Ahnung wieso, aber es GEHT! :-))
Vielen Dank, bis zum nächsten Problem (und das läßt sicher nicht lange auf sich warten...) :-))

Antwort 7 von Knubbel

Hallo Wilma!

ich bin auch kein Profi, aber es freut mich, wenn über diesen Servic Hilfe möglich wird.
Heute hatte ich ein gleiches Erfolgserlebnis.
Daher DANKE an alle, die sich hier aktiv beteiligen.

mfg Knubbel

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: