PDA

Vollständige Version anzeigen : Feldinhalt im Formular


Vierfi
27.09.2005, 10:55
Hallo an alle!

Ich habe ein kleines Problem.

In einem Formular einer Access2002 Datenbank gibt es 3 ungebundene Felder:
Wert1, Wert2, Wert3.
Wert1 und Wert2 werden eingetragen.
Wert3 soll errechnet werden.
Dazu gibt es eine Funktion:

Function GetWert3()
GetWert3 = Me!Wert1 * 2 + Me!Wert2
End Function

Als Steuerelementinhalt für das Feld Wert3 ist eingetragen: =[GetWert3].
Bei jeder Aktualisierung der Felder Wert1 und Wert2 wird dabei das Feld Wert3 auch automatisch aktualisiert.

In Access 2002 oder 2000 funktioniert es einwandfrei.

Wenn man aber die gleiche mdb in Access 2003 öffnet, funktioniert es leider nicht.

Könnte mir jemand bitte helfen und erklären, woran es liegt, oder was muss man ändern?

Vielen Dank im Voraus.

Vierfi

molnar
27.09.2005, 11:17
Da es sich um einen Funktionsaufruf und nicht um einen Feldinhalt handelt, der zugewiesen werden soll, müßte die Syntax =GetWert3() lauten.

Gruß,
Reinhard

Vierfi
27.09.2005, 12:10
Mit der Syntax =GetWert3() funktioniert es auch nicht...

Nouba
27.09.2005, 12:13
Setze in jedem Modulkopf Option Explicit ein und kompiliere die DB. Prüfe ggf. auch einmal die Verweise.

Vierfi
27.09.2005, 12:54
Danke für die Antworten.
Aber es funktioniert nicht.

Beim öffnen der mdb mit Access 2002 läuft alles. Mit der Syntax =[GetWert3].
Die gleiche mdb unter Access 2003 läuft nicht...

Nouba
27.09.2005, 22:56
Versuche bitte ein Minimalbeispiel zu erstellen - zu erraten ist das Fehlverhalten anscheinend nicht.

Vierfi
28.09.2005, 12:05
Hallo Nouba!

Das, worum es geht, ist auch ein Minimalbeispiel.
Noch einmal genauer.

Die mdb besteht nur aus einem Formular. Das Formular beinhaltet nur 3 ungebundene Felder: Wert1, Wert2, Wert3 und ein Modul.
Als Steuerelementinhalt für das Feld Wert3 steht: =[GetWert3].

Das Modul beinhaltet nur eine Funktion GetWert3 und sieht so aus:

Option Compare Database
Option Explicit

Function GetWert3()

If Not IsNull(Me!Wert1) And Not IsNull(Me!Wert2) Then
GetWert3 = Me!Wert1 * 2 + Me!Wert2
Else
GetWert3 = -2
End If

End Function

In Access 2002 oder 2000 wird bei jeder aktualisierung der Felder Wert1 und/oder Wert2 das Feld Wert3 neuberechnet.
In Access 2003 - nicht.

Bestimmt weis jemand, woran es liegt. Aber ich nicht, darum bitte ich um Hilfe.

Gruss,
vierfi

Nouba
28.09.2005, 12:28
Ich kann das Verhalten bestätigen. Mit einer Formel im Steuerelementeinhalt
=Wenn(IstNull([Wert1]) Oder IstNull([Wert2]);-2;[Wert1]*2+[Wert2])
geht es oder Du mußt wohl bei jedem Steuerelement im AfterUpdate die Berechnung erneut anstossen.

Vierfi
29.09.2005, 08:55
Schade, aber es bleibt wohl die einzige Möglichkeit alles neu zu programmieren.
Weil im Original gibt es zig Felder, für die ich diese Berechnungs-Methode angewendet habe. Und die Funktionen sind natürlich sehr umfangreich, nicht wie im Beispiel.

Ich finde es nur irgendwie komisch, dass Access sich abwärts entwickelt.
Kann aber sein, dass einiges nicht dokumentiert ist, und das Problem hat eine sehr einfache Lösung.

Danke für die Mühe.

Gruss,
vierfi