
-
آموزش کنترل زبان ورودی متن در Access
هنگامی که یک فرم در محیط برنامه اکسس طراحی میکنیم ممکن است لازم باشد تا کاربران اطلاعات درخواستی را به دو زبان فارسی و انگلیسی وارد کنند. پس لازم است که هر فیلد پس از فعال شدن بتواند زبانی را که کاربر با آن در حال ورود اطلاعات است کنترل و در صورتی که با زبانی غیر از آنچه برای آن تعریف شده است در حال ورود اطلاعات بود ؛ وی را از این موضوع مطلع نماید. در این مطلب از مجموعه آموزش اکسس قصد دارم تا شما را با کدهایی که در محیط کد نویسی این نرم افزار برای کنترل زبان ورودی متن تهیه شده است آشنا کنم.
در گام اول یک ماژول ایجاد کنید و کدهای زیر را در درون آن قرار دهید ؛ در ادامه با استفاده از فراخوانی کدهایی که در این ماژول قرار داده شده است ؛ عملیات کنترل زبان ورودی متن کنترل های قرار گرفته در روی فرم را انجام خواهیم داد.
-
تابع کنترل کننده حروف و نشانه های انگلیسی
'This Function can check Character input function for Is composed Of Characters English or Symbol or digit.
Public Function CheckSymAndCharEnFunc(Char As Integer) As Boolean
On Error GoTo Err_CheckSymAndCharEnFunc
'www.mrplanner.ir
If Not ((Char >= 65 And Char <= 90) Or (Char >= 97 And Char <= 122)) And (Not (1 < Char And Char < 65) And Not (90 < Char And Char < 97) And Not (122 < Char And Char < 158)) Then
MsgBox "شما تنها مجاز به استفاده از حروف انگليسي و نشانه ها هستيد.", , "خطا"
CheckSymAndCharEnFunc = False
Else
CheckSymAndCharEnFunc = True
End If
Exit_CheckSymAndCharEnFunc:
Exit Function
Err_CheckSymAndCharEnFunc:
MsgBox Err.Description
Resume Exit_CheckSymAndCharEnFunc
End Function
-
تابع کنترل کننده صرفأ حروف انگلیسی
'This Function can check Character input function for Is composed Of Only Characters English.
Public Function CheckCharEnFunc(Char As Integer) As Boolean
On Error GoTo Err_CheckCharEnFunc
'www.mrplanner.ir
If Not ((Char >= 65 And Char <= 90) Or (Char >= 97 And Char <= 122)) And (Char <> 32 And Char <> 9 And key <> 8) Then
MsgBox "شما تنها مجاز به استفاده از حروف انگليسي هستيد", , "خطا"
CheckCharEnFunc = False
Else
CheckCharEnFunc = True
End If
Exit_CheckCharEnFunc:
Exit Function
Err_CheckCharEnFunc:
MsgBox Err.Description
Resume Exit_CheckCharEnFunc
End Function
-
تابع کنترل کننده حروف و نشانه های فارسی
'This Function can check Character input function for Is composed Of Characters Farsi or Symbol or digit .
Public Function CheckSymAndCharFaFunc(Char As Integer) As Boolean
On Error GoTo Err_CheckSymAndCharFaFunc
'www.mrplanner.ir
If Not ((Char >= 1536 And Char <= 1791)) And (Not (1 < Char And Char < 65) And Not (90 < Char And Char < 97) And Not (122 < Char And Char < 158)) Then
MsgBox "شما تنها مجاز به استفاده از حروف فارسي و نشانه ها هستيد ", , "خطا"
CheckSymAndCharFaFunc = False
Else
CheckSymAndCharFaFunc = True
End If
Exit_CheckSymAndCharFaFunc:
Exit Function
Err_CheckSymAndCharFaFunc:
MsgBox Err.Description
Resume Exit_CheckSymAndCharFaFunc
End Function
-
تابع کنترل کننده صرفأ حروف فارسی
'This Function can check Character input function for Is composed Of Only characters Farsi.
Public Function CheckCharFaFunc(Char As Integer) As Boolean
On Error GoTo Err_CheckCharFaFunc
'www.mrplanner.ir
If Not (Char >= 1536 And Char <= 1791) And (Char <> 32 And Char <> 9 And key <> 8) Then
MsgBox "شما تنها مجاز به استفاده از حروف فارسي هستيد ", , "خطا"
CheckCharFaFunc = False
Else
CheckCharFaFunc = True
End If
Exit_CheckCharFaFunc:
Exit Function
Err_CheckCharFaFunc:
MsgBox Err.Description
Resume Exit_CheckCharFaFunc
End Function
توابعی که در بالا به آن اشاره شد قابلیت کنترل مستقل متن ورودی را دارند. اما در ادامه با یک سری دیگر از این توابع آشنا می شویم که بایستی در beforeupdate event و نیز key press event مورد استفاده قرار گیرند.
'This function using the beforeupdate event for form.
'This Function can check String entered in the field you(Str),According to the numbers given to the function(Id)
'Id=1 This means that Be checked Input string function for Is composed Of Characters English or Symbol or digit .
'Id=2 This means that Be checked Input string function for Is composed Of Only characters English.
'Id=3 This means that Be checked Input string function for Is composed Of Characters Farsi or Symbol or digit .
'Id=4 This means that Be checked Input string function for Is composed Of Only characters Farsi.
Public Function CheckCharFunc(Str As String, Id As Integer) As Boolean
On Error GoTo Err_CheckCharFunc
'www.mrplanner.ir
Dim Pos As String
Dim Cou As Integer
Dim i As Integer
Dim Ret As Boolean
Dim MyLen As Integer
Pos = "011"
i = 1
Ret = True
MyLen = Len(Str)
Do While i <= MyLen And Ret = True
Pos = Mid(Str, i, i)
Cou = AscW(Pos)
Select Case Id
Case 1
Ret = CheckSymAndCharEnFunc(Cou)
Case 2
Ret = CheckCharEnFunc(Cou)
Case 3
Ret = CheckSymAndCharFaFunc(Cou)
Case 4
Ret = CheckCharFaFunc(Cou)
End Select
i = i + 1
Loop
CheckCharFunc = Ret
Exit_CheckCharFunc:
Exit Function
Err_CheckCharFunc:
MsgBox Err.Description
Resume Exit_CheckCharFunc
End Function
-
تابع کنترل کننده حروف و نشانه های انگلیسی + تغییر دهنده زبان کیبورد به انگلیسی
Public Function ChekEnAndSymKeyFunc(key As Integer) 'this function using the key press event for object form.
On Error GoTo Err_ChekEnAndSymKeyFunc 'this function checked the enter value English or symbol or digit .
If Not ((key >= 65 And key <= 90) Or (key >= 97 And key <= 122)) And (Not (1 < key And key < 65) And Not (90 < key And key < 97) And Not (122 < key And key < 158)) Then
MsgBox "شما تنها مجاز به استفاده از حروف انگليسي و نشانه ها هستيد.صفحه کليد به انگليسي تغيير پيداکرد", , "خطا"
key = 8
End If
Exit_ChekEnAndSymKeyFunc:
Exit Function
Err_ChekEnAndSymKeyFunc:
MsgBox Err.Description
Resume Exit_ChekEnAndSymKeyFunc
End Function
-
تابع کنترل کننده صرفأ حروف انگلیسی + تغییر دهنده زبان کیبورد به انگلیسی
Public Function ChekEnKeyFunc(key As Integer) 'this function using the key press event for object form.
On Error GoTo Err_ChekEnKeyFunc 'this function checked the enter value English .
If Not ((key >= 65 And key <= 90) Or (key >= 97 And key <= 122)) And (key <> 32 And key <> 9 And key <> 8) Then
MsgBox "شما تنها مجاز به استفاده از حروف انگليسي هستيد.صفحه کليد به انگليسي تغيير پيداکرد", , "خطا"
key = 8
End If
Exit_ChekEnKeyFunc:
Exit Function
Err_ChekEnKeyFunc:
MsgBox Err.Description
Resume Exit_ChekEnKeyFunc
End Function
-
تابع کنترل کننده حروف و نشانه های فارسی + تغییر دهنده زبان کیبورد به فارسی
Public Function ChekFaAndSymKeyFunc(key As Integer) 'this function using the key press event for object form.
On Error GoTo Err_ChekFaAndSymKeyFunc 'this function checked the enter value Farsi or symbol or digit .
If Not ((key >= 1536 And key <= 1791)) And (Not (1 < key And key < 65) And Not (90 < key And key < 97) And Not (122 < key And key < 158)) Then
MsgBox "شما تنها مجاز به استفاده از حروف فارسي و نشانه ها هستيد.صفحه کليد به فارسي تغيير پيداکرد", , "خطا"
key = 8
End If
Exit_ChekFaAndSymKeyFunc:
Exit Function
Err_ChekFaAndSymKeyFunc:
MsgBox Err.Description
Resume Exit_ChekFaAndSymKeyFunc
End Function
-
تابع کنترل کننده صرفأ حروف فارسی + تغییر دهنده زبان کیبورد به فارسی
Public Function ChekFaKeyFunc(key As Integer) 'this function using the key press event for object form.
On Error GoTo Err_ChekFaKeyFunc 'this function checked the enter value Farsi .
If Not (key >= 1536 And key <= 1791) And (key <> 32 And key <> 9 And key <> 8) Then
MsgBox "شما تنها مجاز به استفاده از حروف فارسي هستيد.صفحه کليد به فارسي تغيير پيداکرد", , "خطا"
key = 8
End If
Exit_ChekFaKeyFunc:
Exit Function
Err_ChekFaKeyFunc:
MsgBox Err.Description
Resume Exit_ChekFaKeyFunc
End Function
قصد دارم تا در قالب یک مثال ساده شما را با نحوه کارکرد یکی از توابعی که در بالا به آن اشاره شد آشنا کنم. ابتدا یک فرم ساده طراحی کنید و یک Text Box روی آن قرار دهید. فرض کنید نام آن Text0 باشد ؛ حالا در رویداد BeforeUpdate آن کدهای زیر را قرار دهید.
If Not IsNull(Text0) Then
If Not CheckCharFunc(Text0, 4) Then
Cancel = 1
End If
End If
همانطور که در بالا ملاحظه می کنید در تابع CheckCharFunc آرگومان دوم را 4 در نظر گرفته ایم ؛ عدد 4 طبق راهنمای تابع به پذیرش صرفأ کاراکترهای فارسی اشاره دارد ؛ در ادامه در رویداد KeyPress کد زیر را قرار دهید.
Call ChekFaKeyFunc(KeyAscii)
روی TextBox کلیک کنید و در بخش Property Sheet تب Format گزینه KeyBoard Language را روی فارسی قرار دهید ؛ حالا فرم را ذخیره و سپس اجرا کنید. ملاحظه خواهید کرد ، در صورتی که از کاراکترهای غیر فارسی و علائم در text0 استفاده کنید با پیغام خطا مواجه خواهید شد.




