PDA

Vollständige Version anzeigen : Formular mit berechneten Feldern sperren


Franne
09.08.2001, 13:43
Hallo Ihr alle,

habe folgendes Problem:
Mein Formular enthält zum einen Felder, in die über Steuerelementinhalt Formeln eingegeben sind und zum anderen Felder, in die Werte zur Berechnung der Felder eingegeben werden.
Ausserdem sind Felder enthalten, die aus den berechneten Feldern und Abfrageergebnissen Werte berechnen (Diese Formeln stehen ebenfalls im Steuerelementinhalt). Um das alles zu berechnen verstreichen schon so 3 bis 4 Sekunden. Funktioniert wunderbar!
Aber, klickt man, während die Berechnung noch läuft, in eines der Eingabefelder, wird die Berechnung der Felder, die die Werte aus dem Formular und der Abfrage beziehen, mit dem Eintrag #Fehler unterbrochen.

Wie kann ich das Formular nun so lange sperren, solange noch Berechnungen am Laufen sind?

Hoffe, ich habe mich verständlich ausgedrückt! Würde mich über jede Antwort freuen! Vielen Dank!

Grüsse, Franne

erwin
09.08.2001, 14:02
sehr "klar" ist mir zwar nicht, was du da eigentlich treibst, aber wenn du gleichzeitig mit dem Start der Berechnung (? wie erfolgt denn dieser ?) alle Controls auf deinem Formular sperrst (Eigenschaften .locked = True, .enabled = False), könnte das vielleicht helfen.

so long erwin...

Franne
09.08.2001, 15:37
Hallo erwin,

vielen Dank für die schnelle Reaktion! Hatte gerade wohl selbst nicht so den rechten Überblick!

1. Es sollen ALLE im Formular enthaltenen Felder in einer Tabelle abgespeichert werden.
2. Es gibt Eingabefelder
3. Und daraus berechnete Felder
4. Da manche Felder jedoch ihre Werte zum Teil aus Abfragen holen, müssen diese Abfragen erst wieder mit den Werten aus 2. und 3. aktualiesiert, also gespeichert werden.
5. Daraufhin erst sollen die Felder, die die Werte aus den Abfragen und dem Formular holen, berechnet werden. Im Moment zeigen diese Felder noch #Fehler an, wenn man während der Berechnung in ein Eingabefeld des Formulars klickt.
Darum anfangs die Frage, wie ich das Formular während der Berechnung sperren kann.

Aber könnte ich obengenannten Lösungsweg über VBA programmieren, könnte ich das Problem dass die Berechnung unterbrochen wird umgehen. Nur leider habe ich davon fast keine Ahnung mit welchen Befehlen das geht. Vor allem, wie bekomme ich die Berechnungsformeln unter? Die stehen nämlich im Moment alle unter Steuerelementinhalt und sehen z.B. so aus:
=Nz(ZDouble(DomMittelwert("[Abfrage Wochendurchschnitt1].[Mittel1_S1_W_t]";"[Abfrage Wochendurchschnitt1]";"Format([Text585],'ww')")))

Vielleicht kannst Du mir nur so prinzipiell mal den Code so ungefähr verdeutlichen. Vielen Dank dafür!

Gruß, Franne

Benjamin
09.08.2001, 21:37
hallo,

vielleicht hilft Dir dieser Beitrag von Manuela Kulpa von Oktober 2000 über die Sperrung aller felder eines Formulares:

' eine Controlvariable
Dim ctr As Control
' Schleife über alle Controls im Detailbereich
For Each ctr In Me.Detailbereich.Controls
' Typ bestimmen, da Labels, Linien usw. nicht gesperrt werden können
Select Case ctr.ControlType
Case Is = acTextBox, acComboBox, acListBox, acCheckBox, acOptionButton, acOptionGroup
ctr.Locked = True
End Select
' Gehe zum nächsten Control
Next ctr

Allerdings fürchte ich, dass Du die Berechnung dann in den Code legen musst anstatt ins Steuerelement...

trotzdem viel Spaß
benjamin