Access-Paradies im Internet

Die AP-Entwickler-Tools 2007 für Access - 28 offene Entwicklertools für nur 199,- EUR - aber nur für kurze Zeit!
 

  

::: Funktionen

 


Die Top Seite für Excel-VBA-Makros uvm.
Anwenderforum für Microsoft Office, Windows, VB
FAQ, kostenlose Tipps und Downloads zu Microsoft Office
Das große Visual-Basic Archiv
Access-Garhammer
Rainer's Archiv

::: Newsletter

 

Unser Newsletter informiert Sie topaktuell rund um alle Themen zu Microsoft Access, VBA usw.

 
  




::: ebay

 
1.000 Tage eBay Partnerprogramm - Volume II
 

60

 
  Tipps & Tricks -> Formulare -> Mausrad im Formular abschalten (Access 97)   



Kostenlose Tools und aktuelle News mit unserem monatlichen Access-Newsletter.
Jetzt eintragen!




Das Access-VBA Codebook

Neue Ausgabe!




Die VBA-Codesammlung, die bei keinem Entwickler
fehlen darf!



von Günther Kramer

Mausrad im Formular abschalten

Der VBA-Code schaltet innerhalb eines Formulars das Mausrad ab



Professionelle Accesstools für Datenbank-Entwickler



