جلوگیری از درج عدد در تکس باکس توسط کاربر در اکسس

وقتی شما نوع داده  مجاز برای یک تکست باکس را از نوع متن در نظر می گیرید ، برای ورود داده ها با دو انتخاب مواجه هستید:

 

۱.  وارد نمودن متن های مختلف  شامل حروف الفبا علائم  ، کاراکترها و …. .

 

۲ وارد نمودن اعداد که این اعداد در قالب متن قرار می گیرند .

اما حتما می دانید که در این حالت اعداد قابلیت اعمال ریاضی را ندارند همانند شماره تلفن کد ملی و غیره که اگر در قالب متن وارد تکس باکس شما شوند شما قادر به انجام اعمالی همانند جمع ، تفریق ،  ضرب و تقسیم بر روی این اعداد نخواهید بود چرا که اصولاً نیازی به جمع بستن و انجام اعمال ریاضی بر روی این نوع از اعداد پیدا نمی کنید.

 گاهی اوقات نیاز پیدا می‌کنید که از کاربر بخواهید که درون یک تکست باکس فقط از مقادیر متنی استفاده نموده و به هیچ عنوان قادر به وارد نمودن اعداد به جای حروف نباشد و به  بیانی دیگر به جلوگیری از درج عدد در تکس باکس مورد نظر خود از سوی کاربر بپردازید . 

اما سپردن این کار  یعنی وارد نکردن عدد در یک نکس باکس متنی به کاربر ایده چندان جالبی نخواهد بود چرا که هیچ تضمینی وجود ندارد که کاربر در ورود اطلاعات مورد نظر شما دچار خطا نشود. 

اما این شما هستید که در گام  اول  می توانید با هوشمندی و البته صرف مدت زمان کمی و با استفاده از چند خط کد VBA ترتیبی اتخاذ کنید که باعث  جلوگیری از درج عدد در تکس باکس مورد نظر خود توسط کاربر شوید . 

مطلب مرتبط : قوانین و قوانین اعتبار سنجی در اکسس

و در گام بعدی   در صورت بروز این امر یعنی وارد کردن عدد به جای متن توسط کاربر ،  با پیغام مناسبی کاربر را از خطای رخ داده مطلع نموده و برای رفع آن راهنمایی های لازم را در اختیار کاربر قرار بدهید.

برای این منظور مراحل زیر را دنبال نمایید: 

  • جدولی شامل اطلاعات زیر را ایجاد نمایید .
جلوگیری از درج عدد در تکس باکس

جدول در محیط طراحی

همانطور که ملاحظه می نمایید نوع داده در هر سه فیلد مربوط به این جدول از نوع متن تعریف شده است .

 

  • در گام دوم باید فرمی که با فیلدهای جدول شما در ارتباط باشد را طراحی و ایجاد نمایید . محیط طراحی این فرم را می توانید در تصویر مشاهده نمایید .

 

طراحی فرم در اکسس

                                                 فرم در محیط طراحی                                                                                                                                                                          بعد از ایجاد فرم خود همزمان که در محیط طراحی فرم به سر می برید با فشردن همزمان دکمه های ALT +F 11  وارد محیط کدنویسی اکسس شود .

  • در این محیط از منوی Insert  گزینه Module  را انتخاب نمایید .
ماژول در اکسس

                    ایجاد ماژول در اکسس

سپس کدهای زیر را کپی نموده و در محیط کد نویسی خود وارد نمایید .

 

Public Function TextOnly(ByVal strText As String) As Boolean

‘ممانعت از ورود داده متنی در فرم

Dim intCounter As Integer
For intCounter = 1 To Len(strText)
If IsNumeric(Mid(strText, intCounter, 1)) Then
TextOnly = False
Exit Function
End If
Next intCounter
TextOnly = True
End Function

  • استفاده از روال رویداد در فرم .

در این مرحله باید برای فرم خود روالی را تعریف کنید تا قبل از اینکه بخواهد اطلاعات وارد شده توسط کاربر را تحویل جدول دهد کنترل نماید که آیا کاربر در ساختار اطلاعاتی که وارد نموده است آیا از اعداد استفاده کرده است یا خیر ؟ 

برای این منظور در محیط طراحی خود طبق تصویر زیر پیش رفته تا اکسس  روالی با عنوان Before update  را برای فرم شما ایجاد نماید . 

اکنون کدهای زیر را وارد این روال نموده و  روال خود را ذخیره نمایید . 

Private Sub Form_BeforeUpdate(Cancel As Integer)

If Len(Me.strReviewedBy & vbNullString) = 0 Then
Exit Sub
Else
If Not TextOnly(Me.strReviewedBy) Then
MsgBox “شما فقط مجاز به استفاده از حروف هستید “, _
vbExclamation, “خطای کاربری”
Cancel = True
End If
End If
End Sub

اکنون کار شما به پایان رسیده است . برای اطمینان از عملکرد کدهای خود در خصوص جلوگیری از درج عدد در تکس باکس های موجود در فرم خود می توانید در ساتار اطلاعات وارده به یک یا چند تکس باکس خود از یک یا چند رقم استفاده کنید و نتیجه کار را خود بررسی نمایید . 

 

آموزش اکسس2016 بازدید : 27 views ۱۲ آبان, ۱۳۹۷ ۰