![]() |
||
![]() |
Felder berechnen mit VBA-FunktionIch habe mit Access 97 in einem Formular folgende Textfelder: ╗Stⁿck½, ╗LΣnge½, ╗Breite½ und ╗Ergebnis½. Nun m÷chte ich im Feld ╗Ergebnis½ sowohl die LΣngenberechnung (╗Stⁿck½ * ╗LΣnge½) als auch die FlΣchenberechnung (╗Stⁿck½ * ╗LΣnge½ * ╗Breite½) durchfⁿhren. Die FlΣchenberechnung funktioniert einwandfrei, doch bei der LΣngenberechnung erhalte ich kein Ergebnis, da im Feld ╗Breite½ kein Wert enthalten ist. K÷nnen Sie mir helfen? Sie haben wahrscheinlich in der Eigenschaft ╗Steuerelementinhalt½ des Textfeldes ╗Ergebnis½ eine Formel hinterlegt, wie zum Beispiel: ╗=[Formular]![Stueck]*[Formular]![Laenge]*[Formular]![Breite]½. In diesem Fall mⁿssen alle drei Felder, welche in die Berechnung eingehen, Werte ungleich 0 enthalten, sonst ist das Ergebnis = 0. Ihr Problem l÷sen Sie am einfachsten, indem Sie die Berechnung in einer kleinen VBA-Funktion durchfⁿhren. ╓ffnen Sie hierzu Ihr Formular in der Entwurfsansicht. Rufen Sie im Menⁿ den Befehl ╗Ansicht | Code½ auf; es erscheint das Klassenmodul des Formulars. Rufen Sie nun den Menⁿbefehl ╗Einfⁿgen | Prozedur½ auf. Im Dialog ╗Prozedur einfⁿgen½ geben Sie der Funktion einen Namen wie ╗berechneErgebnis½. Der ╗Typ½ der neuen Funktion ist ╗Funktion½, unter ╗Geltungsbereich½ wΣhlen Sie die Option ╗Privat½. Wenn Sie diese Angaben mit ╗OK½ bestΣtigten, erzeugt Access 97 die leere Funktion. ErgΣnzen Sie darin den folgenden VBA-Code: Private Function berechne t Ergebnis() If IsNull(Me!Stueck) t Or IsNull(Me!Laenge) Then Me!Ergebnis = äô Exit Function End If If IsNull(Me!Breite) Then Me!Ergebnis = t Me!Stueck * Me!Laenge Else Me!Ergebnis = t Me!Stueck * Me!Laenge * t Me!Breite End If End Function Diese Funktion berechnet und belegt je nach Inhalt der Felder ╗Stueck½, ╗Laenge½ und ╗Breite½ den Inhalt des Feldes ╗Ergebnis½. Sie muss immer ausgefⁿhrt werden, wenn sich die Belegung eines der in die Berechnung eingehenden Felder Σndert. Zu diesem Zweck tragen Sie in der Eigenschaft ╗Nach Aktualisierung½ der drei eingehenden Felder den String ╗=berechneErgebnis()½ ein. |
![]() |