• 1
eyadd

كيف تقوم باخراج جميع المتسخدمين من التطبيق

سؤال

بسم الله الرحمن الرحيم

لعل الكثير منا (و خاصة المطورين) نواجه مشاكل في تعديل التطبيقات الموجوده على الشبكه

ذالك لان عدد من المستخدمين قد يشغلون البرنامج و بالتالي لا يمكن المطور من الدخول و التعديل الا بعد خروج جميع المستخدمين.

في هذا الموضوع ساقوم بشرح طربقه سهله و بابسط ما يمكن لحل هذه المشكله باذن الله

الهدف:

هو اخراج كافه المستخدمين من التطبيق بعد فترة زمنيه محدده من دون الحاجه لدخولك كمطور.

خلاصة الطريقه:

قيام التطبيق بفحص وجود ملف خارج ال database كل فترة معينه و اغلاق التطبيق عند عدم وجود هذا الملف

الخطوات:

1- انشئ مجلدا في السواقه C و سميه My Data

2- انشئ ملفا نصيا فارغا و سميه open.txt

3- غير الاحقه من txt الى abc مثلا ليصبح اسم الملف open.abc

4- انشئ ملف اكسس و ضع فيه اي جدول و اي بيانات

5- انشئ نموذج لهذا الجدول و سميه frmName ثم اغلقه

الان نحتاج الى بعض التركيز

6- انشئ نموذجا جديدا غير مرتبط و سميه frmShutDownWarn و ضع فيه text box و سميه txtWarning

سيكون في هذا النموذج رسالة التنبيه للمستخدم بانه ستيم انهاء البرنامج لكي يتسنى له حفظ البيانات التي يعمل بها ثم اغلق النموذج

7- انشئ نموذجا جديدا غير مرتبط و سميه frmShutDownCheck سيكون هذا النموذج فارغا من اي شئ

مهمة هذا النموذج هو القيام بعميله فحص و التاكد من اسم الملف المذكور سابقا open.abc

8- ادخل على النموذج frmShutDownCheck بوضع التصميم

9- من خصائص النموذج ضع 60000 في خانة Timer Interval اي دقيقه واحده حيث كل 1000 Milisecond تساوي ثانيه و احده (يمكنك تغيير الوقت كما تريد)

10- انقر على زر View Code الموجدود ضمن مجموعه tools كما في الصوره .

post-143446-097156400 1319017301_thumb.j

11- ثم ادخل الكود التالي:


Dim boolCountDown As Boolean
Dim intCountDownMinutes As Integer

Private Sub Form_Open(Cancel As Integer)
' Set Count Down variable to false
' on the initial opening of the form.
boolCountDown = False
End Sub

Private Sub Form_Timer()
On Error GoTo Err_Form_Timer
Dim strFileName As String
strFileName = Dir("c:\My Data\open.abc")
If boolCountDown = False Then
' Do nothing unless the check file is missing.
If strFileName <> "open.abc" Then
' The check file is not found so
' set the count down variable to true and
' number of minutes until this session
' of Access will be shut down.
boolCountDown = True
intCountDownMinutes = 2
End If
Else
' Count down variable is true so warn
' the user that the application will be shut down
' in X number of minutes. The number of minutes
' will be 1 less than the initial value of the
' intCountDownMinutes variable because the form timer
' event is set to fire every 60 seconds
intCountDownMinutes = intCountDownMinutes - 1
DoCmd.OpenForm "frmShutDownWarn"
Forms!frmShutDownWarn!txtWarning = "This application will be shut down in approximately " & intCountDownMinutes & " minute(s). Please save all work."
If intCountDownMinutes < 1 Then
' Shut down Access if the countdown is zero,
' saving all work by default.
Application.Quit acQuitSaveAll
End If
End If

Exit_Form_Timer:
Exit Sub

Err_Form_Timer:
Resume Next
End Sub

سيقوم هذا الكود بفحص مسار و اسم الملف open.abc كل دقيقه, و في حال عدم وجود هذا الاسم في المسار C:\My Data\open.abc

سيقوم باظهار رسالة التنبيه للمستخدم و بعدها بدقيقه سيتم حفظ جميع البيانات و سيغلق البرنامج تلقائيا

ملاحظه هامه جدا:

لكي نضمن دوام عملية الفحص يجب ان يكون النموذج frmShutDownCheck مفتوحا و مخفيا طول فترة استخدام التطبيق لذلك نقوم بما يلي:

12- انشئ مايكرو لفتح النموذج frmName و frmShutDownCheck

13- عند خاصية Window Mode للنموذج frmShutDownCheck اجعلها Hidden كما في الصوره

post-143446-091029400 1319017318_thumb.j

14- اغلق المايكرو و سميه autoexec تماما .. لكي يقوم بفتح النموذجين تلقائيا عند فتح التطبيق, الان اغلق ملف الاكسس

لتجربة ما قمت به, عدل اسم ملف open.abc و اجعله اي شئ اخر او انقله الى سطح المكتب او اي مسار اخر و راقب ما سيحدث في ملف الاكسس

ملاحظه هامه:

اسم الملف open.abc يختلف عن Open.abc او OPEN.abc او open.txt و عند الاختلاف يقوم باجراءات اغلاق التطبيق

مميزات الطريقه السابقه عن غيرها من الطرق:

1- تمنح المستخدم بعضا من الوقت لانهاء و حفظ عمله قبل الاغلاق

2- سيتم اغلاق البرنامج حتى لو كان كومبيوتر المستخدم في وضع Work Station

3- لاداعي للمطور ان يدخل علىالتطبيق و يقوم بتغيير اي شيء للاخراج المستخدمين بل يكفي فقط تغير اسم او مسار الملف الذي في مثالنا open.abc

4- لا داعي ان يكون التطبيق مصمم على طريقة Client - Server

لتجربة المف المرفق:

قم بفك الضغط و ضع الملفين في المسار C:\My Data

اخيرا ارجو ان اكون موفقا في شرحي و اتمنى ان يكون هناك اي سؤال او اضافه او مشاركه في هذا الخصوص .. و لا نتسونا من صالح الدعاء لي و لكم

الحمد لله الذي تتم بنعمه الامور

open.zip

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

3 إجابة على هذا السؤال .

  • 0

السلام عليكم

أخي إياد مشكور على هذا الجهد وجاري تجربة الطريقة المميزة التي طرحتها في هذا الموضوع.

تقبل تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا على اهتمامك .. و بانتظار رايك الكريم بعد التجربه

تقبل تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

فكرة لطيفة جدآ

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .