PDA

Vollständige Version anzeigen : max Wert aus ungebundenen Textfeldern lesen


Schneppy
24.01.2008, 13:32
Hallo zusammen,

wahrscheinlich ist es eine sehr einfach Funktion, aber ich steh seit zwei Tagen vollkommen auf dem Schlauch!

Folgendes:
Ich habe ein Endlosformular mit Behälter.
In der Kopfzeile meines Formulars sind drei Textfelder, mit denen ich nun die Dimensionen von einem x-beliebigen Objekt eingebe (Länge x Breite x Höhe).

In meinem Endlosformular lasse ich für jeden Datensatz alle 6 Möglichkeiten durchrechnen, wie man am besten dieses Objekt am platzsparensten in die Box setzt.

Bis dahin klappt alles, die 6 ungebundenen Textfelder führen brav ihre Berechungen durch und geben auch die richtigen Ergebnisse aus.

Allerdings habe ich ein weiteres ungebundenes Textfeld "max", welches mir den größten Wert aus diesen 6 ungebundenen Textfeldern liefern soll und das permanent (ohne Aktualisierung oder so)!

Ich hoffe ich habe mich verständlich ausgedrückt, über Hilfe wäre ich sehr dankbar!

LG
Schneppy

agmesia
24.01.2008, 13:59
mir fällt nix ein außer:

Dim Biggest As Integer

If Me!Ungebunden1 > Me!Ungebunden2 Then
Biggest = Me!Ungebunden1
else
If Me!Ungebunden2 > Me!Ungebunden3 Then
Biggest = Me!Ungebunden2
else
If Me!Ungebunden3 > Me!Ungebunden4 Then
Biggest = Me!Ungebunden3
else
If Me!Ungebunden4 > Me!Ungebunden5 Then
Biggest = Me!Ungebunden4
else
If Me!Ungebunden5 > Me!Ungebunden6 Then
Biggest = Me!Ungebunden5
else
Biggest = Me!Ungebunden6
End If
End If
End If
End If
End If
Me!Max = Biggest


Und du kannst nun versuchen das in die Formulareingenschaft vom Timer zu setzen, dann wird er automatisch, je nachdem was du fuer ein zeitinterwall angibst, aktualisiert.

sry, aber es hat immer etwas mit aktualisieren zu tun, sönst würde sich der wert niemals änder :D

Schneppy
24.01.2008, 14:11
Hallo agmesia,

danke für die schnelle Antwort!
Wenn ich so drüber nachdenke ist das echt die einfachste Lösung...!

Was die Aktualisierung betrifft, ich glaube, da werde ich mir mal ne Lösung basteln, die die Berechnung nach Änderung der Werte erneut durchführt...!

Auf jeden Fall schon einmal Danke, ich werde es gleich mal testen!
Für weitere Vorschläge bin ich natürlich immer offen!


Lg
Schneppy

rita2008
24.01.2008, 14:32
Hier (http://www.*************************41986_0_0_asc.php) gibt es eine einfachere Lösung.

agmesia
24.01.2008, 15:09
@rita2008: wenn dein link nicht zensiert wäre, wäre das sicher praktisch.

@Schneppy: ahja, kannst ja den code in das Afterupdate deiner drei felder im Formularkopf schreiben, oder bei "Bei Änderung" dann dürfte sich das auch aktualisieren wenn du die felder änderst, was natürlich auch nur dann benötigt ist, wenn ich dein text zu anfang richtig verstanden habe.

ebs17
24.01.2008, 15:42
Mit einer passenden Bezeichnung der Felder im geeigneten Ereignis:
Dim i As Integer
Me!Maximum = Me!Ergebnis1
For i=2 To 6
If Me("Ergebnis" & i) > Me!Maximum Then Me!Maximum = Me("Ergebnis" & i)
Next i

rita2008
24.01.2008, 17:52
Das mit der Zensur tut mir leid. Ich wusste nicht, dass hier andere Foren als Konkurrenz gesehen werden. Hier die Funktion, als Parameter kann man dann alle benötigten Felder eingeben:

Public Function fMaximum(ByVal x As Integer, ParamArray y())
Dim i As Integer
Dim max As Integer

max = x
For i = LBound(y) To UBound(y)
max = IIf(max < y(i), y(i), max)
Next
fMaximum = max
End Function

Schneppy
25.01.2008, 10:30
Vielen Dank!

Jetzt klappt alles... hab es mit einer etwas abgeänderten Schleife geschafft!

Danke Euch allen!

Gruß Schneppy