Bedingte Formatierung

17/11/2010 - 08:51 von Lupus Goebel | Report spam
Hallöschen,

ich rufe in Access 2007 im Ereigniss /beim Anzeigten/ folgenden Code auf:
\\\
Function Berechtigungen(strStatus As String)
Dim ctl As Control
With CodeContextObject
If strStatus = "gesperrt" Then
For Each ctl In .Controls
If ctl.Tag = "1" Then
Select Case True
Case TypeOf ctl Is TextBox
ctl.Enabled = False
Case TypeOf ctl Is ComboBox
ctl.Enabled = False
Case TypeOf ctl Is CommandButton
ctl.Enabled = False
Case TypeOf ctl Is CheckBox
ctl.Enabled = False
Case Else
End Select
End If
Next ctl
Else
For Each ctl In .Controls
If ctl.Tag = "1" Then
Select Case True
Case TypeOf ctl Is TextBox
ctl.Enabled = True
Case TypeOf ctl Is ComboBox
ctl.Enabled = True
Case TypeOf ctl Is CommandButton
ctl.Enabled = True
Case TypeOf ctl Is CheckBox
ctl.Enabled = True
Case Else
End Select
End If
Next ctl
End If
End With
End Function
///

Im Hauptformular ist ein Feld, das steuert ob alle weitere
Unterformulare oder sonstige Controls bearbeitet werden dürfen oder nicht.

Wenn bearbeiten erlaubt ist,kann es dennoch vorkommen das einzelne
Datenfelder dennoch nicht mehr bearbeitet werden dürfen. Dies habe ich
dann mit einer bedingten Formatierung realisiert.

Kann man das irgendwie umkehren oder muss ich meine bedingte
Formatierung auch in /beim Anzeigten/ irgendwie rein packen?


MfG - Lupus Goebel
Der Sumpf- Morasthobbybastler und Anfaenger mit
Wissensdurst (http://www.lupusdw.de http://foto.lupusdw.de)
Urlaub macht man in Irland: http://www.eaglesnest-bb.com/
 

Lesen sie die antworten

#1 Karl Donaubauer
17/11/2010 - 13:48 | Warnen spam
Lupus Goebel wrote:
ich rufe in Access 2007 im Ereigniss /beim Anzeigten/ folgenden Code
auf: \\\
Function Berechtigungen(strStatus As String)
Dim ctl As Control
With CodeContextObject
If strStatus = "gesperrt" Then
For Each ctl In .Controls
If ctl.Tag = "1" Then
Select Case True
Case TypeOf ctl Is TextBox
ctl.Enabled = False
Case TypeOf ctl Is ComboBox
ctl.Enabled = False
Case TypeOf ctl Is CommandButton
ctl.Enabled = False
Case TypeOf ctl Is CheckBox
ctl.Enabled = False
Case Else
End Select
End If
Next ctl
Else
...



Deine Select Case-Dinger kannst du übrigens erheblich kürzer schreiben:

Select Case ctl.ControlType
Case acTextBox, acComboBox, acCommandButton, acCheckBox
ctl.Enabled = False 'bzw. True
End Select

Im Hauptformular ist ein Feld, das steuert ob alle weitere
Unterformulare oder sonstige Controls bearbeitet werden dürfen oder
nicht.
Wenn bearbeiten erlaubt ist,kann es dennoch vorkommen das einzelne
Datenfelder dennoch nicht mehr bearbeitet werden dürfen. Dies habe ich
dann mit einer bedingten Formatierung realisiert.

Kann man das irgendwie umkehren oder muss ich meine bedingte
Formatierung auch in /beim Anzeigten/ irgendwie rein packen?



Verstehe ich richtig?
Du setzt per o.a. Code "Beim Anzeigen" des Formulares alle
Steuerelemente dieser Typen auf Enabled, deine BF setzt
manche davon wieder auf Enabled = False.

Wenn ja, dann verstehe ich das Problem nicht, denn das sollte
beides parallel funktionieren, d.h. die BF die Steuerelemente
wie gewünscht wieder deaktivieren.

Was klappt denn bei dir nicht?
bzw.
Was möchtest du anders haben?

Servus
Karl
*********
Access-FAQ: http://www.donkarl.com

Ähnliche fragen