powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как включить CapsLock из VBA?
6 сообщений из 6, страница 1 из 1
Как включить CapsLock из VBA?
    #32632518
toly_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!

Нужно чтобы при входе в поле формы включалась клавиша CapsLock,
при выходе - выключалась,

заранее спасибо.
...
Рейтинг: 0 / 0
Как включить CapsLock из VBA?
    #32632617
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
 'Code from "VBA Developer's Handbook" (Sybex, 1997): 

Private Const vbKeyScrollLock = &H91

Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long
 
Public Function GetCapslock() As Boolean
     ' Return or set the Capslock toggle. 
    GetCapslock = CBool(GetKeyState(vbKeyCapital) And  1 )
End Function
 
Public Function GetNumlock() As Boolean
     ' Return or set the Numlock toggle. 
    GetNumlock = CBool(GetKeyState(vbKeyNumlock) And  1 )
End Function
 
Public Function GetScrollLock() As Boolean
     ' Return or set the ScrollLock toggle. 
    GetScrollLock = CBool(GetKeyState(vbKeyScrollLock) And  1 )
End Function
 
Public Sub SetCapslock(Value As Boolean)
     ' Return or set the Capslock toggle. 
    Call SetKeyState(vbKeyCapital, Value)
End Sub
 
Public Sub SetNumlock(Value As Boolean)
     ' Return or set the Numlock toggle. 
    Call SetKeyState(vbKeyNumlock, Value)
End Sub
 
Public Sub SetScrollLock(Value As Boolean)
     ' Return or set the ScrollLock toggle. 
    Call SetKeyState(vbKeyScrollLock, Value)
End Sub
 
Public Sub SetKeyState(intKey As Integer, fTurnOn As Boolean)
     ' Retrieve the keyboard state, set the particular 
     ' key in which you're interested, and then set 
     ' the entire keyboard state back the way it 
     ' was, with the one key altered. 
    Dim abytBuffer( 0  To  255 ) As Byte
    GetKeyboardState abytBuffer( 0 )
    abytBuffer(intKey) = CByte(Abs(fTurnOn))
    SetKeyboardState abytBuffer( 0 )
End Sub
...
Рейтинг: 0 / 0
Как включить CapsLock из VBA?
    #32632624
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А включать/выключать можно, например, по событиям получение/потеря фокуса

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub FieldName_GotFocus()
 SetCapslock True
End Sub

Private Sub FieldName_LostFocus()
 SetCapslock False
End Sub
...
Рейтинг: 0 / 0
Как включить CapsLock из VBA?
    #32632665
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, на всякий случай, хочу напомнить о функции UCase()
...
Рейтинг: 0 / 0
Как включить CapsLock из VBA?
    #32632675
toly_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorM

Спасибо еще раз, все отлично!!!
...
Рейтинг: 0 / 0
Как включить CapsLock из VBA?
    #32632693
toly_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АлексейЕ

UCase преобразует все к верхнему регистру, в моем случае могут быть и нижнего, например "НИИ им.АХУНБАЕВА", но все равно спасибо!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как включить CapsLock из VBA?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]