Na 64bitnom sistemu odmah prijavljuje grešku i pokazuje na modul u kojem se nalazi sledeći kod:
Code:
Option Compare Database
Option Explicit
Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
Declare Function ActivateKeyboardLayout Lib "user32" (ByVal hkl As Long, ByVal flags As Long) As Long
Declare Function UnloadKeyboardLayout Lib "user32" (ByVal hkl As Long) As Long
Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
Const HKL_ENGLISH_US = "00000409"
Const HKL_ENGLISH_UK = "00000809"
Const HKL_CROATIAN = "0000041A"
Const HKL_SERBIAN_CYRILIC = "00000C1A"
Const HKL_SERBIAN_LATIN = "0000081A"
Public Enum acKeyboardLanguage
hklEnglishUS
hklEnhlishUK
hklCroatian
hklSerbianCyrilic
hklSerbianlatin
End Enum
Function SetKeyboardLanguage(KeyboardLanguage As acKeyboardLanguage) As Boolean
Dim hkl As Long
SetKeyboardLanguage = False
Select Case KeyboardLanguage
Case hklEnglishUS:
hkl = LoadKeyboardLayout(HKL_ENGLISH_US, 0)
Case hklEnhlishUK
hkl = LoadKeyboardLayout(HKL_ENGLISH_UK, 0)
Case hklCroatian
hkl = LoadKeyboardLayout(HKL_CROATIAN, 0)
Case hklSerbianCyrilic
hkl = LoadKeyboardLayout(HKL_SERBIAN_CYRILIC, 0)
Case hklSerbianlatin
hkl = LoadKeyboardLayout(HKL_SERBIAN_LATIN, 0)
End Select
If hkl <> 0 Then SetKeyboardLanguage = (ActivateKeyboardLayout(hkl, 0) <> 0)
End Function
Option Compare Database
Option Explicit
Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
Declare Function ActivateKeyboardLayout Lib "user32" (ByVal hkl As Long, ByVal flags As Long) As Long
Declare Function UnloadKeyboardLayout Lib "user32" (ByVal hkl As Long) As Long
Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
Const HKL_ENGLISH_US = "00000409"
Const HKL_ENGLISH_UK = "00000809"
Const HKL_CROATIAN = "0000041A"
Const HKL_SERBIAN_CYRILIC = "00000C1A"
Const HKL_SERBIAN_LATIN = "0000081A"
Public Enum acKeyboardLanguage
hklEnglishUS
hklEnhlishUK
hklCroatian
hklSerbianCyrilic
hklSerbianlatin
End Enum
Function SetKeyboardLanguage(KeyboardLanguage As acKeyboardLanguage) As Boolean
Dim hkl As Long
SetKeyboardLanguage = False
Select Case KeyboardLanguage
Case hklEnglishUS:
hkl = LoadKeyboardLayout(HKL_ENGLISH_US, 0)
Case hklEnhlishUK
hkl = LoadKeyboardLayout(HKL_ENGLISH_UK, 0)
Case hklCroatian
hkl = LoadKeyboardLayout(HKL_CROATIAN, 0)
Case hklSerbianCyrilic
hkl = LoadKeyboardLayout(HKL_SERBIAN_CYRILIC, 0)
Case hklSerbianlatin
hkl = LoadKeyboardLayout(HKL_SERBIAN_LATIN, 0)
End Select
If hkl <> 0 Then SetKeyboardLanguage = (ActivateKeyboardLayout(hkl, 0) <> 0)
End Function
Molim za pomoć, kako da menjam postavke jezika iz VBA koda u 64bitnom Accesu 2010.
Verovatno će biti i drugih problema sa starim funkcijama?