Skip to main content

AccessTr.neT


Access Formda Numlock Sorunu

Access Formda Numlock Sorunu

#1
Formun arama motoruna bi bilgi girip ENTER tuşuna bastığım zaman arama yapıyor fakat otomatik olarak NUMLOCK tuşunu ya pasif yada aktif ediyor.
NUMLUCK tuşu hep aktif olarak kalması için ne yapmam gerekiyor



[Resim: do.php?imgf=149588088212621.jpg]
.rar Numlock.rar (Dosya Boyutu: 46,33 KB | İndirme Sayısı: 5)
Cevapla
#2
sayın cagatay1234,

bahsettiğiniz talebinize yönelik olarak;

ilgili form üzerinde yer alan ARAMA adlı denetimin GÜNCELLEŞTİRME ÖNCESİNDE olay yordamı ve Komut59 adlı denetimin TIKLANDIĞINDA olay yordamı üzerindeki KATIŞTIRILMIŞ MAKRO ifadelerini iptal edip bu şekilde kullanmayı deneyiniz.

son olarak;
site arama sayfasında ilgili ifadeler ile benzer arama yöntemleri üzerine kullanımlar ve örnekler içeren konuları inceleyebilir ve bunları kendi uygulamanıza adapte etmeyi deneyebilirsiniz.

bilginize...iyi çalışmalar,saygılar.
Herkes,kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#3
Makrolardan oluyor.
güncelleştirme sonrasında ,  olayına

Option Compare Database

Private Sub ARAMA_AfterUpdate()
SendKeys "{F5}", False
End Sub

bu kodu girdim.
arama yaptırınca şak NUMLOCK ya kapatıyor ya açıyor
nasıl düzeltebilrim yardımcıolursanız çok sevinirim
Cevapla
#4
sayın cagatay1234,

2.mesajda yazılı işlemleri denediniz mi?

açıklamalar nezdinde tekrar deneyiniz ve formu güncellemek sonuçları görebilmek için de ilgili ARAMA denetiminin ÇIKILDIĞINDA olay yordamı içerisine

Visual Basic Code
Me.Requery

kod satırını dahil ediniz.

bilginize...iyi çalışmalar,saygılar.
Herkes,kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#5
makroya 
her hangi bir tuş gönder olayı yaparsak mesele 
SendKeys "{F5}", False veya SendKeys "{ENTER}", False
tuşu işleme koyduktan sonra NUMLOCK da hata yaptırıyor, ya kapatıyor, ya açıyor
Cevapla
#6
Ofisin bazı sürümlerinde Sendkeys kodu numlock, scrolllock veya capsyocku kapatıp açabiliyor.

Bunu önlemek için sendkeys kodunu kullanmamalısın. Yerine sendkeys harici komut kodları kullanabilirsin. mesela Sendkeys {f5} kodu yerine

me.requery


Veya bilinen farklı bir sendkeys benzeri api var. Bu kodu da kullanabilirsin. Numlock, capslock veya scrollock kapatmaz.


Visual Basic Code
 Private Type OSVERSIONINFO
        dwOSVersionInfoSize As Long
        dwMajorVersion As Long
        dwMinorVersion As Long
        dwBuildNumber As Long
        dwPlatformId As Long
        szCSDVersion As String * 128   '  Maintenance string for PSS usage
      End Type

      ' API declarations:
      Private Declare Function GetVersionEx Lib "Kernel32" _
         Alias "GetVersionExA" _
         (lpVersionInformation As OSVERSIONINFO) As Long

      Private Declare Sub keybd_event Lib "user32" _
         (ByVal bVk As Byte, _
          ByVal bScan As Byte, _
          ByVal dwflags As Long, ByVal dwExtraInfo As Long)

      Private Declare Function GetKeyboardState Lib "user32" _
         (pbKeyState As Byte) As Long

      Private Declare Function SetKeyboardState Lib "user32" _
         (lppbKeyState As Byte) As Long

      ' Constant declarations:
      Const VK_NUMLOCK = &H90
      Const VK_SCROLL = &H91
      Const VK_CAPITAL = &H14
      Const KEYEVENTF_EXTENDEDKEY = &H1
      Const KEYEVENTF_KEYUP = &H2
      Const VER_PLATFORM_WIN32_NT = 2
      Const VER_PLATFORM_WIN32_WINDOWS = 1

