Supportnet / Forum / Datenbanken
Berechnungen im Endlosformular
Frage
Ich habe in einem Endlosformular 4 Felder, welche an eine Abfrage gebunden sind. In 2 weiteren ungebundenen Feldern (innerhalb dieses Endlosformulars) sollen nun Berechnungen mittels VBA durchgeführt werden können. Je nach Feldinhalt handelt es sich um eine andere Berechnung. Wie ist es möglich, dass ich zuerst den Feldinhalt checke, dann die entsprechende Berechnung durchführe und das Resultat wieder zurückgebe? Dem Wissenden danke ich!!!!!!!!
Antwort 1 von Teddy7
mach die Berechnung besser bereits in der Abfrage.
Einfach zusätzliche Spalte anlegen und Deine Zahlen ermitteln mit wenn-Funktion wie im Excel.
Gruß
Teddy
Einfach zusätzliche Spalte anlegen und Deine Zahlen ermitteln mit wenn-Funktion wie im Excel.
Gruß
Teddy
Antwort 2 von gosti
danke. würde ich ja gerne und habs auch schon probiert. aber die berechnungen sind derart komplex; unmöglich! ich habe auch schon versucht, via steuerelementinhalt der ungebundenen felder die berechnungen durchzuführen; auch dort, unmöglich! hast sonst ne idee?
Antwort 3 von Teddy7
wenn die Berechnungen zu komplex werden, dann leg halt mehrere Spalten in der Abfrage neu an und verwende sie dafür Zwischenergebnisse zu ermitteln.
Die einzige andere Möglichkeit, die mir dazu einfällt wäre, in einer zusätzlichen Spalte der Abfrage eine function einzubauen.
Diese function legt man als public function in einem Modul an damit man von überallher darauf zugreifen kann(global). Etwa so:
public function frechnen(zahl1 as double, zahl2 as integer, Kennung as string) as double
if kennung = "A" then
frechnen = zahl1 * zahl2
else
frechnen = 17
endif
end function
und in der Abfrage aufrufen mit
xerg: frechnen(zahl1, zahl2, kennung)
Gruß
Teddy
Die einzige andere Möglichkeit, die mir dazu einfällt wäre, in einer zusätzlichen Spalte der Abfrage eine function einzubauen.
Diese function legt man als public function in einem Modul an damit man von überallher darauf zugreifen kann(global). Etwa so:
public function frechnen(zahl1 as double, zahl2 as integer, Kennung as string) as double
if kennung = "A" then
frechnen = zahl1 * zahl2
else
frechnen = 17
endif
end function
und in der Abfrage aufrufen mit
xerg: frechnen(zahl1, zahl2, kennung)
Gruß
Teddy
Antwort 4 von Floooooo
Hast mal ein Bespiel, WIE komplex die Berechnungen sind?
Antwort 5 von gosti
tach
ich habe übers wochenende mal probiert, wie vorgeschlagen, zwischenergebnisse in weiteren feldern zu rechnen. ist zwar sehr aufwendig, aber es hat funktioniert... danke für die inputs.
gruss
gosti
ich habe übers wochenende mal probiert, wie vorgeschlagen, zwischenergebnisse in weiteren feldern zu rechnen. ist zwar sehr aufwendig, aber es hat funktioniert... danke für die inputs.
gruss
gosti

