[AccessD] Accent Marks Needed

Rocky Smolin - Beach Access Software bchacc at san.rr.com
Sun Aug 29 19:28:15 CDT 2004


Marty:

Thanks for those.  It's really for Spanish, and maybe in the future
sometime, French.  Hopefully I'll never have to learn how to input Chinese.

Rocky

----- Original Message ----- 
From: "MartyConnelly" <martyconnelly at shaw.ca>
To: "Access Developers discussion and problem solving"
<accessd at databaseadvisors.com>
Sent: Thursday, August 26, 2004 12:08 PM
Subject: Re: [AccessD] Accent Marks Needed


> If you are going to get deeper into this.
> Here are two rough code snippets to switch languages on the fly for data
> entry in Access.
> One uses API calls, the other keyboard events.
>
> The Canadian Government sometimes specifies bilingual French-English
> form data entry.
> I dunno how to handle DBCS languages like Chinese Big 5. As they say,
> that is left for an exercise for the student.
> You probably fiddle around with the IME.
>
>
> Public Declare Function LoadKeyboardLayout Lib "user32" Alias _
> "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal Flags As Long) As
> Long
>
> Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL
> As Long, _
> ByVal Flags As Long) As Long
>
> Private Declare Function GetKeyboardLayoutName Lib "user32" Alias _
> "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
>
> Const KL_NAMELENGTH = 9
>
> Sub testarabic()
> Dim lRet As Long
> 'your language selection bar will have languages added if available on
> the machine.
>  ' warning if  bar isn't visible on screen taskbar or floating version,
> you may have to go to control panel to reset
> ' to proper language desired.
>    lRet = LoadKeyboardLayout("00000409", 1)     '   For English
>    Debug.Print lRet
>    lRet = ActivateKeyboardLayout("00000409", 0)
>    Debug.Print lRet
>    lRet = LoadKeyboardLayout("00000401", 1)    '   For Arabic
>      Debug.Print lRet
>    lRet = ActivateKeyboardLayout("00000401", 0)
>    Debug.Print lRet
>      lRet = LoadKeyboardLayout("00011009", 1)    '   For FrenchCanadian
>      Debug.Print lRet
>    lRet = ActivateKeyboardLayout("00011009", 0)
>    Debug.Print lRet
> End Sub
>
> Sub resetenglish()
> Dim lRet As Long
>  lRet = LoadKeyboardLayout("00000409", 1)     '   For US English
>    Debug.Print lRet
>    lRet = ActivateKeyboardLayout("00000409", 0)
>    Debug.Print lRet
> End Sub
>
> Sub whatiskeybd()
>     Dim strName As String
>     'Create a buffer
>     strName = String(KL_NAMELENGTH, 0)
>     'Get the keyboard layout name
>     GetKeyboardLayoutName strName
>     Debug.Print "Keyboard layout name: " &  strName
> End Sub
>
> -------------------------------------------------------------------
>
> Alternate method for bilingual entry on textboxes
> assumes you have only two languages on language bar
> or you are using only one hot key switch
>
> 'http://www.microsoft.com/globaldev/handson/dev/Unicode-KbdsonWindows.pdf
> 'http://www.microsoft.com/globaldev/nlsweb/default.asp?submitted=40d
>
> 'Part of the file Win32api.txt:
> '
> '   VK_L VK_R - left and right Alt, Ctrl and Shift virtual keys.
> '   Used only as parameters to GetAsyncKeyState() and GetKeyState().
> '   No other API or message will distinguish left and right keys in this
> 'way.
> '  /
> Public Const VK_LSHIFT = &HA0
> Public Const VK_RSHIFT = &HA1
> Public Const VK_LCONTROL = &HA2
> Public Const VK_RCONTROL = &HA3
> Public Const VK_LMENU = &HA4
> Public Const VK_RMENU = &HA5
>
> 'What a weird name for the Alt-key. but it does use the menu
>
> Private Const VK_LWIN = &H5B 'Left window button
> Private Const VK_RETURN = &HD  'ENTER key
> Private Const VK_SHIFT = &H10 'SHIFT key
> Private Const VK_CONTROL = &H11 'CTRL key
> Private Const VK_MENU = &H12 'ALT key
> Private Const VK_PAUSE = &H13 'PAUSE key
> Private Const VK_CAPITAL = &H14 'CAPS LOCK key
> Private Const VK_SNAPSHOT = &H2C  'Print Screen
> Private Const VK_APPS = &H5D
>          'Applications key on a Microsoft Natural Keyboard
> 'from http://support.microsoft.com/view/dev.asp?kb=242971
>
> Const GW_HWNDFIRST = 0
> Const GW_HWNDNEXT = 2
> Private Const KEYEVENTF_KEYUP = &H2
>
> Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
>     ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
>
> Sub ShiftToLanguage()
> 'use the following code inside form or focused window or textbox
> 'to simulate the Alt RightShift = key combination:
>
>      ' then press and then release the AltRight RightShift key
>      'order of pressing important
>      keybd_event VK_RSHIFT, 0, 0, 0
>       keybd_event VK_RMENU, 0, 0, 0
>
>
>     keybd_event VK_RMENU, 0, KEYEVENTF_KEYUP, 0
> 'weird things happen if you don't up the shiftkey looks like capslock
> 'has been left on
>    keybd_event VK_RSHIFT, 0, KEYEVENTF_KEYUP, 0
>   Debug.Print "Shift"
>   DoEvents
>
> End Sub
>
> Sub ShiftToLanguageBack()
> 'use the following code inside form or focused window or textbox
> 'to simulate the Alt RightShift = key combination:
>
>      ' then press and then release the AltRight RightShift key
>      'order of pressing important
>      keybd_event VK_LSHIFT, 0, 0, 0
>       keybd_event VK_LMENU, 0, 0, 0
>
>
>     keybd_event VK_LMENU, 0, KEYEVENTF_KEYUP, 0
> 'weird things happen if you don't up the shiftkey looks like capslock
> 'has been left on
>    keybd_event VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0
>   Debug.Print "Shift Back"
>   DoEvents
>
> End Sub
>
> Rocky Smolin - Beach Access Software wrote:
>
> >Marty:
> >
> >Don't know exactly how I did it, but I got the alternate keyboard.  AND I
> >can key the accent marks directly in an Access table now.
> >
> >Thanks to all
> >
> >Best,
> >
> >Rocky Smolin
> >Beach Access Software
> >http://www.e-z-mrp.com
> >
> >----- Original Message ----- 
> >From: "MartyConnelly" <martyconnelly at shaw.ca>
> >To: "Access Developers discussion and problem solving"
> ><accessd at databaseadvisors.com>
> >Sent: Wednesday, August 25, 2004 12:07 AM
> >Subject: Re: [AccessD] Accent Marks Needed
> >
> >
> >
> >
> >>Another Method
> >>
> >>Win XP Control Panel --> Regional Language Settings--> Languages
> >>--Details --> Installed services
> >> Add the Spanish Keyboard in addition to English.
> >>
> >>Other button option selections
> >>
> >>Language -choose to float Keyboard Language Bar on Screen as transparent
> >>or in tasktray
> >>I prefer floating bar rather cluttering TaskTray icon
> >>
> >>Key Settings choose a hotkey to switch language keyboard.
> >>
> >>This will give you a floating keyboard selection bar
> >>
> >>Defualt To change language keyboards when typing  toggle ALT - Right
Shift
> >>
> >> You can also do this by VBA code. I have used to sense Keyboard
> >>language state and switch between French or English Text boxes on same
> >>
> >>
> >form
> >
> >
> >>There are probably pictures of spanish keyboard mappings at
> >>http://www.microsoft.com/globaldev
> >>
> >>Rocky Smolin - Beach Access Software wrote:
> >>
> >>
> >>
> >>>Stuart:
> >>>
> >>>
> >>>Thanks.  Works well in Word. But it doesn't seem to work the same when
> >>>keying into a table.  Any ideas there?  It's the language tables in the
> >>>
> >>>
> >mdb
> >
> >
> >>>where I have to key all this Spanish.
> >>>
> >>>Rocky
> >>>
> >>>
> >>>----- Original Message ----- 
> >>>From: "Stuart McLachlan" <stuart at lexacorp.com.pg>
> >>>To: "Access Developers discussion and problem solving"
> >>><accessd at databaseadvisors.com>
> >>>Sent: Tuesday, August 24, 2004 2:42 PM
> >>>Subject: Re: [AccessD] Accent Marks Needed
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>>On 24 Aug 2004 at 13:34, Rocky Smolin - Beach Access Software wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>I want to do the Spanish translation of my system, but I'm having a
> >>>>>terrible time trying to figure out how to get the accent marks on the
> >>>>>vowels.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>Simplest solution I've found is to create text in Word and then cut
and
> >>>>paste.
> >>>>
> >>>>>From the Word Help:
> >>>>To insert Press
> >>>>à, è, ì, ò, ù
> >>>>À, È, Ì, Ò, Ù CTRL+` (ACCENT GRAVE), the letter
> >>>>
> >>>>á, é, í, ó, ú, ý
> >>>>Á, É, Í, Ó, Ú, Ý CTRL+' (APOSTROPHE), the letter
> >>>>
> >>>>â, ê, î, ô, û
> >>>>Â, Ê, Î, Ô, Û CTRL+SHIFT+^ (CARET), the letter
> >>>>
> >>>>ã, ñ, õ
> >>>>Ã, Ñ, Õ CTRL+SHIFT+~ (TILDE), the letter
> >>>>ä, ë, ï, ö, ü, ÿ
> >>>>
> >>>>Ä, Ë, Ï, Ö, Ü, Y CTRL+SHIFT+: (COLON), the letter
> >>>>
> >>>>å, Å CTRL+SHIFT+@, a or A
> >>>>
> >>>>æ, Æ CTRL+SHIFT+&, a or A
> >>>>
> >>>>o, O CTRL+SHIFT+&, o or O
> >>>>
> >>>>ç, Ç CTRL+, (COMMA), c or C
> >>>>
> >>>>ð, Ð CTRL+' (APOSTROPHE), d or D
> >>>>
> >>>>ø, Ø CTRL+/, o or O
> >>>>
> >>>>¿ ALT+CTRL+SHIFT+?
> >>>>
> >>>>¡ ALT+CTRL+SHIFT+!
> >>>>-- 
> >>>>Stuart
> >>>>
> >>>>
> >>>>-- 
> >>>>_______________________________________________
> >>>>AccessD mailing list
> >>>>AccessD at databaseadvisors.com
> >>>>http://databaseadvisors.com/mailman/listinfo/accessd
> >>>>Website: http://www.databaseadvisors.com
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>-- 
> >>Marty Connelly
> >>Victoria, B.C.
> >>Canada
> >>
> >>
> >>
> >>-- 
> >>_______________________________________________
> >>AccessD mailing list
> >>AccessD at databaseadvisors.com
> >>http://databaseadvisors.com/mailman/listinfo/accessd
> >>Website: http://www.databaseadvisors.com
> >>
> >>
> >
> >
> >
>
> -- 
> Marty Connelly
> Victoria, B.C.
> Canada
>
>
>
> -- 
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com




More information about the AccessD mailing list