[FORM] access form da numlock çok sorunlu form sayfasında herzaman açık nasıl yapabilirim
#1
merhaba

formda metin kutularına veri girerken, bazı metin kutularına giriş yapınca NUMLOCK of oluyor.

baya bi sorun yaşıyoruz bu konuda, formun içindeyken NUMLOCK herzaman on nasıl yapabiliriz.

Kk



  Alıntı
Bu mesajı beğenenler:
#2
Sorunun ayrıntılı açıklaması Blog sitemde mevcuttur Link Aşağıda
NUMLOCK Tuşu Sorunu Gidermek



  Alıntı
Bu mesajı beğenenler:
#3
arkadaşın verdiği kodu bi türlü uygulayamadım. ricam bi formda uygulayıp çalışır hale getirebilirmisiniz.



FORMLARDA VERİ GİRİŞİ YAPARKEN NUMLOCK SORUNUNU ORTADAN KALDIRMAK
Arkadaşlar, Bazen formda veri girişi yaparken Numlock tuşu kendi kendine kararlar verebiliyor, Bu tuşa basmadan ya ON oluyor ya da OFF bu da istenmeyen durumlar ortaya çıkarıyor. Sebebi nedir bilinmez ama ben çözüm yolunu aşağıda veriyorum; Bunun için bir modül kullanacğız ve bu modülde Global bir altyordam oluşturacağız. Önce Bir modül ekleyip aşağıdaki kodları bu modüle yerleştirin.
-------------------------------------------------------------------------------
Private Const VER_PLATFORM_WIN32_NT = 2
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VK_NUMLOCK = &H90
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2

Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type

Private Declare PtrSafe Function GetVersionEx Lib "kernel32" ()
Private Declare PtrSafe Sub keybd_event Lib "User32" (ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Declare PtrSafe Function GetKeyboardState Lib "User32" (pbKeyState As Byte) As Long
Private Declare PtrSafe Function SetKeyboardState Lib "User32" (lppbKeyState As Byte) As Long
-------------------------------------------------------------------------------------------------------------
Public Sub TurnNumLockOn()
Dim bytKeys(255) As Byte, bnumLockOn As Boolean, typOS As OSVERSIONINFO
GetKeyboardState bytKeys(0)
bnumLockOn = bytKeys(VK_NUMLOCK)
If Not bnumLockOn Then
If typOS.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
bytKeys(VK_NUMLOCK) = 1
SetKeyboardState bytKeys(0)
Else
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
End If
End If
End Sub
-------------------------------------------------------------------------------------

Bu kadar, Eğer 32/64 bit hatası alırsanız yukarıda koyu yazılmış olan PtrSafe ifadelerini silin, Satırı komple silmeyin, sadece PtrSafe kelimelerini silin. Şimdi uygulamaya geldi sıra.
Veri girişi yaptığınız formun Load olayına aşağıdaki kodu yazın,
-------------------------------------------------------
Call TurnNumLockOn



  Alıntı
Bu mesajı beğenenler:
#4
'sayın obaysal42
dün konuyu okuyunca bende kendi arşivime bu konuyu dahil ettim, çalıştırdım, teste ettim. çalışıyor.
'AŞAĞIDAKİ KODları ACCESS MODÜL KISMINA KAYDET. [/code]
'SONRASINDA FORMUN YÜKLENDİĞİNDE OLAY YORDAMINA
Call TurnNumLockOn ' KOPYALAYIN, FORM AKTİF OLDUĞUNDA NUMLOCK AKTİF OLACAKTIR, Eğer sadece bahsettiğn metin kutularına girince numlock pasif oluyorsa, formda başka bir kod varmı kontrol et.

Option Compare Database
Private Const VER_PLATFORM_WIN32_NT = 2
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VK_NUMLOCK = &H90
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2

Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type

Private Declare Function GetVersionEx Lib "kernel32" ()
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

Public Sub TurnNumLockOn()
Dim bytKeys(255) As Byte, bnumLockOn As Boolean, typOS As OSVERSIONINFO
GetKeyboardState bytKeys(0)
bnumLockOn = bytKeys(VK_NUMLOCK)
If Not bnumLockOn Then
If typOS.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
bytKeys(VK_NUMLOCK) = 1
SetKeyboardState bytKeys(0)
Else
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
End If
End If
End Sub






  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Alt Form Toplama Dsum Fonksiyonu osman06 6 404 27-11-2025, 16:31
Son Mesaj: osman06
  Form üzerinde Ikili Filtreleme osmangezin@gmail.com 1 309 19-06-2025, 00:01
Son Mesaj: dsezgin
access-sql-5 çapraz Sorguda Form omur34 5 370 11-03-2025, 09:44
Son Mesaj: omur34
  [FORM] Sürekli Form Filtrelemede Boş Kayıtların Getirmeme kral8596 4 342 03-02-2025, 12:41
Son Mesaj: halily
  Form üzerinden Bir Kaç Tabloya Verileri Kaydetmek myesukan 2 401 21-01-2025, 16:45
Son Mesaj: myesukan
  [FORM] Mouse Ile Açık Formu Kapatmak hmuratg 1 319 06-11-2024, 16:08
Son Mesaj: kahramanselim
  [FORM] Haftanın Günleri Ve Form Nesneleri kahramanselim 1 307 06-11-2024, 13:42
Son Mesaj: kahramanselim
  Form Oluşturma sfgungor 0 200 26-10-2024, 06:33
Son Mesaj: sfgungor

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi