I have a database with Thai, English and Dutch memo fields.
At the thai field when it has the focus, I set:
me.memofieldnameTH.keyboardLanguage = 32
When I get out of the field I want the system to go back to my default keyboad US-Intenational. However setting the language to 0, keeps it in Thai and setting it to 11, it switches to the English keyboard (which makes it difficult to use the necessary high ascii chararacters (like á, é, í, ó, ú, etc.)
How can I force access to use the US-International keyboard?
Originally Posted by MS Access Help when searching "keyboardlanguage"
You can select the type of keyboard language (keyboard language: The language selected for entering text.) you want in a text box or combo box.
Open a form or report in Design view.
Make sure the control is selected, and then click Properties on the Design toolbar.
On the All tab, in the KeyboardLanguage box, do one of the following:
To make the keyboard language follow the most recent keyboard language you used, click System.
To make the keyboard language a particular language, click one of the languages shown in the list.
Note The languages that appear in the KeyboardLanguage property box are determined by the keyboard languages you have installed. Available languages can be reviewed by double-clicking Keyboard or Regional Options in Microsoft Windows Control Panel.
Any use to you? change the default keyboard languages for that one field using it's properties, rather than VBA
Thanks for your reply, but it doesn't help me.
The whole point is that you can not set the us-international keyboard in the properties, just the keyboard language, in this case english and it will not select the us-international, but the standard english keyboard.
The database is a language course for 5 languages (english-dutch-spanish-indonesian-thai) with 7000 records and 35000 sound files. It enables learning for each of the 5 native speakers to learn the others, by listening/repeating/reading/writing covering all entry angles. Although it is only a 4 table normalized database with just 2 forms and some queries, it is loaded with functuinality. Amazing what one can do with ms-access.
I'd like to limit the keyboards, one for thai and one for the four others. Taking the corresponding keyboard for each individual language, would drive one crazy due to the moving about of the sign keys (top row and at the right of the letter keys).
At last I found the solution and post it here for future reference:
Const LANG_EN_US As String = "00020409" 'English US International
Const LANG_AR As String = "0000041E" 'Thai
Private Declare Function LoadKeyboardLayout Lib "user32" Alias _
"LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal Flags As Long) As Long
Private Sub TextFieldTH_GotFocus()
Dim d as String
d = LoadKeyboardLayout("0000041E", 401) 'set to Thai
Private Sub TexttestFieldTH_LostFocus()
Dim d as String
d = LoadKeyboardLayout("00020409", 401) 'back to US international