الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه اياد دهشان في 19 أكتوبر 2011 · 3 رد · 2,116 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

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

الهدف:

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

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

قيام التطبيق بفحص وجود ملف خارج ال 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

المرفقات
1.JPG2.JPG
2
#2

السلام عليكم

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

تقبل تحياتي

من مواضيعي

برنامج للكفالات والأقساط

برنامج لإدارة مؤسسة نقل الطالبات

بـــــرنامج الصراف الآلي

_______________________

سبحان الله وبحمده سبحان الله العظيم

#4

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

من مواضيعي

دوال التاريخ والوقت الجديدة المضافة في نسخة السيكوال سيرفر 2012

درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index

Microsoft Certified Trainer SQL Server Data Base Development & Administrator

Microsoft Certified IT Professional SQL Server Data Base Development & Administrator

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…