Ist die Eingabe in einem Access Formular abgeschlossen, so will man häufig einen Teil oder alle Felder sperren. In VBA hat man mit Controls beinahe unbeschränkte Manipulationsmöglichkeiten.
Beispiel 1, Sperren aller Felder ausser den Checkboxen:
Dim ctl As Control
On Error Resume Next
For Each ctl In Me
'alle Checkboxen bleiben zugreifbar
If ctl.Properties("ControlType") <> 106 Then
'fldFullAccess ist eine Checkbox im Formular
ctl.Locked = Not Me!fldFullAccess
ctl.editable = Me!fldFullAccess
End If
'Weil es so einfach ist, schalten wir gleich noch den Button für den FileDialog sichtbar oder unsichtbar
If ctl.Properties("ControlType") = 104 Then
ctl.Properties("Visible") = Me!fldFullAccess
End If
Next
Beispiel 2, Sperren aller Felder unterhalb der y-Koordinate 590
Dim ctl As Control
On Error Resume Next
For Each ctl In Me
'alle Felder unterhalb y=590 werden gesperrt
If ctl.Properties("Top") > 590 Then
'fldFullAccess ist eine Checkbox im Formular
ctl.Locked = Not Me!fldFullAccess
End If
Next
Hier eine Auflistung der Control Konstanten inkl. zugehöriger Wert:
Constant Value
acBoundObjectFrame 108
acCheckBox 106
acComboBox 111
acCommandButton 104
acCustomControl 119
acImage 103
acLabel 100
acLine 102
acListBox 110
acObjectFrame 114
acOptionButton 105
acOptionGroup 107
acPage 124
acPageBreak 118
acRectangle 101
acSubform 112
acTabCtl 123
acTextBox 109
acToggleButton 122
und hier die möglichen Funktionen an einem Beispiel einer Textbox:
EventProcPrefix = ID_Anf
Name = ID_Anf
ControlType = 109
ControlSource = ID_Anf
Format = General Number
DecimalPlaces = 255
Visible = Wahr
TextFormat = 0
DatasheetCaption =
ShowDatePicker = 1
Width = 975
Height = 315
Top = 600
Left = 8730
BackStyle = 1
BackColor = 16777215
BorderStyle = 1
OldBorderStyle = 1
BorderLineStyle = 0
BorderWidth = 3
BorderColor = 52479
SpecialEffect = 4
ScrollBars = 0
TextFontCharSet = 0
FontName = Arial
FontSize = 9
TextAlign = 0
FontWeight = 400
FontUnderline = Falsch
FontItalic = Falsch
FontBold = 0
ForeColor = 0
LineSpacing = 0
IsHyperlink = Falsch
DisplayAsHyperlink = 0
GridlineStyleTop = 0
GridlineStyleBottom = 0
GridlineStyleLeft = 0
GridlineStyleRight = 0
GridlineColor = 0
GridlineWidthTop = 1
GridlineWidthBottom = 1
GridlineWidthLeft = 1
GridlineWidthRight = 1
TopMargin = 0
BottomMargin = 0
LeftMargin = 0
RightMargin = 0
TopPadding = 30
BottomPadding = 30
LeftPadding = 30
RightPadding = 30
HorizontalAnchor = 0
VerticalAnchor = 0
CanGrow = Falsch
CanShrink = Falsch
DisplayWhen = 0
ReadingOrder = 0
ScrollBarAlign = 0
NumeralShapes = 0
KeyboardLanguage = 0
InputMask =
DefaultValue =
ValidationRule =
ValidationText =
FilterLookup = 1
Enabled = Wahr
Locked = Wahr
OnClick = [Event Procedure]
OnClickEmMacro =
BeforeUpdate =
BeforeUpdateEmMacro =
AfterUpdate =
AfterUpdateEmMacro =
OnDirty =
OnDirtyEmMacro =
OnChange =
OnChangeEmMacro =
OnGotFocus =
OnGotFocusEmMacro =
OnLostFocus =
OnLostFocusEmMacro =
OnDblClick =
OnDblClickEmMacro =
OnMouseDown =
OnMouseDownEmMacro =
OnMouseUp =
OnMouseUpEmMacro =
OnMouseMove =
OnMouseMoveEmMacro =
OnKeyDown =
OnKeyDownEmMacro =
OnKeyUp =
OnKeyUpEmMacro =
OnKeyPress =
OnKeyPressEmMacro =
OnEnter =
OnEnterEmMacro =
OnExit =
OnExitEmMacro =
OnUndo =
OnUndoEmMacro =
EnterKeyBehavior = Falsch
ControlTipText =
TabIndex = 6
TabStop = Wahr
StatusBarText =
ShortcutMenuBar =
HelpContextId = 0
AutoTab = Falsch
Vertical = Falsch
AllowAutoCorrect = Wahr
IMEHold = Falsch
IMEMode = 0
IMESentenceMode = 3
SmartTags =
Tag =
ConditionalFormat =
FuriganaControl =
ColumnWidth = 1245
ColumnOrder = 0
ColumnHidden = Falsch
Section = 0
AggregateType = -1
Layout = 0
LayoutID = 0
Beliebte Posts
-
Gewinkelte Verbindungen im Powerpoint sind äusserts praktisch, verhalten sich aber zuweilen recht 'störrisch'. Mit den Einstellungen...
-
Vista wird mit der Zeit immer langsamer, nicht zuletzt weil sich immer mehr Datenmüll ansammelt. Das Inaktivierten der zuletzt aufgerufenen...
-
Fehler 404 Hallo, ich bin der Webserver.... Sorry, ich kann diese Seite nicht finden. D...
Donnerstag, 29. Oktober 2009
Sonntag, 11. Oktober 2009
Security Essentials
Ich gehe zwar davon aus, dass sich das Zielpublikum meines Blogs der Gefahren durch Malware bewusst ist und sich entsprechend schützt. Trotzdem weise ich an diese Stelle auf das von Microsoft (endlich) erschienene Programm Security Essentials hin. Käufliche Virentester werden dadurch zwar nicht ersetzt, für einfache Anforderungen scheint es aber gemäss ersten Tests ausreichend zu sein.
Sonntag, 4. Oktober 2009
Toodledo oder Remember the milk
Die kürzlich vorgestellte iPhone App 'Appigo' kann durch den Einsatz von Toodledo noch veredelt werden. Mit dem Lösen eines Accounts ist es möglich, im Outlook erstellte Aufgaben direkt auf Appigo im iPhone zu übertragen. Dazu muss aber noch ein kleines Progrämmchen auf den Ziel PC geladen werden, das entweder automatisch oder manuell synchronisieren kann. Ausserdem ermöglicht Toodledo den Datenaustausch mit vielen anderen Applikationen wie z.B. Twitter, Google, Palm, Vista Gadget und, und, und ... Toodledo bietet auch eine eigene iPhone Applikation, die aber mindestens bis vor kurzem nicht überzeugte. Der Gratisaccount kann schon sehr viel. Möchte man noch Anhänge hochladen, statistische Auswertungen machen usw. kann man einen Pro Account lösen. Ausser mit Toodledo kann Appigo auch mit 'Remember the milk' kommunizieren. Eine direkte Konkurrenz, die ich aber nicht näher kenne. Eine Beschreibung aller Funktionen würde den Rahmen dieses Beitrages bei weitem sprengen, es gibt aber diverse Anleitungen, Blogs usw. im Netz die sich dem Thema annehmen.
So, damit ist die Reihe iPhone App der Woche als regelmässige Kolumne vorderhand beendet und ich werde mich in nächster Zeit wieder Access Themen widmen. Über das iPhone gibt es mittlerweile dermassen viele Seiten, dass weitere Beiträge hier überflüssig sein dürften.
Google Treffer als Mindmap

