PDA

Vollständige Version anzeigen : Syntaxproblem bei Parameterübergabe


coerter
09.08.2004, 11:25
Hallo,

ich habe folgendes Problem :

ich habe eine Funktion erstellt, die in meinem Bericht eine Berechnung in einem ungebundenen Feld erstellen soll. Die Funktion mit den Parametern funktioniert aber ich kriege es nicht hin, dass der errechnete Wert in meinem Feld im Bericht erscheint. Ich bekomme in dem entsprechenden Feld immer #Fehler angezeigt. Also ein Syntaxproblem. Ich habe schon alle erdenklichen Varianten ausprobiert, aber (wahrscheinlich habe ich mal wieder ein Brett vorm Kopf) ohne Erfolg.

Anbei die Funktion:

Function Abw_proz(wert1 As Integer, wert2 As Integer, proz As Integer)


' Errechnen der prozentualen Abweichung
If wert1 = 0 And wert2 = 0 Then
proz = 0
Exit Function
ElseIf wert2 = 0 Then
proz = 0
ElseIf wert1 = 0 Then
proz = -100
Else
proz = ((wert1 - wert2) / wert1) * 100
End If
End Function

Die Parameter wert1 und wert2 sind werte aus der Datenherkunft des Berichts. Proz ist das Ergebnis der Berechnung und soll im Bericht ausgedruckt werden. Access Version 97.


Wer kann mir helfen ????


Gruß

Coerter



AD: Aus dem Code-Archiv (bitte dort keine Fragen stellen - steht auch im Untertitel!) ins Access-Forum verschoben.

Lanz Rudolf
09.08.2004, 11:38
Hallo
wie wäre es mit:


Function Abw_proz (wert1 As Integer, wert2 As Integer) As Integer
' Errechnen der prozentualen Abweichung
If wert1 = 0 And wert2 = 0 Then
Abw_proz = 0
ElseIf wert2 = 0 Then
Abw_proz = 0
ElseIf wert1 = 0 Then
Abw_proz = -100
Else
Abw_proz = ((wert1 - wert2) / wert1) * 100
End If
End Function


Aufruff: Abw_proz(100,200)

rita2008
09.08.2004, 11:42
Nimm statt der Datenherkunft besser die entsprechenden Felder im Bericht. Falls sie dort nicht sichtbar sein sollen, lege die Felder mit Visble=False in Deinen Bericht.

Smaug
09.08.2004, 11:43
Anhand der Funktion würde ich sagen, dass die Funktion überhaupt keinen Wert zurück gibt. Ist die Variable proz Public deklariert ??
Eigentlich würde ich eher so etwas erwarten

Function Abweichung (wert1 As Integer, wert2 As Integer) as integer
If Wert1 or Wert2 = 0 Then
Abweichung = 0
Else
Abweichung= ((wert1 - wert2) / wert1) * 100
End If
End Function

Als nächstes kann es sein, dass im Bericht auf den Wert nicht zugegriffen werden kann. Bei welchem Berichtsereignis wird die Funktion eingesetzt (Beim Formatieren) ??
Prinzipiell muss man eigentlich nur einem ungebundenen Berichtsfeld das Ergebnis der Funktion als Steuerelementinhalt zuweisen.

coerter
09.08.2004, 12:00
Vielen Dank für die vielen und schnellen Antworten.
Ihr habt mir auf die Sprünge geholfen.
Wenn ich meinen Code nach dem Beispiel von Rudolf oder smaug ändere, klappt es.

Gruss

Coerter