PDA

Vollständige Version anzeigen : Fehlermeldung: Update or .....


Ralf Nowak
06.08.2001, 16:09
Hallo zusammen,

ich habe ein Problem. Ich bekomme immer folgende Fehlermeldung, weiss damit aber nichts anzufangen :( :

Update or CancelUpdate without AddNew or Edit

Kann mir jemand helfen?

A.S.
06.08.2001, 16:39
Hallo Ralf,

das heißt das Du im Coding versuchst die Bearbeitung eines Datensatzes abzubrechen oder geänderte Daten zu speichern ohne vorher einen neuen Datensatz zu erzeugen oder einen bestehenden Datensatz zur Veränderung zu markieren.

Heißt im konkreten Fall: Die zugehörige Tabelle.AddNew bzw. Tabelle.Edit Anweisung wird aufgrund von Logikfehlern nicht durchgeführt.

Um mehr zu sagen, müßte man Deinen Code sehen.

Gruß

Arno

Ralf Nowak
09.08.2001, 08:48
Hallo Arno,

hier ist der Code, der nach Verlassen eines Feldes aufgerufen wird:

Private Sub VK_ohne_Aufschlag_Exit(Cancel As Integer)

If Allgemein.FormIsOpen("Materialstamm") = 0 Then
Exit Sub
End If

Dim kalkpreis As Double
Dim stdsatz_waeh As Double

Select Case Forms![Materialstamm]![Materialstamm_Preise]![Waehrung]
Case "DEM"
If Stdsatzwaehrung = "DEM" Then
stdsatz_waeh = Stdsatz
End If
If Stdsatzwaehrung = "EUR" Then
stdsatz_waeh = Stdsatz_umg
End If
Case "EUR"
If Stdsatzwaehrung = "EUR" Then
stdsatz_waeh = Stdsatz
End If
If Stdsatzwaehrung = "DEM" Then
stdsatz_waeh = Stdsatz_umg
End If
End Select

If Lohnbearbeitung = True Then
kalkpreis = VK_ohne_Aufschlag + (Anz_Stunden * stdsatz_waeh)
Else
kalkpreis = VK_ohne_Aufschlag
End If

Forms![Materialstamm]![Materialstamm_Preise]![Kalkulationspreis] = kalkpreis

Berechnungen.Vorschlagswerte

' Variablen deklarieren
Dim Waehrung As String
Dim fob As Double
Dim sea As Double
Dim air As Double
Dim brasilien As Double
Dim kunde As Double
Dim service As Double
Dim Tuerkei As Double
Dim Cimtas As Double
Dim Japan As Double

' Werte übergeben
Waehrung = Forms![Materialstamm]![Materialstamm_Preise]![Waehrung]
fob = Forms![Materialstamm]![Materialstamm_Preise]![Preis_Indien_FOB]
sea = Forms![Materialstamm]![Materialstamm_Preise]![Preis_Indien_SEA]
air = Forms![Materialstamm]![Materialstamm_Preise]![Preis_Indien_AIR]
brasilien = Forms![Materialstamm]![Materialstamm_Preise]![Preis_Brasilien]
kunde = Forms![Materialstamm]![Materialstamm_Preise]![Preis_Kunde]
service = Forms![Materialstamm]![Materialstamm_Preise]![Preis_Service]
Tuerkei = Forms![Materialstamm]![Materialstamm_Preise]![Tuerkei]
Cimtas = Forms![Materialstamm]![Materialstamm_Preise]![Cimtas]
Japan = Forms![Materialstamm]![Materialstamm_Preise]![Japan]

' Aufruf des Moduls zur Berechnung
Call Berechnungen.DM_Euro(Waehrung, fob, sea, air, brasilien, kunde, service, Tuerkei, Cimtas, Japan)

End Sub

...hier das Modul DM_Euro:

Function DM_Euro(Waehrung As String, fob As Double, sea As Double, air As Double, _
brasilien As Double, kunde As Double, service As Double, _
Tuerkei As Double, Cimtas As Double, Japan As Double)

' ...eingegebene Währung prüfen
If Waehrung = "DEM" Then GoTo EUR_berechnen
If Waehrung = "EUR" Then GoTo DEM_berechnen

EUR_berechnen:

Waehrung = "EUR"
fob = Fix("" & (fob / 1.95583) / 0.01 + Sgn(fob / 1.95583) * 0.5) * 0.01
sea = Fix("" & (sea / 1.95583) / 0.01 + Sgn(sea / 1.95583) * 0.5) * 0.01
air = Fix("" & (air / 1.95583) / 0.01 + Sgn(air / 1.95583) * 0.5) * 0.01
brasilien = Fix("" & (brasilien / 1.95583) / 0.01 + Sgn(brasilien / 1.95583) * 0.5) * 0.01
kunde = Fix("" & (kunde / 1.95583) / 0.01 + Sgn(kunde / 1.95583) * 0.5) * 0.01
service = Fix("" & (service / 1.95583) / 0.01 + Sgn(service / 1.95583) * 0.5) * 0.01
Tuerkei = Fix("" & (Tuerkei / 1.95583) / 0.01 + Sgn(Tuerkei / 1.95583) * 0.5) * 0.01
Cimtas = Fix("" & (Cimtas / 1.95583) / 0.01 + Sgn(Cimtas / 1.95583) * 0.5) * 0.01
Japan = Fix("" & (Japan / 1.95583) / 0.01 + Sgn(Japan / 1.95583) * 0.5) * 0.01

GoTo Wertübergabe

DEM_berechnen:

Waehrung = "DEM"
fob = Fix("" & (fob * 1.95583) / 0.01 + Sgn(fob * 1.95583) * 0.5) * 0.01
sea = Fix("" & (sea * 1.95583) / 0.01 + Sgn(sea * 1.95583) * 0.5) * 0.01
air = Fix("" & (air * 1.95583) / 0.01 + Sgn(air * 1.95583) * 0.5) * 0.01
brasilien = Fix("" & (brasilien * 1.95583) / 0.01 + Sgn(brasilien * 1.95583) * 0.5) * 0.01
kunde = Fix("" & (kunde * 1.95583) / 0.01 + Sgn(kunde * 1.95583) * 0.5) * 0.01
service = Fix("" & (service * 1.95583) / 0.01 + Sgn(service * 1.95583) * 0.5) * 0.01
Tuerkei = Fix("" & (Tuerkei * 1.95583) / 0.01 + Sgn(Tuerkei * 1.95583) * 0.5) * 0.01
Cimtas = Fix("" & (Cimtas * 1.95583) / 0.01 + Sgn(Cimtas * 1.95583) * 0.5) * 0.01
Japan = Fix("" & (Japan * 1.95583) / 0.01 + Sgn(Japan * 1.95583) * 0.5) * 0.01

GoTo Wertübergabe

Wertübergabe:

Forms![Materialstamm]![Materialstamm_Preise]![waehrung_ber] = Waehrung
Forms![Materialstamm]![Materialstamm_Preise]![fob_ber] = fob
Forms![Materialstamm]![Materialstamm_Preise]![sea_ber] = sea
Forms![Materialstamm]![Materialstamm_Preise]![air_ber] = air
Forms![Materialstamm]![Materialstamm_Preise]![brasilien_ber] = brasilien
Forms![Materialstamm]![Materialstamm_Preise]![kunde_ber] = kunde
Forms![Materialstamm]![Materialstamm_Preise]![service_ber] = service
Forms![Materialstamm]![Materialstamm_Preise]![tuerkei_ber] = Tuerkei
Forms![Materialstamm]![Materialstamm_Preise]![cimtas_ber] = Cimtas
Forms![Materialstamm]![Materialstamm_Preise]![japan_ber] = Japan

End Function

Ich kann keinen Fehler entdecken :(. Weißt du wo der Fehler steckt?

Vielen Dank im voraus,
Ralf

A.S.
09.08.2001, 09:42
Hallo Ralf,

poste bitte noch diese Funktion:

Berechnungen.Vorschlagswerte


Gruß

Arno

Ralf Nowak
09.08.2001, 20:49
Hi Arno,

hier noch die andere Funktion:

Function Vorschlagswerte()

' Variablen definieren
Dim Aufschlag_Indien_FOB As Double
Dim Aufschlag_Indien_SEA As Double
Dim Aufschlag_Indien_AIR As Double
Dim Aufschlag_Brasilien As Double
Dim Preis_Indien_FOB As Double
Dim Preis_Indien_SEA As Double
Dim Preis_Indien_AIR As Double
Dim Preis_Brasilien As Double
Dim Preis_Kunde As Double
Dim Preis_Service As Double
Dim Preis_Tuerkei As Double
Dim Preis_Cimtas As Double
Dim Preis_Japan As Double
Dim grundpreis As Double

' Grundpreis ohne Aufschlag aus Formular holen
grundpreis = Forms![Materialstamm]![Materialstamm_Preise]![Kalkulationspreis]

' Aufschläge für Berechnung der Preise für Indien und Brasilien festlegen
Aufschlag_Indien_FOB = 0.2 ' 20% Aufschlag
Aufschlag_Indien_SEA = 0.04 ' 4% Aufschlag
Aufschlag_Indien_AIR = 0.1 ' 10% Aufschlag
Aufschlag_Brasilien = 0.1 ' 10% Aufschlag

' Berechnung der Vorschlagswerte für die entsprechenden Felder
' ...keine Berechnung wenn grundpreis <= 0
If grundpreis > 0 Then
' Preise für Indien berechnen
Preis_Indien_FOB = grundpreis * (1 + Aufschlag_Indien_FOB)
Preis_Indien_SEA = grundpreis * (1 + Aufschlag_Indien_FOB + Aufschlag_Indien_SEA)
Preis_Indien_AIR = grundpreis * (1 + Aufschlag_Indien_FOB + Aufschlag_Indien_AIR)

' Preis für Brasilien berechnen
Preis_Brasilien = grundpreis * (1 + Aufschlag_Brasilien)

' Preis für Verkauf an Kunden berechnen
' Aufschlagsschema: <1; 200%;
' >=1 & <10; 100%;
' >=10 & <100; 70%;
' >=100 & <1000; 50%;
' >=1000; 40%
If grundpreis < 1 Then
Preis_Kunde = grundpreis * (1 + 2) ' 200% Aufschlag
ElseIf grundpreis >= 1 And grundpreis < 10 Then
Preis_Kunde = grundpreis * (1 + 1) ' 100% Aufschlag
ElseIf grundpreis >= 10 And grundpreis < 100 Then
Preis_Kunde = grundpreis * (1 + 0.7) ' 70% Aufschlag
ElseIf grundpreis >= 100 And grundpreis < 1000 Then
Preis_Kunde = grundpreis * (1 + 0.5) ' 50% Aufschlag
ElseIf grundpreis >= 1000 Then
Preis_Kunde = grundpreis * (1 + 0.4) ' 40% Aufschlag
End If

' Preis für Servicelieferung berechnen
Preis_Service = Preis_Kunde * 0.85 ' -15% Rabatt auf Kundenpreis

' Preis für Tuerkei berechnen
Preis_Tuerkei = grundpreis * (1 + 0.5) ' 50% Aufschlag

' Preis für Cimtas berechnen
Preis_Cimtas = grundpreis * (1 + 0.5) ' 50% Aufschlag

' Preis für Japan berechnen
Preis_Japan = grundpreis * (1 + 0.5) ' 50% Aufschlag

Else
' Meldung, wenn der Grundpreis kleiner oder gleich null ist
msgbox "Verkaufsgrundpreis darf nicht kleiner oder gleich null sein!"
End If

' Ergebnisse auf 2 Stellen runden
Preis_Indien_FOB = Fix("" & Preis_Indien_FOB / 0.01 + Sgn(Preis_Indien_FOB) * 0.5) * 0.01
Preis_Indien_SEA = Fix("" & Preis_Indien_SEA / 0.01 + Sgn(Preis_Indien_SEA) * 0.5) * 0.01
Preis_Indien_AIR = Fix("" & Preis_Indien_AIR / 0.01 + Sgn(Preis_Indien_AIR) * 0.5) * 0.01
Preis_Brasilien = Fix("" & Preis_Brasilien / 0.01 + Sgn(Preis_Brasilien) * 0.5) * 0.01
Preis_Kunde = Fix("" & Preis_Kunde / 0.01 + Sgn(Preis_Kunde) * 0.5) * 0.01
Preis_Service = Fix("" & Preis_Service / 0.01 + Sgn(Preis_Service) * 0.5) * 0.01
Preis_Tuerkei = Fix("" & Preis_Tuerkei / 0.01 + Sgn(Preis_Tuerkei) * 0.5) * 0.01
Preis_Cimtas = Fix("" & Preis_Cimtas / 0.01 + Sgn(Preis_Cimtas) * 0.5) * 0.01
Preis_Japan = Fix("" & Preis_Japan / 0.01 + Sgn(Preis_Japan) * 0.5) * 0.01

' Vorschlagswerte in die entsprechenden Formularfelder stellen
' Wenn der Grundpreis kleiner oder gleich null ist, wird hier der Feldinhalt
' der unten aufgeführten Preisfelder zurückgesetzt
Forms![Materialstamm]![Materialstamm_Preise]![Preis_Indien_FOB] = Preis_Indien_FOB
Forms![Materialstamm]![Materialstamm_Preise]![Preis_Indien_SEA] = Preis_Indien_SEA
Forms![Materialstamm]![Materialstamm_Preise]![Preis_Indien_AIR] = Preis_Indien_AIR
Forms![Materialstamm]![Materialstamm_Preise]![Preis_Brasilien] = Preis_Brasilien
Forms![Materialstamm]![Materialstamm_Preise]![Preis_Kunde] = Preis_Kunde
Forms![Materialstamm]![Materialstamm_Preise]![Preis_Service] = Preis_Service
Forms![Materialstamm]![Materialstamm_Preise]![Tuerkei] = Preis_Tuerkei
Forms![Materialstamm]![Materialstamm_Preise]![Cimtas] = Preis_Cimtas
Forms![Materialstamm]![Materialstamm_Preise]![Japan] = Preis_Japan

End Function

Vielen Dank schonmal für deine Hilfe,
Ralf