نوار پیشرفت یا progress bar در اکسس💥۳ مدل جذاب+نمونه فایل
سلام به سافت پلاس خوش آمدید . امروز و در ادامه مطالب مربوط به آموزش اکسس می خواهیم به سراغ مطلبی با عنوان نوار پیشرفت در اکسس یا در اصطلاح progress bar با هم صحبت کنیم .
مطمئنا در حین کار با نرم افزار های مختلف و در حین انجام عملیات های مختلف در ویندوز با این نوار مواجه شده ا ید.
نوار پیشرفت در واقع یک گزارش گرافیکی از میزان پیشرفت کاری است که توسط سیستم در حال انجام می باشد .
شما نیز از طریق مشاهده این نوار پیشرفت به راحتی می توانید متوجه شوید که فرآیند این انتقال در چه مرحله ای از اجرا می باشد .
ما امروز می خواهیم در این پست با هم همراه شویم و این نوار پیشرفت ( progress bar) را برای خودمان در محیط اکسس شبیه سازی کنیم .
با این کار یعنی ایجاد نوار پیشرفت در اکسس می توانیم یک جلوه کاری حرفه ای به نرم افزار خود بدهیم .
توی این آموزش می خواهیم با هم یاد بگیریم که چطور می شود چند تا مدل مختلف از انواع نوار پیشرفت در اکسس را ایجاد کنیم .
روش هایی که در این مطلب در مورد آنها صحبت می کنیم شامل روش های ساده که کد نویسی کمی دارند تا روش های کمی پیشرفته تر است اما خروجی و کار همه آنها یکی خواهد بود .
ایجاد یک لودینگ در اکسس
شاید همین ابتدا از خودتان سوال کنید که لودینگ دیگر چیست ؟
به تصویر زیر نگاه کنید تا خودتان متوجه شوید که منظور از لودینگ چیست ؟
اما برویم به سراغ مراحل ایجاد این فایل لودینگ در اکسس .
قدم اول : ایجاد فرم
اولین قدم نیاز به ایجاد یک فرم دارید . این فرم هم نیاز به چیز خاصی ندارد یک فرم ساده که البته باید یک سری از قسمت هایی که نیاز نیست را از محیط آن حذف کنید .
قسمت هایی مثل Navigation -selector- close bottun و … .
در ویدئوی ابتدای این صفحه با نحوه حذف این بخش ها صحبت کرده ام .
قدم دوم :دانلود تصویر با فرمت Gif
برای این کار کافی است که یک سرچ کوچک در اینترنت بکنید و به دنبال تصاویر متحرک برای لودینگ باشید .
کار سختی نیست اما باید کمی وقت بگذارید .
البته من در داخل نمونه فایل این آموزش 2 تا تصویر لودینگ در قالب گیف قرار می دهم که می توانید از انها هم استفاده کنید .
قدم سوم :قرار دادن تصاویر Gif در فرم
حالا نوبت به این می رسد که تصویر گیف مورد نظر خودتان را به محیط فرم تان در اکسس اضافه کنید .
برای این کار می توانید فرم خودتان را به محیط دیزاین برده و با استفاده از آبجکت Image تصویرتان را بر روی فرم قرار بدهید .
قدم چهارم : قرار دادن برچسب شمارنده
بر روی فرم خودتان یک برچسب هم نیاز دارید . این برچسب قرار است به عنوان یک شمارشگر از عدد 1 شروع کرده و تا 100 شمارش کند .
اسم این برچسب را به صورت lbl1 در نظر بگیرید . از این اسم هم بعدا در کد نویسی استفاده می شود .
قدم چهارم : کد نویسی
حالا باید به سراغ یک سری کدهایی بروید تا به کمک آن کار شمارش را برای این لودینگ انجام بدهید .
آن کدهایی که قرار است از آنها استفاده کنید را در این قسمت می توانید مشاهده کنید .
Dim i As Integer
Private Sub Form_Timer()
i = i + 1
DoEvents
Me.lbl1.Caption = i + 1 & " % "
If i = 99 Then
Me.TimerInterval = 0
DoCmd.Close
End If
End Sub
همانطور که در کدهای بالا می بینید این کدها در داخل رویداد مربوط به تایمر فرم وارد شده است .
فقط یک نکته مهم را هم باید در ننظر بگیرید که در داخل کادر property sheet حتما مقدار timer interval را که به صورت پیشفرض روی 0 است به عدد 150 تغییر بدهید .
همه این موارد را که پشت سر بگذارید شما هم یک فرم لود زیبا و حرفه ای برای خودتان را ایجاد کرده اید .
این از اولین فرمت مربوط به نوار پیشرفت که به صورت یک لودینگ حرفه ای ان را طراحی کردیم .
حالا برویم به سراغ روش ها دیگر برای ایجاد یک نوار پیشرفت در اکسس .
مراحل ایجاد یک نوار پیشرفت ( progress bar) در اکسس
در ادامه برویم به سراغ دو مدل از پروگرس بارها که اتفاقا خیلی جاها هم کاربرد دارد و زیاد با آنها سرو کار داشته اید .
در تصویر زیر می توانید این پروگرس بارها را مشاهده کنید .
همانطور که مشاهده می کنید ما در اینجا دو نوع از نوار پیشرفت را داریم .
هر کدام از این نوارهای پیشرفت با روش های مختلفی ایجاد می شوند که در اینجا به ایجاد هر دو روش خواهیم پرداخت.
برای شروع کار ما احتیاج به یک فرم ساده داریم .
این فرم را ایجاد کرده و آن را در حالت Design قرار دهید .
حالا باید چند شی را به فرم خود اضافه کنیم .
اولین شی Label است .
این لیبل را به نام lblcurrenttask نام گذاری می کنیم . از این اسم قرار است بعدا داخل کدها استفاده کنیم .
در قدم بعدی یک شی مستطیل را به محیط فرم خود اضافه می کنیم
این مستطیل را به نام boxprogress نام گذاری می کنیم .
با استفاده از جدول مربوط به property مشخصات مربوط به این مستطیل را بصورت زیر تنظیم می کنیم .
در مرحله سوم احتیاج به یک تصویر داریم که نقش اصلی را برای نوار پیشرفت ما ایفا می کند .
برای این کار من از تصویر زیر استفاده می کنیم .اسم این تصویر را هم imgprogress در نظر می گیریم .
این تصویر را به فرم خود اضافه کرده و ویژگی های آن را بصورت زیر تنظیم می کنیم .
این تصویر را با مشخصات ذکر شده در داخل مستطیل خود قرار می دهیم .
تصویر کار تا به اینجای کار شبیه تصویر زیر می باشد .
همانگونه که در تصویر می بینید یک دکمه هم به فرم خود اضافه کرده ایم .
قرار است نوار پیشرفت ما بلافاصله بعد از کلیک نمودن بر روی این دکمه شروع به کار کند .
بنابراین برای این کار باید شروع به کد نویسی کنیم.
نام این دکمه را به دلخواه خود می توانید انتخاب کنید .
برای عنوان آن نیز می توانید به سلیقه خود یک متن را وارد کنید .
درج کدهای VBA برای ایجاد پروگرس بار در اکسس
برای کد نویسی باید چند مرحله را پشت سر بگذاریم .
در مرحله اول به سراغ دکمه موجود بر روی فرم خود رفته و برای آن کد نویسی می کنیم .
برای این کار باید کدهای زیر را در رویداد مربوط به On-Click آن وارد کنیم .
Private Sub Command16_Click()
Dim lngitem As Long
Const lngtotal As Long = 100000
Do While lngitem <= lngtotal
lngitem = lngitem + 1
If lngitem < 50000 Then
Call progress(lngitem, lngtotal, "شروع ....")
ElseIf lngitem < 75000 Then
Call progress(lngitem, lngtotal, "ادامه.....")
End If
Loop
Call progress(lngitem, lngtotal, "اتمام")
End Sub
در مرحله آخر هم باید از یک خط کد زیر در رویداد مربوط به On Load فرم خود استفاده کنیم
Private Sub Form_Load()
Call progress(0, 0, "وضعیت پیشرفت...")
End Sub
وقتی که کدهای قبلی را نوشتید حالا باید به سراغ کدهای زیر بروید و همه این کدها را قبل از کدهای بالایی در داخل برنامه خودتان وارد کنید .
نگران نباشید اگر با این قضیه مشکل دارید و نمی دانید که دقیقا چه کار باید کنید چون همه این مراحل را در داخل ویدئوی بالای همین صفحه توضیح داده ام .
Dim holdpercomplete As Single
Option Compare Database
Option Explicit
Public Sub progress(currenttime As Long, totaltime As Long, taskstate As String)
Dim percomplete As Single
Dim intwidth As Integer
Me.lblcurrenttask.Caption = taskstate
If currenttime <= 0 Or totaltime <= 0 Then
Me.imgprogress.Width = 0
Exit Sub
End If
percomplete = currenttime / totaltime
If Int(percomplete * 100) = Int(holdpercomplete * 100) Then
Exit Sub
End If
holdpercomplete = percomplete
If Int(percomplete * 100) Mod 5 = 0 Then
intwidth = (boxprogress.Width * percomplete)
imgprogress.Width = intwidth
DoEvents
End If
End Sub
بعد از درج تمامی این کدها و نیز طی کردن این مراحل کافی است به محیط فرم خود برگردیم .
اگر همه مراحل را به درستی طی کرده باشیم کافی است که بر روی دکمه موجود بر روی فرم خود یک بار کلیک کنیم .
بلافاصله بعد از این کار مشاهده خواهید کرد که پروگرس بار ما شروع به کار کرده و از صفر تا صد را تکمیل خواهد کرد
مطلب مرتبط : ایجاد لاگین فرم در اکسس .
روش سوم برای ایجاد پروگرس بار
در اینجا می خواهیم با هم به بررسی روش دیگری برای ایجاد یک نوار پیشرفت در اکسس بپردازیم .
برای این کار مراحل زیر را دنبال می کنیم .
اول اینکه یک فرم را ایجاد کرده آن را در نمای طراحی قرار می دهیم .
در مرحله بعد یک تکس باکس را بر روی فرم خود قرار می دهیم .
در اینجا من نام txt_time را برای این شی انتخاب کرده ام .
سپس به سراغ شی بعدی می رویم .
این شی یک مستطیل است .
آنچه که در این مستطیل مهم است این است که رنگ دلخواه خود را برای آن در نظر بگیریم .
بعنوان مثال من در اینجا رنگ سبز را برای این مستطیل در نظر گرفته ام .
در گام آخر نیز یک دکمه را بر روی فرم خود قرار می دهیم .
تا به اینجای کار فرم ما به همراه اشیایی که برای آن در نظر گرفته ایم باید چیزی شبیه تصویر زیر باشد .
حالا باید به سراغ بخش کد نویسی برای این فرم و اشیای موجود در آن برویم .
برای شروع از دکمه خود که آن را در مرحله قبل ایجاد کرده ایم می رویم .
در رویداد مربوط به کلیک این دکمه کدهای زیر را وارد می کنیم .
Private Sub Command11_Click()
Me.txt_time = 1
Me.TimerInterval = 50
End Sub
ما در این خط از کدها دو چیز را برای برنامه تعیین می کنیم .
اول اینکه با کلیک بر روی این دکمه مقدار عددی یک را برای تکس باکس در نظر می گیریم .
در قدم بعدی می خواهیم که خاصیت timerinterval این فرم بر روی عدد ۵۰ میلی ثانیه قرار گیرد .
در قدم بعد به سراغ رویداد On Load فرم خود کد های زیر را وارد می کنیم .
Private Sub Form_Load()
Me.txt_time.Visible = False
Me.txtlabel.Caption = 0
Me.progressbox.Width = 0
Me.progressbox.BackStyle = 1
End Sub
در خط اول از این کدها می خواهیم که با لود شدن فرم ما چهار اتفاق رخ دهد .
اول اینکه تکس باکس مورد نظر ما که در اینجا به نام txt_time می باشد از دید کاربر مخفی شود .
دوم اینکه خاصیت عنوان برچسب به نام txtlabel را برابر با عدد صفر تنظیم شود .
سوم اینکه مقدار خاصیت Width مستطیل ما را که در اینجا بصورت progressbox نام گذاری شده است را هم برابر با صفر قرار دهد.
چهارم هم اینکه خاصیت Backstyle مستطیل مورد نظر را برابر با عدد ۱ قرار دهد .
در مرحله آخر هم باید به سراغ رویداد مربوط به On Timer فرم خود برویم .
در این رویداد کدهای زیر را وارد می کنیم .
اول اینکه تکس باکس مورد نظر ما که در اینجا به نام txt_time می باشد از دید کاربر مخفی شود .
دوم اینکه خاصیت عنوان برچسب به نام txtlabel را برابر با عدد صفر تنظیم شود .
سوم اینکه مقدار خاصیت Width مستطیل ما را که در اینجا بصورت progressbox نام گذاری شده است را هم برابر با صفر قرار دهد.
چهارم هم اینکه خاصیت Backstyle مستطیل مورد نظر را برابر با عدد ۱ قرار دهد .
در مرحله آخر هم باید به سراغ رویداد مربوط به On Timer فرم خود برویم .
در این رویداد کدهای زیر را وارد می کنیم .
Private Sub Form_Timer()
Me.txt_time = Me.txt_time + 1
Me.progressbox.Width = Me.txt_time * 60
Me.txtlabel.Caption = Me.txt_time & "%"
If Me.txt_time = 100 Then
Me.TimerInterval = 0
End If
End Sub
با طی کردن مراحل فوق و ذخیره کردن آنها کافی است به محیط اکسس خود برگشته و فرم خود را به حالت اجرا درآورید .
حال اگر بر روی دکمه خود کلیک کنید مشاهده می کنید که نوار پیشرفت شما شروع به کار می کند .
تفاوتی که در اینجا با روش قبلی داریم این است که نوار پیشرفت ما در اینجا دارای یک شمارنده نیز می باشد که میزان پیشرفت نوار پیشرفت ما را بصورت درصدی نمایش می دهد .
بنابراین در اینجا توانستیم با استفاده از دو روشی که با هم دنبال کردیم به کار ایجاد نوار پیشرفت یا همان Progress bar در اکسس بپردازیم .
این هم یکی دیگر از مطالب مربوط به کار با نرم افزار اکسس امیدوارم که برایتان کاربردی و مفید بوده باشد .
خوشحال می شوم اگر سوال یا نظری در مورد این اموزش دارید را در قسمت دیدگاهها با من در میان بگذارید .
راستی اگر علاقمند به یادگیری نرم افزار اکسس هستید به شما می توانم دوره جامع اکسس را معرفی کنم .
توی این دوره بطور کامل از صفر تا صد اکسس را با هم یاد می گیریم .
برای مشاهده لینک دانلود لطفا وارد حساب کاربری خود شوید!
وارد شویدپسورد فایل : گزارش خرابی لینک
مطالب زیر را حتما مطالعه کنید
ساخت برچسب در اکسس💥چطور آنها را ایجاد و مدیریت کنیم ؟
ریبون ها در اکسس💥از مخفی کردن تا مدیریت کردن آنها
چطوری متن ها و تصاویر را بصورت متحرک در اکسس نمایش بدهیم ؟
فرمت دهی نوشته ها در اکسس | کاربرد + مثالها
۵ ویژگی در فرم های اکسس که کمتر از آنها خبر داشتید .
باز کردن گزارش اکسس برای یک رکورد مشخص + نمونه فایل
1 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
با سلام
اینجانب به یک نوار پیشرفتی نیاز دارم که نمایش نوار پیشرفت با اجرای برنامه مچ شود و بطور دینامیک پیشرفت را نشان دهد مثلا اگر اسکن یک مدرک دو دقیقیه طول میکشد نوار پیشرفت هم بصورت دینامیک همان زمان را و زمان باقیمانده از اکسن مدرک را نشان دهد نه اینکه ما در سورس برنامه برای نوار پیشرفت یک تایم در نظر بگیریم و با اسکن مدرک یا کپی فایل و……… مطابقت نداشته باشد . لطفا راهنمایی بفرمائید. .
با تشکر – فنائی