Militaru Sorin Bronze Collection
I like the way Microsoft Word inserts symbols using shortcut keys defined by the user. Unfortunately, Microsoft Access doesn't have an equivalent feature. Here's the method that I use to insert symbols or special characters. The symbols and the shortcut keys defined are stored in a table called "tShortCutKey" with the structure shown in Table 1. The ShortCutKey field is in the format Format$(Shift) & "+" & Format$(KeyCode), where Shift and KeyCode are the values returned by KeyDown event procedure.
Table 1. The tShortCutKey table.
Field Name |
Type |
Length |
Symbol |
Text |
1 |
ShortCutKey |
Text |
50 |
The pgInsertSymbol subroutine uses the table to load symbols:
Sub pgInsertSymbol (pintKeyCode As Integer, _ pintShift As Integer) Dim strShortCutKey As String Dim intSelStart As Integer Static fLoaded As Integer If Not fLoaded Then pgLoadList fLoaded = True End If strShortCutKey = _ Format$(pintShift) & "+" & _ Format$(pintKeyCode) If InStr(strKeyList, strShortCutKey) <> 0 Then intSelStart = Screen.ActiveControl.SelStart Screen.ActiveControl.text = _ Left(Screen.ActiveControl.text, intSelStart) _ & DLookup("Symbol", "tShortCutKey", _ "ShortCutKey='" & strShortCutKey & "'") & _ Mid(Screen.ActiveControl.text, intSelStart + _ Screen.ActiveControl.SelLength + 1) Screen.ActiveControl.SelStart = intSelStart + 1 End If End Sub |
To call the routine, you add this line to the KeyDown event of any text box where you want to display sales:
pgInsertSymbol KeyCode, Shift |
The routine uses a global variable loaded with the list of shortcut keys defined in the table. The pgLoadList routine loads that variable:
Dim strKeyList As String
Sub pgLoadList () Dim db As Database Dim rec As Recordset Set db = DBEngine.Workspaces(0).Databases(0) Set rec = db.OpenRecordset("tShortCutKey", _ DB_OPEN_SNAPSHOT) strKeyList = "" Do While Not rec.EOF strKeyList = strKeyList & Chr(13) & Chr(10) & _ rec!ShortCutKey rec.MoveNext Loop End Sub |