PDA

Vollständige Version anzeigen : Schließenschaltfläche per Code deaktivieren


Rexrömmenen
30.08.2001, 06:51
hallo leute,

hab folgendes problem:

weiß nicht wie man per code die schließen- und Min-Max-schaltflächen deaktiviert. hab schon in der hilfe nachgeschaut aber da hab ich nix gefunden.

rex

BodoM
30.08.2001, 09:11
Hallo Rex,

habe gerade in der Hilfe nachgesehen; da heißt es:
"Sie können z. B. die Eigenschaft BorderStyle eines Formulars nur in der Formular-Entwurfsansicht einstellen"
ungewöhnlich!
Erstelle halt ein 2. Formular, ohne die entsprechenden Eigenschaften und lasse je nach Verwendung eines der Formulare öffnen.

Gruß Bodo

Rexrömmenen
30.08.2001, 10:40
danke für die antwort aber ich habe mir meine eigene menüleiste erstellt und in der kommen immer die schließen und min max schltflächen. ich weiß daß es solch einen befehl gibt aber ich weiß die syntax nicht. und ich muß diese schaltflächen in meiner Mehrbenutzerumgebung unbedingt deaktivieren

mfg

rex

Stema
31.08.2001, 08:17
Hallo Bodo,

so geht's:

Private Sub Form_Unload(Cancel As Integer)
Cancel = True
End Sub

Dann wird zwar die Schaltfläche nicht deaktiviert, das Formular wird aber nicht geschlossen.

Birgit Dannenberg
31.08.2001, 08:22
@Stema:
Ohne zusätzliche Bedingung dürfte das Formular nun nie mehr geschlossen werden, oder?
Zur Ergänzung würde ich eine Variable deklarieren, die beim Öffnen gesetzt wird, z.B. 'SchließenErlaubt = False'. Die müßte dann beim Schließen über die Menüfunktion auf True gesetzt und beim Unload abgefragt werden.

Gruß Birgit

Stema
31.08.2001, 08:27
@Birgit: Richtig! Wenn Rex das Schließen des Formulars zulassen möchte, dann Bedarf es natürlich noch Ergänzungen. Ich würde vermutlich eine globale Variable deklarieren (boolsch), die ich einfach auf TRUE setze, wenn das Schließen erlaubt sein soll. Der Code würde dann so aussehen:

Public Static Schliessen as Boolean (heißt das gleube ich)

Private Sub Form_Unload(Cancel As Integer)
If Schliessen = FALSE Then Cancel = True
End Sub

Rexrömmenen
31.08.2001, 08:54
jo des funktioniert.

thx

rex

sekoe
31.08.2001, 09:01
Hi,
mist, bin zu spät. Eine weitere Möglichkeit wäre noch gewesen:
In ein Modul folgende Funktion/Sub
Public Function fktInitForm(strForm As String, booCloseButton As Boolean)

' strForm = Formularname
' booCloseButton = True/False

' Damit nichts angezeigt wird
DoCmd.Echo False

' Formular im Design-Modus öffnen
DoCmd.OpenForm strForm, acDesign

' Eigenschaften, die nur im Designmodus geändert werden dürfen
Forms(strForm).CloseButton = booCloseButton

' Formular schliessen und speichern
DoCmd.Close acForm, strForm, acSaveYes

' Nicht vergessen !!!
DoCmd.Echo True

End Function

Vor dem (eigentlichen) öffnen des Formulares dann:

fktInitForm "Form", False
DoCmd.OpenForm "Form"

Aber hat sich jetzt ja schon erledigt ;-)