Das komplette Entwickler-Know-How auf einer CD.

  • über 24 Entwicklertools
  • unzählige Codebeispiele
  • Freeware-Module u. Tools
  • Großer Datenpool


  •  
       
     
     
     
      Mausrad im Formular abschalten (Access 97)
    Kurzinfo: Deaktiviert das Mausrad in Access-Formularen
    Access-Version(en): Access 97
    Autor: Johann Pumhösl
    Homepage: http://members.aon.at/millpartner
    Download ca. 67 KB

     
     

     

    Auf der AP-Access-Tools Vol.1 finden Sie weitere 320 Tipps & Tricks sowie 250 Access-Beispiel/Anwendungen mit offenen Quellcode!

    Die Access-Tools-CD mit über 400 MByte Inhalt - für Access- und VB-Entwickler

  • 256 Access-Beispiele mit offenem Code
  • 45 Add-Ins und ActiveX-Komponenten (Freeware)
  • 16 VB-Projekt inkl. Source
  • 321 Tipps & Tricks für Access und VB
  • Plus 11 Entwicklerversionen (9 davon mit Source!)
  • Plus 3 Vollversionen und
  • Plus riesiger Datenpool

    Holen Sie sich jetzt Ihre AP-Access-Tools-CD zum Superpreis von nur EUR 24,95!

  •  
     

    Der Code dieses Beispiels schaltet das das Blättern mit dem Mausrad in Formularen ab. Immer wieder kommt es zu Eingabefehlern, wenn der Anwender innerhalb eines Formulars am Mausrad dreht. Dieser Tipp schafft Abhilfe!

    Hinweis
    Dieser Tipp ist nur für Microsoft Access 97. Den Tipp für Access 2000 und Access XP finden Sie ebenfalls in unserem Tippverzeichnis.

    1.) Kopieren Sie den folgenden VBA-Code in ein neues Accessmodul:

    Option Compare Database
    Option Explicit
     
    ' == IM MODUL ================
    Public lpPrevWndProc As Long
    Public Const GWL_WNDPROC = (-4)
     
    ' Window-Messages
    Public Const WM_MOUSEWHEEL = &H20A
     
    ' == API's =============================
    Public Declare Function SetWindowLong Lib "user32" _
                   Alias "SetWindowLongA" _
                  (ByVal hWnd&, _
                   ByVal nIndex&, _
                   ByVal dwNewLong&) As Long
     
    Public Declare Function CallWindowProc Lib "user32" _
                   Alias "CallWindowProcA" _
                  (ByVal lpPrevWndFunc&, _
                   ByVal hWnd&, _
                   ByVal Msg&, _
                   ByVal wParam&, _
                   ByVal lParam&) As Long
     
     
    ' == FUNCTIONS ========================
    Public Function SubWindowProc(ByVal hWnd&, ByVal uMsg&, _
                                  ByVal wP&, ByVal lP&) As Long
    ' Fensterfunktion des Formulars / Controls
     
        On Error Resume Next
     
        ' Messages hier bearbeiten
        If uMsg = WM_MOUSEWHEEL Then
            ' nichts zu tun hier
            SubWindowProc = 1
            Exit Function
        End If
     
        'return to the message original proc
        SubWindowProc = CallWindowProc(lpPrevWndProc, hWnd, uMsg, wP, lP)
     
    End Function
     
    Public Sub HookMe(hw&)
    ' Subclass by the given handle
    ' Aufruf zb aus Form_Load() mit
    ' Call HookMe(Me.hwnd)
     
        lpPrevWndProc = SetWindowLong(hw&, GWL_WNDPROC, _
                                      AddrOf("SubWindowProc"))
     
    End Sub
     
    Public Sub UnHookMe(hw&)
    ' Unhook the given handle
    ' Aufruf zb aus Form_UnLoad() mit
    ' Call UnHookMe(Me.hwnd)
        If lpPrevWndProc& <> 0 Then: Call SetWindowLong(hw&, _
                                          GWL_WNDPROC, lpPrevWndProc&)
        lpPrevWndProc = 0
    End Sub
    

    Speicher dieses Modul unter dem Namen bas_MOUSEWHEEL ab.

     

    2.) Microsoft Access 97 kennt den Befehl AddressOf nicht und es wird ein zusätzliches Modul benötigt. Kopieren Sie den Code in ein eigenes Modul und speichern Sie es unter dem Namen bas_AddrOf ab.

    Option Compare Database
    Option Explicit
     
    Private Declare Function GetCurrentVbaProject Lib "vba332.dll" _
                    Alias "EbGetExecutingProj" (hProject&) As Long
     
    Private Declare Function GetFuncID Lib "vba332.dll" _
                    Alias "TipGetFunctionId" _
                   (ByVal hProject&, _
                    ByVal strFunctionName$, _
                    ByRef strFunctionId$) As Long
     
    Private Declare Function GetAddr Lib "vba332.dll" _
                    Alias "TipGetLpfnOfFunctionId" _
                   (ByVal hProject&, _
                    ByVal strFunctionId$, _
                    ByRef lpfn&) As Long
     
    ' ==< FUNCTIONS > =========================================
    Public Function AddrOf&(strFuncName$)
    ' gibt den Funktionszeiger einer public VBA Funktion zurück
    ' Parameter: strFuncName ... Funktionsname
    ' Return: >0 Adresse, 0 Fehler
    ' Aufruf zb lFuncPtr& = AddrOf("MyPublicFunc")
         Dim hProject&, lResult&, lpfn&
         Dim strID$, strFuncNameUnicode$
     
         Const NO_ERROR = 0
         AddrOf = 0
     
         ' Konvert strFuncName Unicode
         strFuncNameUnicode = StrConv(strFuncName, vbUnicode)
     
         ' Handle des VBA - Moduls holen
         Call GetCurrentVbaProject(hProject)
     
         If hProject <> 0 Then
             ' FunktionsID der VBA-Funktion ermitteln
             lResult = GetFuncID(hProject, strFuncNameUnicode, strID)
             If lResult = NO_ERROR Then
                  ' Adresse des FunktionsID holen
                  lResult = GetAddr(hProject, strID, lpfn)
                  If lResult = NO_ERROR Then: AddrOf = lpfn
             End If
         End If
     
    End Function
    

     

    3.) Folgende Anweisungen müssen in jedes Formular, ein denen das Mausrad deaktiviert werden sollen.

    Ereignis: Beim Laden

    Private Sub Form_Load()
        'Subclassing auf Formular anwenden
        Call HookMe(Me.hWnd)
    End Sub
    


    Ereignis: Beim Entladen

    Private Sub Form_Unload(Cancel As Integer)
        'Subclassing auf Formular anwenden
        Call UnHookMe(Me.hWnd)
    End Sub
    


    Neuen Tipp melden Neuen Download melden

    Copyright 2000-2003 Microsys Kramer– Alle Rechte vorbehalten - Der Download von Tipps und Programmen von den Seiten www.access-paradies.de erfolgt auf eigene Gefahr. Microsys Kramer haftet nicht für Schäden, die aus der Installation oder der Nutzung von Tipps oder Software aus dem Download-Bereich erfolgen. Trotz aktueller Virenprüfung ist eine Haftung für Schäden und Beeinträchtigungen durch Computerviren ausgeschlossen. Schadenersatzansprüche, aus welchem Rechtsgrund auch immer, sind ausgeschlossen, wenn Microsys Kramer nicht Vorsatz oder grobe Fahrlässigkeit zu vertreten hat. Dies gilt auch für Ansprüche auf Ersatz von Folgeschäden wie Datenverlust.

     
     
     
     

    Access-Paradies © 1996-2011 Microsys Kramer


    Microsoft, Access, Word, Excel, Outlook, Outlook Express, Visual Basic und Windows sind eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

    Weiterempfehlung  |   Linken Sie uns  |   Impressum  |   Newsletter  |   Onlineshop