Function IsCapsLockOn() As Boolean
        Dim o As OSVERSIONINFO

        o.dwOSVersionInfoSize = Len(o)
        GetVersionEx o
        Dim keys(0 To 255) As Byte
        GetKeyboardState keys(0)
        IsCapsLockOn = keys(VK_CAPITAL)
End Function

Sub ToggleCapsLock()
        Dim o As OSVERSIONINFO

        o.dwOSVersionInfoSize = Len(o)
        GetVersionEx o
        Dim keys(0 To 255) As Byte
        GetKeyboardState keys(0)

        If o.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then  '=====Win95
        'Toggle capslock
            keys(VK_CAPITAL) = Abs(Not keys(VK_CAPITAL))
            SetKeyboardState keys(0)
        ElseIf o.dwPlatformId = VER_PLATFORM_WIN32_NT Then   '=====WinNT
          'Simulate Key Press>
            keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
          'Simulate Key Release
            keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY _
               Or KEYEVENTF_KEYUP, 0
        End If
End Sub

Function IsNumLockOn() As Boolean
        Dim o As OSVERSIONINFO
        
        o.dwOSVersionInfoSize = Len(o)
        GetVersionEx o
        Dim keys(0 To 255) As Byte
        GetKeyboardState keys(0)
        IsNumLockOn = keys(VK_NUMLOCK)
End Function

Sub ToggleNumLock()
        Dim o As OSVERSIONINFO
                
        o.dwOSVersionInfoSize = Len(o)
        GetVersionEx o
        Dim keys(0 To 255) As Byte
        GetKeyboardState keys(0)

          If o.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then  '=====Win95
                keys(VK_NUMLOCK) = Abs(Not keys(VK_NUMLOCK))
                SetKeyboardState keys(0)
          ElseIf o.dwPlatformId = VER_PLATFORM_WIN32_NT Then   '=====WinNT
          'Simulate Key Press
            keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
          'Simulate Key Release
            keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY _
               Or KEYEVENTF_KEYUP, 0
          End If
        
End Sub

Function IsScrollLockOn()
        Dim o As OSVERSIONINFO
        
        o.dwOSVersionInfoSize = Len(o)
        GetVersionEx o
        Dim keys(0 To 255) As Byte
        GetKeyboardState keys(0)
        IsScrollLockOn = keys(VK_SCROLL)
End Function

Sub ToggleScrollLock()
        Dim o As OSVERSIONINFO
        
        o.dwOSVersionInfoSize = Len(o)
        GetVersionEx o
        Dim keys(0 To 255) As Byte
        GetKeyboardState keys(0)
        If o.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then  '=====Win95
            keys(VK_SCROLL) = Abs(Not keys(VK_SCROLL))
            SetKeyboardState keys(0)
        ElseIf o.dwPlatformId = VER_PLATFORM_WIN32_NT Then   '=====WinNT
            'Simulate Key Press
            keybd_event VK_SCROLL, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
            'Simulate Key Release
            keybd_event VK_SCROLL, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
        End If
End Sub

Sub mySendKeys(sKeys As String, Optional bWait As Boolean = False)
Dim bNumLockState As Boolean
Dim bCapsLockState As Boolean
Dim bScrollLockState As Boolean
    bNumLockState = IsNumLockOn()
    bCapsLockState = IsCapsLockOn()
    bScrollLockState = IsScrollLockOn()
    SendKeys sKeys, bWait
    If IsNumLockOn() <> bNumLockState Then
        ToggleNumLock
    End If
    If IsCapsLockOn() <> bCapsLockState Then
        ToggleCapsLock
    End If
    If IsScrollLockOn() <> bScrollLockState Then
        ToggleScrollLock
    End If
End Sub

Function fSendKeys(sKeys As String, Optional bWait As Boolean = False)
' Function to make it callable from macros
    mySendKeys sKeys, bWait
End Function
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task