Google werkelt seit einigen Monaten an einer Idee, die ich genial finde. Die Trefferliste kann auch als Mindmap dargestellt werden. Einige Beispiele haben mich innerhalb von Sekunden überzeugt. Aber probiert es selbst, die Anleitung findet ihr hier.
Aber Achtung: Leider gibt es nur Zugriff auf die Mindmaps, wenn die Sprache in den Einstellungen auf Englisch umgestellt ist, so dass die Seite google.com erreicht werden kann. Die Option ist nur dort ersichtlich. An sich kein Problem, aber für Schweizer entfällt die Option 'nur deutschsprachige Seiten', was ein bisschen schade ist.
Datenträgerbereinigung aus der Dose
Kürzlich wurde ich mit dem Problem konfrontiert, dass nach einer misslungenen Programminstallation (soll es ja unter Windows geben), der PC bei jedem Neustart von Windows automatisch eine Datenträgerkontrolle startete, das Problem nicht beheben konnte und wieder neu bootete. Was passiert in einem solchen Fall? Erkennt Windows beim Start ein Konsistenzproblem der Harddisk, so startet es automatisch das über 30 jährige Dos Programm 'chkdsk' (kein Scherz!). Leider wird aber chkdsk nur im Analysemodus und nicht im Bereinigunsmodus gestartet (ein schlechter Scherz von Microsoft). Das bedeutet, dass Windows das Problem nicht lösen kann und jedesmal durch Überspringen der Routine gestartet werden muss.
Um dieses Problem zu beheben ist einmal mehr die Hilfe der uralten Dose angesagt und das geht folgendermassen:
Start -> Ausführen -> cmd
Nun den Befehl chkdsk /f eingeben. Dos erkennt, dass es im Moment nichts machen kann weil Windows läuft, fragt aber, ob ein Task für den nächsten Start angelegt werden soll. Diese Frage unbedingt mit Ja beantworten und Windows neu starten. Nun behebt chckdsk beim nächsten Start hoffentlich das Problem. Bei mir funktionierte es auf jeden Fall und der PC läuft wieder einwandfrei.
Anmerkung: Diese Anleitung bezieht sich Windows XP Professional SP3, ich weiss nicht, ob sich jede Windows Version so verhält.
Um dieses Problem zu beheben ist einmal mehr die Hilfe der uralten Dose angesagt und das geht folgendermassen:
Start -> Ausführen -> cmd
Nun den Befehl chkdsk /f eingeben. Dos erkennt, dass es im Moment nichts machen kann weil Windows läuft, fragt aber, ob ein Task für den nächsten Start angelegt werden soll. Diese Frage unbedingt mit Ja beantworten und Windows neu starten. Nun behebt chckdsk beim nächsten Start hoffentlich das Problem. Bei mir funktionierte es auf jeden Fall und der PC läuft wieder einwandfrei.
Anmerkung: Diese Anleitung bezieht sich Windows XP Professional SP3, ich weiss nicht, ob sich jede Windows Version so verhält.
Abonnieren
Posts (Atom)