Rechtschreibprüfung in Formular integrieren

Ich möchte in einem Access-Formular beim Verlassen eines Textfeldes ausschließlich für dieses eine Rechtschreibprüfung starten. Mit Hilfe eines Makros lässt sich die Rechtschreibprüfung zwar aufrufen, prüft dann aber gleich alle Textfelder des Formulars und blättert zum nächsten Datensatz. Kennen Sie eine Lösung für mein Problem?

Den gewünschten Effekt erreichen Sie zum Beispiel mit VBA-Anweisungen, die Sie als Ereignisprozedur der Eigenschaft »Beim Verlassen« des entsprechenden Feldes eintragen. Wir empfehlen Ihnen aber gleich die wiederverwendbare Funktion »Rechtschreibpruefung()«, die Sie beliebig und auch in mehreren Feldern auf unterschiedlichen Formularen einsetzen können. Eine Beispiel-Datenbank für Access 97 finden Sie auf der Heft-CD CHIP-Code RSPRUEF.

Öffnen Sie ein beliebiges Modul Ihrer Datenbank in der Entwurfsansicht. Mit dem Befehl »Einfügen | Prozedur« legen Sie die neue Funktion »Rechtschreibpruefung« an. Definieren Sie die Funktion als »öffentlich« und fügen Sie die folgenden VBA-Anweisungen ein:

Public Function

Rechtschreibpruefung ()

' Die Funktion führt im aktuellen Feld

' eines beliebigen Formulars

die

' Rechtschreibprüfung aus

On Error GoTo

Err_Rechtschreibpruefung

Dim AktSteuer As Control

Set AktSteuer = Screen.ActiveControl

AktSteuer.SetFocus

AktSteuer.SelStart = 0

AktSteuer.SelLength = Len (AktSteuer)

RunCommand acCmdSpelling

Exit_Rechtschreibpruefung:

Exit Function

Err_Rechtschreibpruefung:

MsgBox Err.Description

Resume

Exit_Rechtschreibpruefung

End Function

Das Objekt »AktSteuer« vom Typ »Control« stellt ein beliebiges Steuerelement des Formulars dar. Mit Hilfe der Anweisung »Screen.ActiveControl« weisen Sie diesem Objekt das momentan aktivierte Steuerelement zu. So können Sie direkt darauf zugreifen.


Die Kombination der beiden Anweisungen »SelStart« und »SelLength« bewirkt, dass Access den gesamten Inhalt des Feldes markiert, bevor der Befehl »RunCommand acCmdSpelling« die Rechtschreibprüfung startet.


Sie verknüpfen die Funktion mit Textfeldern, indem Sie die Formulare in der Entwurfsansicht öffnen, mit der rechten Maustaste auf die jeweiligen Felder klicken, den Kontextbefehl »Eigenschaften« aufrufen und auf der Registerkarte »Ereignis« im Feld »Beim Verlassen« den Funktionsaufruf »=Rechtschreibpruefung()« eintragen.