Mit nur wenig Programmieraufwand können Sie in Access den Mauszeiger ändern, eigene, auch animierte Mauszeiger verwenden und diese dann einzelnen Objekten wie beispielsweise Formularfeldern zuweisen. Das erzeugt nicht nur interessante Effekte, sondern ist insbesondere dann sinnvoll, wenn Benutzer einen bestimmten Mauszeiger erwarten, wie beispielsweise in Form einer Hand über einem Hyperlink.
Access kennt keine Eigenschaft, um den angezeigten Cursor für ein Formularfeld zu ändern. Das ist schade, denn in den UserForms der übrigen Office-Programme geht es mit der MousePointer-Eigenschaft schließlich auch. Sie werden aber sehen, dass es mit ziemlich geringem Aufwand möglich ist, jedem Objekt einen eigenen Mauscursor "unterzujubeln".
Doch zuerst brauchen Sie eine passende Datei, denn Cursor-Bilder haben ein eigenes "*.cur"- bzw. "*.ani"-Dateiformat. Aber auch das ist unproblematisch, denn abgesehen von einem breiten Angebot im Internet finden Sie auch auf Ihrer Festplatte (vermutlich im Verzeichnis "..\Windows\Cursors\") viele geeignete Dateien.
Cursor laden
Nun müssen Sie nur noch dafür sorgen, dass das Bild aus der Datei an den Mauszeiger gelangt. Dazu gibt es eine API-Funktion namens LoadCursorFromFileA zum Laden und eine namens SetCursor zum Zuweisen. Diese müssen am Anfang eines normalen Moduls wie folgt deklariert werden:
Declare Function LoadCursorFromFileA Lib "user32" ( _ ByVal lpFileName As String) As Long Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
Mit diesen beiden Funktionen braucht es nur noch eine eigene Prozedur MausHand im gleichen Modul, um der Maus einen neuen Look zu geben:
Sub MausHand() Dim strPfadCursor As String Dim lngCursor As Long strPfadCursor = CurrentProject.Path & "\Banana.ani" 'strPfadCursor = CurrentProject.Path & "\Hand.cur" lngCursor = LoadCursorFromFileA(strPfadCursor) If lngCursor = 0 Then Exit Sub Else Call SetCursor(lngCursor) End If End Sub
Dabei wird zuerst die Cursor-Datei im gleichen Verzeichnis wie die Datenbank gesucht. Wie Sie sehen, sind sowohl die normalen Cursor in "*.cur"-Dateien als auch die animierten Cursor der "*.ani"-Dateien einsetzbar. Damit es funktioniert, müssen Sie selbstverständlich die angegebenen Cursor-Dateien in das Datenbank-Verzeichnis kopieren.
Als Mitglied können Sie diesen Beitrag weiterlesen!
Werden Sie Mitglied und testen Sie akademie.de 14 Tage lang kostenlos!
In den ersten 14 Tagen haben Sie Zugriff auf alle Inhalte auf akademie.de, außer Downloads. Sie können in dieser Zeit ohne Angabe von Gründen stornieren. Eine E-Mail an service@akademie.de genügt. Nur wenn Sie Mitglied bleiben, wird der Mitgliedsbeitrag nach Ende der 14tägigen Stornofrist abgebucht.
Ich bin bereits Mitglied

Hallo,
von "Declare..." bis zum Ende der Prozedur "MausHand" muss der Code in ein Standard-Modul (im Text als "normales" Modul bezeichnet). Nur die "edtDatum_MouseMove"-Prozedur darf und muss in das Modul des Formulars, welches nämlich vom Typ Klassen-Modul ist. Dann klappt alles.
Mit freundlichen Grüßen,
Lorenz Hölscher
Vielen Dank für den Beitrag. Ich arbeite mit MS Access 2007. Das VBA-Script habe ich per D&D kopiert.
Das Script siet wie folgt aus:
Declare Function LoadCursorFromFileA Lib "user32" (ByVal lpFileName As String) As Long
Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
Sub MausHand()
Dim strPfadCursor As String
Dim lngCursor As Long
strPfadCursor = CurrentProject.Path & "\Plus! AqHand.cur"
'strPfadCursor = CurrentProject.Path & "\Hand.cur"
lngCursor = LoadCursorFromFileA(strPfadCursor)
If lngCursor = 0 Then
Exit Sub
Else
Call SetCursor(lngCursor)
End If
End Sub
Private Sub edtDatum_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
MausHand
End Sub
Beim Ausführen des MouseMove-Befehls erhalte ich aber folgende Fehlermeldung:
Sie haben als Einstellung der Ereigniseigenschaft den Ausdruck Bei Mausbewegung eingegeben. Dieser Ausdruck hat einen Fehler verursacht. Konstanten, Zeichenfolgen fester Länge, benutzerdefinierte Datenfelder und Declare-Anweisungen sind als Public-Elemente von Objectmodulen nicht zugelassen.
Können Sie mir helfen?
MfG H.A.