PDA

Vollständige Version anzeigen : Autokorrektur per VBA Code ein/ausschalten


jacobian
22.03.2004, 08:26
Hallo,

ich möchte gern beim Start meiner Datenbank die Autokorrektur von
Microsoft Access 2000 per VBA Code deaktivieren. ( Menü "Extra - Autokorrektur" ).

Mit Setoption kann ich leider nur die Optionen von Access beeinflussen.

Kann mir jemand einen Tipp geben, welches Objekt diese Funktionen
steuert.


MfG

Andreas

TommyK
22.03.2004, 09:21
Hallo Andreas,

vielleicht hilft Dir der Punkt: AllowAutoCorrect-Eigenschaft (AutoKorrekturZulassen) in der OH weiter.

JWK
08.09.2004, 08:58
Hallo Jacobian,
hast Du schon eine Lösung. Ich habe nämlich das gleiche Problem.

Eine Formularfeld bezogene Lösung habe ich unter http://www.smarttools.de/smarttips/access/access.157.shtml gefunden.
Aber ich möchte eben per VBA die Autokorrektur für die ganze Datenbank abschalten.

Gruß JWK

jacobian
09.09.2004, 07:39
Nein habe leider noch keine Möglichkeit über VBA gefunden.

JWK
09.09.2004, 08:11
Hallo jacobian,

Die AllowAutoCorrect-Eigenschaft (s. Hinweis von TommyK) kann nur für einzelne Steuerelemente in Formularen genützt werden.

Eine Nutzung von SetOptions scheidet auch aus, diese bietet keine Möglichkeit auf die AutoKorrektur zuzugreifen. Damit können nur Optionen unter EXTRAS --> OPTIONEN eingestellt werden.

In einem anderen Forum gab man mir den Tipp in der Registry den Schlüssel
HKEY_CURRENT_USER\Software\Microsoft\Office\x.0\Common\AutoCorrect\ReplaceText auf 0 setzen
(x steht für die Access-Version, also 9 für A2000).
Das geht mit API. Das ist -soweit mir bekannt- die einzige Möglichkeit das automatisch zu deaktivieren. Alleine bekomme ich das jedoch auch nicht hin.

Hinweis: Die Abschaltung der Autokorrektur wirkt sich auf alle Access-Datenbanken aus.

Alternative: In einer meiner Datenbanken sind Standardsymbol und -Menüleiste ausgeblendet (dadurch fehlt die Einstellmöglichkeit zur Autokorrektur). Statt dessen gibt es eine benutzerdefinierte Leiste. In diese werde ich einen Button integrieren, der über eine Function die Registerkarte Autokorrektur direkt aufruft. Dann kann der User individuell die Autokorrektur einstellen. :rolleyes:

Function AutoKorrektur()
On Error GoTo AutoKorrektur_Err

'Aufrufen des Dialogfeldes "AutoKorrektur".
DoCmd.RunCommand acCmdAutoCorrect

AutoKorrektur_Exit:
Exit Function

AutoKorrektur_Err:
MsgBox Error$
Resume AutoKorrektur_Exit

End Function

Vielleicht hilft Dir das o.a. auch weiter.
Gruß JWK

tütenflieger
11.08.2009, 08:41
Mit folgendem Codeschnipsel habe ich experimentiert und bei vollen Zugriffsrechten funktioniert es. (Ob es auch in Runtimeumgebungen geht müsste man prüfen.)

Private Sub Befehl0_Click()
Dim frm As Form

DoCmd.OpenForm "Formular2", acDesign 'Formular im Designmodus öffnen

Set frm = Me.Application.Forms!Formular2

For Each c In frm.Controls 'alle Textboxen suchen
If c.ControlType = acTextBox Then
c.AllowAutoCorrect = Not c.AllowAutoCorrect 'Eigenschaft ändern
End If
Next

DoCmd.Close acForm, "Formular2", acSaveYes 'ohne Nachfrage sichern

End Sub

Im Beispiel werden aus einem Formular1 per Schaltfläche im Formular2 die Autokorrekturfunktionen aller TextBoxen getauscht (also Ein/Aus).
Für alle Formulare müsste man mit der Auflistung Me.Application.Forms
entsprechend alle Formulare öffnen, nach TextBox, ComboBox und Listbox suchen (halt alles was die Eigenschaft AllowAutoCorrect hat) und die Eigenschaft nach dem persönlichen Wunsch ändern.
Das ausführende Formular sollte man dann aber aus der Routine ausklammern.
Alternativ könnte man ein Makromodul anlegen und über eine Symbolleiste arbeiten.

Bernd_G
11.08.2009, 10:56
CurrentDb.Properties("Perform Name AutoCorrect").Value = False
Wenn die Property noch nicht in der DB vorhanden sein sollte, muss sie natürlich einmal angelegt werden.