اذهب الي المحتوي
أوفيسنا

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

قام بنشر (معدل)

السلام عليكم 

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

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

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

تم تعديل بواسطه 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.accdbFetching info...

  • Like 4
  • Thanks 1
قام بنشر

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

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

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

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

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

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

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

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

qit.accdbFetching info...

قام بنشر

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

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

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

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
قام بنشر
  في 9‏/9‏/2021 at 09:24, د.كاف يار said:

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

Expand  

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

  في 9‏/9‏/2021 at 09:24, د.كاف يار said:

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

Expand  

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

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

قام بنشر
  في 8‏/9‏/2021 at 13:18, د.كاف يار 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

Expand  

استخدم هذا 

  في 9‏/9‏/2021 at 09:40, alsihran said:

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

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

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

Expand  

 

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