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...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

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

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access