السلام عليكم و رحمة الله و بركاته
عندي بيانات زبائن و اسماءهم تكون باللغة العربية او الانكليزية..
في ال continuous form عملت خاصية انه من تكتب حروف اسم الزبون يصبح بحث على هذا الاسم
المشكلة انه لا استطيع البحث باللغة الانكليزية و العربية سوية( الكود اما كله يدعم بحث بالعربي او يدعم بحث بالانكليزي)
مثلا كلمة Layla اول حرف L يقابله حرف الميم بالكيبورد,,
والكود يفهم فقط اما keycode=76 واللي هو حرف ال L
او يفهم فقط كود keycode=227 واللي هو حرف الميم
هذا مثال على البيانات
سؤالي هو ماهو الكود المناسب لهذه الطريقة للبحث لتغيير اللغتين؟؟؟
ادناه الكود اللي عملته_يرجى ملاحظة الكود باللون الاحمر (ملاحظة : حاليا فقط حرف الميم و الصاد مفعلهم في الكود)
وهذا رابط كود الاحرف الباقيةللغة العربية من مايكروسوف https://msdn.microsoft.com/en-us/library/cc195058.aspx:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim ctl As Control
Dim fldName As String
Dim rst As Recordset
On Error GoTo ErrHandler
'MsgBox ("the keycode is " & KeyCode)
Select Case KeyCode
Case 122
If Shift <> 4 Then
KeyCode = 0
End If
Case vbKeyEnd
KeyCode = 0
DoCmd.RunCommand acCmdRecordsGoToLast
Case vbKeyHome
KeyCode = 0
DoCmd.RunCommand acCmdRecordsGoToFirst
Case vbKeyUp
KeyCode = 0
DoCmd.RunCommand acCmdRecordsGoToPrevious
Case vbKeyDown
KeyCode = 0
DoCmd.RunCommand acCmdRecordsGoToNext
Case vbKeyRight, vbKeyLeft
Case 48 To 57, 65 To 90, 645
هذا حرف الميمIf KeyCode = 76 Then KeyCode = 227
هذا حرف الصاد If KeyCode = 87 Then KeyCode = 213
Set ctl = Screen.ActiveControl
fldName = ctl.Name
If fldName <> LastFld Then
srchval = ""
End If
LastFld = fldName
srchval = srchval & Chr(KeyCode)
KeyCode = 0
If fldName = "Address" Then
srchcrit = "[" & fldName & "] Like '*" & srchval & "*'"
Else
srchcrit = "[" & fldName & "] Like '" & srchval & "*'"
End If
Set rst = Me.RecordsetClone
rst.FindFirst srchcrit
If rst.NoMatch Then
MsgBox (" Record not found! ")
Else
Me.Bookmark = rst.Bookmark
End If
rst.Close
Case 107, 187
If srchval = "" Then
KeyCode = 0
Exit Sub
End If
Set ctl = Screen.ActiveControl
fldName = ctl.Name
KeyCode = 0
Set rst = Me.RecordsetClone
rst.Bookmark = Me.Bookmark
rst.FindNext srchcrit
If rst.NoMatch Then
MsgBox (" Record not found! ")
Else
Me.Bookmark = rst.Bookmark
End If
rst.Close
Case 109, 189
If srchval = "" Then
KeyCode = 0
Exit Sub
End If
Set ctl = Screen.ActiveControl
fldName = ctl.Name
KeyCode = 0
Set rst = Me.RecordsetClone
rst.Bookmark = Me.Bookmark
rst.FindPrevious srchcrit
If rst.NoMatch Then
MsgBox (" Record not found! ")
Else
Me.Bookmark = rst.Bookmark
End If
rst.Close
Case 27
KeyCode = 0
srchval = ""
Case Else
KeyCode = 0
End Select
Exit Sub
ErrHandler:
Select Case Err.Number
Case 2046
Case Else
MsgBox Err.Number & " " & Err.Description
End Select
Resume Next
End Sub