اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

اغلاق البرنامج بعد فترة من عدم الاستخدام عند فتح التقرير في وضع المعاينة قبل الطباعة


alsihran

الردود الموصى بها

السلام عليكم 

مطلو ب كود لاغلاق التقرير بعد فترة من فتحه في وضع معاينة التقرير قبل الطباعه

عندعدم  استخدام البرناج 

وجدت اكواد لاغلاق النماذج ولم تنفع مع التقرير 

تم تعديل بواسطه alsihran
رابط هذا التعليق
شارك

انشئ Module جديد

و الصق الشفرة التالية فيه

Option Explicit

Public Function StartTimer(NumberOfSeconds As Variant, ReportName As String)
On Error Resume Next
Dim PauseTime, Start, Finish, TotalTime
    PauseTime = NumberOfSeconds
    Start = Timer
    Do While Timer < Start + PauseTime
        DoEvents
    Loop
    Finish = Timer
    TotalTime = Finish - Start
    DoCmd.Close acReport, ReportName, acSaveYes

End Function

في ازرار فتح التقرير و بعد أمر فتح التقرير اعطي الأمر لتشغيل التايمر / المؤقت

بعد اعطائه عدد الثواني و اسم التقرير

StartTimer(«NumberOfSeconds»; «ReportName») 

 

مرفق التعديل

 

tbl.accdb

  • Like 4
  • Thanks 1
رابط هذا التعليق
شارك

يعطيك العافية 

وصلنا للمطلوب 

حاب اعرض علك هذا المثال 

وهو عبارة عن نموذج DetectIdelTime

تم فتحه ف الوضع المخفي 

وعند فتح ا نموذج وترك البرنامج بدون العمل عله غلق البرنامج بالكامل 

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

هل يمكنك تعديل المثال ليعمل مع النماذج والتقارير سويا 

qit.accdb

رابط هذا التعليق
شارك

يبدو اني لم اوضح المطلوب 

اللي اريده يبقى الامر كما هو 

لو تلاحظ الكود تم تعريفه للنماذج فقط انا ابيه يشمل النماذج والتقارير 

Static OldcontrolName As String
Static OldFormName As String
Static ExpiredTime As String

Dim ActivecontrolName As String
Dim ActiveFormName As String
Dim ExpiredMinutes As String

'<<<<< ÇÈæ äÇÏÑ >>>>>

On Error Resume Next

ActivecontrolName = Screen.ActiveControl.Name
ActiveFormName = Screen.ActiveForm.Name
Me.txtActiveForm = ActiveFormName

If (OldcontrolName = "") Or (OldFormName = "") _
Or (ActiveFormName <> OldFormName) _
Or (ActivecontrolName <> OldcontrolName) Then
   OldcontrolName = ActivecontrolName
   OldFormName = ActiveFormName

 

رابط هذا التعليق
شارك

اخي الكريم اعتقد مداخلتك في هذا الموضع ليست في محلها 

لان المجيب على السؤال سيعتقد ان المطلوب قد اكتمل 

في حين ان الموضوع مازال له جزئيه مطلوبه

عموما

مازلت اطرح السؤال على الاستاذ 

إن كان بالامكان تحقيق المطلوب في جزئيته الاخيرة 

  • Like 1
رابط هذا التعليق
شارك

نفس الحال اخي الكريم

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

تستطيع اضافة ما  تريده عند انتهاء الوقت 

لكن لا علاقة له بأساس الموضوع 

Static OldcontrolName As String
Static OldFormName As String
Static ExpiredTime As String

Dim ActivecontrolName As String
Dim ActiveFormName As String
Dim ExpiredMinutes As String

'<<<<< ابو نادر >>>>>

On Error Resume Next

ActivecontrolName = Screen.ActiveControl.Name
ActiveFormName = Screen.ActiveForm.Name
Me.txtActiveForm = ActiveFormName

If (OldcontrolName = "") Or (OldFormName = "") _
Or (ActiveFormName <> OldFormName) _
Or (ActivecontrolName <> OldcontrolName) Then
   OldcontrolName = ActivecontrolName
   OldFormName = ActiveFormName
   ExpiredTime = 0
   
Else
   ExpiredTime = ExpiredTime + Me.TimerInterval
End If
   'ExpiredMinutes = (ExpiredTime \ 1000) \ 60     'للدقائق
   ExpiredMinutes = (ExpiredTime \ 1000)       'للثاوني
   Me.txtIdelTime = ExpiredMinutes
   
If ExpiredMinutes >= 50 Then  'لتفيير الوقت
   ExpiredTime = 0
   Application.quit acQuitSaveAll ' <<<<<<<<<<<<<<<<<<<<<  هذا الأمر يقوم بإنهاء الأكسس بالكامل تستطيع استبداله >>>>>>>>>>>>>>>>>>>>>>>>>>
'Call AllForms
'DoCmd.OpenForm "frm-UserLogon"
End If

 

  • Like 1
رابط هذا التعليق
شارك

13 دقائق مضت, د.كاف يار said:

كن لا علاقة له بأساس الموضوع 

صحيح استاذ وانا اعتذر عن ذلك 

14 دقائق مضت, د.كاف يار said:

تستطيع اضافة ما  تريده عند انتهاء الوقت

مع الاسف لا يتعامل مع التقارير فقط يقوم بالتعامل مع النماذج 

اذا فتحت التقرير لايتم تشغيل التايمر 

رابط هذا التعليق
شارك

21 ساعات مضت, د.كاف يار said:

انشئ Module جديد

و الصق الشفرة التالية فيه

Option Explicit

Public Function StartTimer(NumberOfSeconds As Variant, ReportName As String)
On Error Resume Next
Dim PauseTime, Start, Finish, TotalTime
    PauseTime = NumberOfSeconds
    Start = Timer
    Do While Timer < Start + PauseTime
        DoEvents
    Loop
    Finish = Timer
    TotalTime = Finish - Start
    DoCmd.Close acReport, ReportName, acSaveYes

End Function

في ازرار فتح التقرير و بعد أمر فتح التقرير اعطي الأمر لتشغيل التايمر / المؤقت

بعد اعطائه عدد الثواني و اسم التقرير

StartTimer(«NumberOfSeconds»; «ReportName») 

 

مرفق التعديل

 

tbl.accdb 484 kB · 9 downloads

استخدم هذا 

منذ ساعه, alsihran said:

صحيح استاذ وانا اعتذر عن ذلك 

مع الاسف لا يتعامل مع التقارير فقط يقوم بالتعامل مع النماذج 

اذا فتحت التقرير لايتم تشغيل التايمر 

 

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information