-
آموزش کنترل زبان ورودی متن در 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 استفاده کنید با پیغام خطا مواجه خواهید شد.