Neuigkeiten:

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

Mobiles Hauptmenü

Laufzeitfehler 94

Begonnen von robsonlele, September 26, 2012, 09:01:25

⏪ vorheriges - nächstes ⏩

robsonlele

Hallo an alle,

ich hab wieder mal ein Problem das mir Kopfzerbrechen bereit.
Ich habe ein Formular erstellt, in welchem u.a. meine zwei problemfelder liegen.
Das eine Textfeld "Anzahl Punkte" kann händig von einem Prüfstand befüllt werden. Nach Eingabe der Werte wird automatisch im Textfeld "Prozente" der prozentuale Anteil der Punkte berechnet, so weit so gut.
Wenn ich aber Versuche den eingegebenen Wert aus dem Feld "Anzahl Puntke" zu löschen, wird das Feld "Prozente" grau und lässt die alte Prozentzahl stehen. wenn ich dann aus dem Prozente Feld rausgehen will, kommt die Fehlermeldung "Laufzeitfehler 94".
Merkwürdigerweise, passiert nichts mit dem Feld wenn nichts drin steht, sondern nur wenn man im Feld "Anzahl Punkte" etwas eingegeben hat und dann wieder löscht. Das verstehe ich nicht

Ist-Zustand sollte es eigentlich sein, dass das Feld auch nach dem Löschen des Wertes in Feld "Anzahl Punkte" weiß und leer bleibt.

Kann mir da jemand helfen? Hatte schonmal im Forum nachgeschaut. Irgendwas mit ner NZ() Fkt. aber das verstehe ich nicht, bzw. kann es mit meinen beschränkten Programmierfähigkeiten nicht auf mein Problem umbauen.

Danke schon mal im Voraus für eure Hilfe

Mfg Robby

MzKlMu

Hallo,
für den Fehler 94 gibt es die Lösung 4711  ;D

Im Ernst, zu einer Fehlernummer gehört auch der Fehlertext wörtlich zitiert.

Und zege mal die Formel wie Du diese verwendest. Die gehört eigentlich auch gleich zur Frage.
Gruß Klaus

robsonlele

Hallo,

sorry. Hier die benötigten Infos.  :)

Fehlernummern: Laufzeitfehler 94: Unzulässige Verwendung von Nullen.
Formel ist folgende:
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)
Me![Prozente Punkte KV-Blech] = dblproz

End If
End Sub

Wenn ich bei dem Laufzeitfehler auf Debuggen gehe, zeig er mir das der Fehler in der Zeile
dblproz = Me![E_Aufknöpfprobe] / ((((Me![Baulänge] / 100) * 3) - lngsick) * lnganzp)
erzeugt wird.

MzKlMu

Hallo,
die Fehlermeldung heist nicht "Unzulässige Verwendung von Nullen" sondern "Unzulässige Verwendung von Null". Damit ist auch nicht die Zahl Null (0) gemeint, sondern ein leeres Feld. Ein leeres Feld hat keinen Wert (=Null = Nix).

Welches Feld kann den leer sein?
Gruß Klaus

robsonlele

Hallo,

also leer sein könnte das Feld E_Ausknöpfprobe aus der beim Debuggen angezeigten Zeile der Formel.

MzKlMu

Hallo,
dann schließe die 2 Anweisungen in eine Prüfung auf Null ein:

If Not IsNull(Me![E_Aufknöpfprobe]) Then
    dblproz = Me![E_Aufknöpfprobe] / ((((Me![Baulänge] / 100) * 3) - lngsick) * lnganzp)
    Me![Prozente Punkte KV-Blech] = dblproz
End If
Gruß Klaus

robsonlele

Hallo,

zunächst einmal ein riesengroßes dankeschön, der lauffehler ist weg. Jetzt hab ich nur noch ein klitzekleines Problem.  ;D
Wenn ich zum Beispiel bei E_Ausknöpfrobe 34 eingebe kommt als Prozente 17,21%.
Lösche ich jetzt die 34 bleiben aber die 17% stehen und das Feld wird nicht leer.
Was muss ich bei dem Feld "Prozente" eingeben, damit er mir die Prozentzahl rauslöscht, falls das Feld versehentlich befüllt wurde.

MzKlMu

Hallo,
wo und wie wird denn die Prozentrechnung aufgerufen?
Gruß Klaus

robsonlele

Hallo,

also die Formel Prozentrechnen, habe ich in einer Exceltabelle erstellt dann hab ich die Tabelle ins Access importiert und daraus nimmt sich dann das Feld die Formel.

Also im Steuerelementinhalt steht "Prozente Punkt KV-Blech".

MzKlMu

Hallo,
wieso Excel?
Die Formel steht doch in einer VBA Sub in Access, da ist doch Excel nicht mehr im Spiel.

Meine Frage war ja auch, wie Du die Sub startest, ist das ein Button?
Gruß Klaus

robsonlele

Hallo,

sorry ich steck hier noch nicht so tief im Thema das ich immer verstehe was von mir gewollt wird.  ;D
Also der Sub wird gestartet wenn ich im Feld "E_Ausknöpfprobe" Enter drücke.

Beaker s.a.

Hallo Robby,
Ergänze Klaus' Code um einen Else-Zweig
If Not IsNull(Me![E_Aufknöpfprobe]) Then
    dblproz = Me![E_Aufknöpfprobe] / ((((Me![Baulänge] / 100) * 3) - lngsick) * lnganzp)
    Me![Prozente Punkte KV-Blech] = dblproz
Else
    Me![Prozente Punkte KV-Blech] = 0
End If

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

robsonlele

Hallo Ekkehard,

funktioniert super! Danke für die Hilfe

Gruß Robby