بستن فرم غیر فعال اکسس بطور خودکار

بستن فرم غیر فعال با استفاده از خاصیت تایمر 

 

تایمر

 

اجازه بدهید موضوع آموزش امروز را با یک پیش مقدمه شروع کنیم .

حتما تا به حال با سایت های مربوط به بانکداری اینترنتی سرو کار داشته اید . 

وقتی که شما وارد  صفحه پرداخت اینترنت بانک خود می شوید معمولا یک تایمر در گوشه ای از صفحه کاری شما ظاهر می شود . 

اگر دقت نمایید این تایمر  زمان حضور شما را در سایت به صورت معکوس محاسبه مینماید.

به این ترتیب شما ۱۰ یا ۱۵ دقیقه مهلت دارید که فرآیند نقل و انتقال خود را انجام دهید. 

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

در اینجا برای برنامه تفاوتی نمی‌کند که آیا شما در مدت زمان مشخص شده در صفحه کاری مربوطه فعالیی داشته اید یا خیر.

و یا اینکه در مدت زمان تعیین شده با وجود تلاشی که  نموده اید  قادر به جابجایی مبلغ مورد نظر خود شده اید یا خیر .

در هر دو صورت با اتمام زمان در نظر گرفته شده شما به خارج از صفحه کاری مربوطه هدایت خواهید شد.  

چرا باید مجدداً وارد صفحه شده و بازه زمانی جدیدی را برای خود ایجاد نمایید.

امروز و در طی این پست آموزشی ما نیز می خواهیم هم چنین شرایطی را در محیط اکسس  شبیه سازی نماییم

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

البته قبل از بسته شدن به کاربر پیغام هشدار لازم داده شود

پس با ما تا پایان این آموزش همراه باشد.

 

گام نخست : ایجاد فرم مورد نظر 

در گام اول باید فرم مورد نظر خود را ایجاد نماییم . 

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

بنابراین شما می‌توانید هر فرمی را با مشخصات مورد نظر خود ایجاد نمایید

برای این منظور من از فرم زیر استفاده  می نمایم

خاصیت تایمر 

همانگونه که ملاحظه می کنید این فرم یک فرم ورود به برنامه اصلی میباشد.

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

در صورت صحت اطلاعات وارد شده سایر بخش‌های برنامه برای کاربر به نمایش در می آید.

اما به منظور بالا بردن سطح امنیت برنامه خود می توانیم یک محدوده زمانی را برای کار در تعیین نماییم تا در این محدوده زمانی که مطمئناً باید معقولانه نیز  باشد  اطلاعات مربوطه را وارد نماید .

در غیر این صورت برنامه به صورت خودکار بسته شده و از دسترس کاربر خارج می شود.

گام دوم : قرار دادن یک تکس باکس بر روی فرم

ما در این مرحله فقط نیاز به یک تکس باکس ساده داریم . 

آن را ایجاد و با نام txtcounter  درون فرم خود قرار دهید .

گام چهارم: تنظیم خاصیت تایمر

در قدم بعدی می خواهیم به تنظیم  خاصیت تایمر  برای این فرم بپردازیم . 

برای این منظور ما نیاز داریم که به محض باز شدن و فعال شدن فرم مربوطه خاصیت تایمر شروع به کار نماید

برای تنظیم این خاصیت لازم است به محیط طراحی فرم مربوطه خود برویم

اکنون در این محیط کادر موسوم به    property sheet باز می‌کنیم .

به  تصویر زیرتوجه کنید.

کار با خاصیت تایمر در اکسس

ما در این کادر باید اطلاعات مربوط به دو رویداد  فرم را تکمیل نماییم . 

  1. رویداد مربوط به On open 

با استفاده از این رویداد می خواهیم به برنامه عنوان کنیم که به محض باز شدن این فرم فاصله زمانی مورد نظر برای شمارش را یک ثانیه در نظر بگیرد .

باید این نکته را بدانیم که خاصیت تایمر در اکسس بر مبنای میلی ثانیه می باشد . 

یعنی برای اینکه تایمر مورد نظر ما بر روی ۱ ثانیه قرار گیرد باید عدد ۱۰۰۰ میلی ثانیه  را که معادل یک ثانیه است در کادر مربوطه وارد نماییم . 

پس می خواهیم بگوییم که با باز شدن فرم تایمر برنامه هر یک ثانیه شروع به شمارش نماید . 

برای این منظور کدهای زیر را در رویداد مربوط به On open  درج می کنیم . 

تایمر

 

این تصویر حاوی دو نکته دیگر نیز می باشد : 

  1. ما در این رویداد نیاز به یک متغیر داریم که آن را   به نام  Timecount    از نوع Long  تعریف نموده و در بالای ماژول خود قرار می دهیم . 
  2. با استفاده از خط دوم روال این رویداد نیز از برنامه می خواهیم که در ابتدای باز شدن فرم ما تکس باکسی را که در مرحله قبل درون آن قرار دادیم را از دید کاربر پنهان نماید .در ادامه و در زمان مناسب این تکس باکس به کاربر نمایش داده خواهد شد . 

اکنون به سراغ رویداد on timer  می رویم .

در این رویدا می خواهیم که برنامه در زمانهای خاصی کارهایی را که ما برایش تعریف می نماییم را اجرا نماید . 

Private Sub Form_Timer()

 TimeCount = TimeCount + 1

Me.txtCounter.Value = 120 – TimeCount

If TimeCount = 60 Then

Me.txtCounter.Visible = True  

End If  

If TimeCount < 30 Then

Me.txtCounter.ForeColor = vbRed

End If
If TimeCount > 120 Then

DoCmd.Close acForm, “form6”

End If

End Sub

 

زمانی را که برای کاربر بمنظور  تکمیل فرم در نظر گرفته ایم معادل ۱۲۰ ثانیه است . 

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

در خط بعد از برنامه می خواهیم وقتی زمان باقی مانده برای کاربر معادل ۶۰ ثانیه شد شمارنده معکوس برای کاربر به نمایش در آید . 

و زمانی که زمان باقی مانده کمتر از ۳۰ ثانیه شد رنگ فونت شمارشگر بمنظور هشدار به کاربر به رن قرمز در آید . 

و د ر انتهای مهلت زمانی ۲ دقیقه ای فرم مربوطه بسته می شود . 

 

سوالی بود در قسمت نظرات پاسخ داده خواهد شد .

آموزش اکسس بازدید : 538 views ۱۷ فروردین, ۱۳۹۸ ۲