Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Feld rundet, obwohl es das nicht soll

Begonnen von robsonlele, September 18, 2012, 10:41:48

⏪ vorheriges - nächstes ⏩

robsonlele

Hallo an alle,

ich habe das problem, dass ich sich ein Wert in einem Formular selbst rundet, obwohl er dass nicht soll.

Schreibe ich die Formel:

proz = ([E_Aufknöpfprobe] / (((([Baulänge] / 100) * 3) - strsick) * stranzp))*100
[Prozente] = proz

berechnet er mir einen Wert z.b. 125,00 als Standardzahl

ändere ich über Eigenschaften das Standardzahlfeld in ein Prozentfeld, werden daraus 12500,00%
soweit ist das für mich ja noch nachzuvollziehen.

Ändere ich aber jetzt die Formel und streiche hinten die *100
kommt er auf einmal auf 100,00% also völlig andere Werte. Das merkwürdige daran ist, wenn ich die Werte in der Formel ändere. Zum Beispiel E_Aufknöpfprobe, gibt er mir für Werte von 0 bis 49 pauschal 0% für 50 bis 119 100% für 120 bis 200 200% und so weiter. Ich hab keinen Plan was da falsch läuft.

Danke schonmal im Voraus für eure Hilfe,

Mfg Robby


DF6GL

Hallo,

welche Datentyypen haben die einzelnen Variablen/Felder?


Der "str"-Prefix der Varibalennamen läßt Ungutes vermuten....

Zeig mal den Deklarationsteil der Prozedur...

robsonlele

Hallo,

zunächst einmal danke für die schnelle Antwort.
Datentyp ist bei jedem Feld auf die die Formel zugreift Zahl.

Die Prozedur sieht folgendermaßen aus:

Private Sub prozenterrechnen()
Dim proz As Variant

If [gem BL rund].Value > 0 Then
Select Case [Bauhöhe]
    Case 280 To 320
        stranzp = 6
        If [Lagigkeit] Like 22 Or [Lagigkeit] Like 33 Then
        strsick = 0
        Else
        strsick = 2
        End If
    Case 380 To 420
        stranzp = 8
        If [Lagigkeit] Like 22 Or [Lagigkeit] Like 33 Then
        strsick = 0
        Else
        strsick = 2
        End If
    Case 480 To 520
        strsick = 2
        stranzp = 12
    Case 530 To 570
        strsick = 2
        stranzp = 14
    Case 580 To 620
        strsick = 2
        stranzp = 14
    Case 680 To 720
        strsick = 2
        stranzp = 18
    Case 880 To 920
        strsick = 2
        stranzp = 22
End Select

proz = ([E_Aufknöpfprobe] / (((([Baulänge] / 100) * 3) - strsick) * stranzp))
[Prozente] = (proz)
End If
End Sub

Mfg
Robby

DF6GL

Hallo,

der Code sieht stellenweise sehr "mysteriös" aus, was die Datentypen betrifft...

Voraussetzung: alle betroffenen Tabellenfelder haben Datentyp Zahl, Long,   außer  "Prozente" hat Zahl,Double
Private Sub prozenterrechnen()
Dim dblproz As Double, lnganzp as Long, lngsick  as Long

If Me![gem BL rund] > 0 Then
Select Case Me![Bauhöhe]
    Case 280 To 320
        lnganzp = 6
        If Me![Lagigkeit] = 22 Or Me![Lagigkeit] = 33 Then
        lngsick = 0
        Else
        lngsick = 2
        End If
    Case 380 To 420
        lnganzp = 8
        If Me![Lagigkeit] = 22 Or Me![Lagigkeit] = 33 Then
        lngsick = 0
        Else
        lngsick = 2
        End If
    Case 480 To 520
        lngsick = 2
        lnganzp = 12
    Case 530 To 570
        lngsick = 2
        lnganzp = 14
    Case 580 To 620
        lngsick = 2
        lnganzp = 14
    Case 680 To 720
        lngsick = 2
        lnganzp = 18
    Case 880 To 920
        lngsick = 2
        lnganzp = 22
End Select

dblproz = Me![E_Aufknöpfprobe] / ((((Me![Baulänge] / 100#) * 3#) - lngsick) * lnganzp)   'ob diese Formel mathematisch stimmt, kann ich nicht beurteilen.
Me![Prozente] = dblproz

End If
End Sub