Results 1 to 4 of 4
  1. #1
    Join Date
    Mar 2007

    Question Unanswered: KeyboardLanguage to US International

    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?

    appreciate any suggestions,

  2. #2
    Join Date
    Jan 2007
    Provided Answers: 10
    Quote 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
    Home | Blog

  3. #3
    Join Date
    Mar 2007
    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).

  4. #4
    Join Date
    Mar 2007
    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
    End Sub
    Private Sub TexttestFieldTH_LostFocus()
    Dim d as String
    d = LoadKeyboardLayout("00020409", 401) 'back to US international
    End Sub

    For a list of other language keyboard layouts see:;en-us;139177
    Last edited by BMore; 03-29-07 at 18:43.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts