قفل کردن فیلدها در اکسس | با این کدها هر فیلدی را قفل کنید .
سلام به سافت پلاس و دنیای اکسس خوش آمدید . امروز در ادامه مطالب مربوط به آموزش اکسس می خواهیم به سراغ برنامه نویسی در اکسس رفته و راجع به نحوه قفل کردن خودکار فیلدها در اکسس با هم صحبت کنیم .
با وجودی که اکسس به خودی خود از قابلیت ها و امکانات خیلی خوبی برخوردار است اما خیلی از مواقع هم هست که برای اضافه کردن یک قابلیت خاص به اکسس نیاز به کد نویسی در داخل آن دارید .
بعنوان مثال فرض کنید در داخل اکسس یک فرمی دارید که در داخل فیلدهای آن اطلاعات مختلفی را وارد می کنید .
حالا بنا بر هر دلیل می خواهید وقتی که در داخل یک یا چند تا فیلد اطلاعات توسط کاربر وارد شد بعد از خروج کاربر از آن فیلد خاص آن فیلد بصورت خودکار قفل شود تا شخص دیگری نتواند اطلاعات موجود در داخل آن فیلد خاص را تغییر بدهد .
برای این کار باید یک سری از مراحل را دنبال کرده و از یک سری کدهای VBA نیز استفاده کنید تا بتوانید این قابلیت را برای اکسس تعریف کنید . چیزی که قرار است در داخل این آموزش بطور کامل راجع به آن با هم صحبت کنیم .
من علیرضا شهرآئینی هستم و از شما دعوت می کنم که با من تا انتهای این آموزش همراه من باشید .
فهرست محتوا
مراحل قفل کردن خودکار فیلدها در اکسس
برای شروع کار به یک فرم احتیاج داریم که بتوانیم در داخل آن اطلاعات مورد نظرمان را وارد کنیم .
من برای این کار از فرم زیر استفاده می کنم .
اگر دقت کنید در فرم بالا چند تا فیلد قرار دارد که در آخرین فیلد مربوط به آن قرار است درصد تخفیف برای هر کتاب وارد شود . حالا می خواهیم کار کنیم که وقتی این درصد تخفیف وارد شد و بلافاصله بعد از خروج از آن کاربر دیگری قادر به تغییر این درصد تخفیف نباشد .
برای این کار نیاز به یک سری کدهای وی بی ای داریم که اگر در ادامه با من همراه باشید این کدها را خواهیم نوشت .
آماده سازی اکسس برای کد نویسی VBA
اینجا باید چند تا مرحله را با هم دنبال کنیم .
1 – اولین کار این است که فرم خودتان را به نمای طراحی و یا همان Design خودش ببرید .
2- کادر Property sheet مربوط به فرم را باز کنید .
3- دقت کنید که در لیست مربوط به اشیای فرم شی تکس باکس مربوط به دریافت کد تخفیفی انتخاب شده باشد .
در نمونه فایل من تکس باکس کد تخفیف به نام txt_off نام گذاری شده است.
4- حالا به سربرگ Event بروید . اینجا لیست کامل رویدادهای مربوط به این تکس باکس نمایش داده می شود .
از بین این رویدادها ما با دو تا رویداد کار داریم .
اولین رویداد مورد نظر رویداد on Got Focus است .
5- بعد از اینکه روی آیکون کناری این رویداد کلیک کردید اکسس به شما 3 تا گزینه را نمایش می دهد که از بین آنها باید آخرین گزینه یعنی Code Builder را انتخاب کنید .
بعد از این مراحل اکسس شما را وارد محیط کد نویسی کرده و یک روال برای رویداد on Got Focus را در اختیار شما قرار می دهد که می توانید کدهای خودتان را داخل آن بنویسید .
در بخش بعدی این کدها را با هم خواهیم نوشت .
حالا وقت کد نویسی است .
توی این مرحله باید کدهای زیر را در داخل روالی که ایجاد کردیم بنویسید .
Private Sub txt_off_GotFocus()
With Me.txt_off
If Not IsNull(Me.txt_off) Then
Exit Sub
Else
.Locked = False
.BackColor = vbWhite
End If
End With
End Sub
بیایید یک نگاهی به کدهای بالا بیندازیم .
توسط این کدها از اکسس خواسته ایم که وقتی تکس باکس مربوط به دریافت عدد تخفیف فوکوس را در اختیار گرفت چند تا کار را برای ما انجام بدهد .
در چند خط کد ابتدایی که در خطوط شماره 3 تا 5 نوشته شده از اکسس خواسته ایم که تکس باکس با نام txt_offرا بررسی کند .
اگر این تکس باکس حاوی اطلاعاتی بود یعنی اینکه ما از قبل مقدار تخفیف مورد نظر را در داخل آن نوشته ایم پس در این حالت نیاز نیست که هیچ کار خاصی انجام شود و برنامه باید از همی جا از این روال بطور کلی خارج شود .
اما اگر این تکس باکس خالی باشد در ادامه گفته ایم که در قدم اول آن تکس باکس را از حالت قفل بودن خارج کند .
و بعد رنگ پس زمینه آن را هم به رنگ سفید در بیاورد .
این از کدهای مربوط به این رویداد . حالا برویم به سراغ رویداد بر عکس آن یعنی رویداد on Lost Focus .
برای این رویداد از کدهای زیر استفاده می کنیم .
Private Sub txt_off_LostFocus()
Me.txt_price.SetFocus
Dim disscount As Integer
With Me.txt_off
If .Value = "" Then
Me.txt_off = 0
disscount = 0
Else
disscount = Me.txt_off.Value
If MsgBox("آيا از تخفيف" & " " & disscount & " " & "درصدي براي اين کتاب مطمئن هستيد؟", vbYesNo) = vbYes Then
.Locked = True
.BackColor = RGB(200, 200, 200)
Else
Me.txt_off = ""
.Locked = False
.BackColor = vbWhite
End If
End If
End With
End Sub
اینجا کدهای بیشتری داریم . یک کلیتی از این کدها را اینجا توضیح میدهم و جزئیات بیشتر را در داخل ویدئویی که در ابتدای همین صفحه قرار دارد می توانید مشاهده کنید .
کاری که این کدها انجام می دهند به این صورت است که اول کاربر مقدار عدد مورد نظر خودش را در داخل تکس باکس مربوط به میزان تخفیف وارد می کند .
بعد از این کار وقتی که کاربر از داخل این تکس باکس خارج شد بلافاصله یک کادر پیغام به کاربر نمایش داده می شود و از او سوال می کند که ایا از مقدار تخفیفی که وارد کرده مطمئن هست یا نه؟
اگر جواب کاربر مثبت باشد آن تکس باکس قفل می شود و دیگر امکان تغییر در مقدار آن وجود ندارد اما اگر پاسخش به این سوال منفی بود توسط اکسس مجددا به همان تکس باکس بر گردانده می شود تا عدد مورد نظرش را وارد کند .
به این ترتیب می شود این تکس باکس را قفل کرد که سایر کاربران قادر به تغییر میزان تخفیف در نظر گرفته شده برای هر کتاب نباشند .
نتیجه نهایی و جمع بندی این آموزش
اکسس نرم افزار فوق العاده جالب و کاربردی است که با کمک آن می شود بانکهای اطلاعاتی را ایجاد کرد. در عین حال که قابلیت های اکسس زیاد است اما باز هم ممکن است که من و شما نیازهایی داشته باشیم که به خودی خود و فقط با استفاده از امکانات خود اکسس نتوانیم آن نیازها را برطرف کنیم .
درست مثل مثال عملی که در این اموزش در موردش صحبت کردیم . اینجاست که باید به سراغ برنامه نویسی در اکسس رفته و با استفاده از کدهای VBA را برای اکسس تعریف کنیم .
امیدوارم که این آموزش برایتان کاربردی و مفید بوده باشد خوشحال می شوم اگر سوال یا نظری در مورد این آموزش دارید در قسمت دیدگاهها درج کنید.
در ضمن می توانید نمونه فایل این آموزش را از قسمت پایین همین مطلب دانلود نمایید .
به امید دیدار مجدد شما در سافت پلاس .
فقط اعضای سایت قادر به دانلود نمونه های آموزشی هستند . برای عضویت رایگان می توانید از دکمه بالای همین صفحه استفاده کنید .
برای مشاهده لینک دانلود لطفا وارد حساب کاربری خود شوید!
وارد شویدپسورد فایل : گزارش خرابی لینک
دیدگاهتان را بنویسید