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
Hallo,
welche Datentyypen haben die einzelnen Variablen/Felder?
Der "str"-Prefix der Varibalennamen läßt Ungutes vermuten....
Zeig mal den Deklarationsteil der Prozedur...
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
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