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

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

قام بنشر

أحبتي .... السلام عليكم ورحمة الله وبركاته :

سبق وأن طرحت مشكلتي ، واجتهد بعض الاخوان في وضع بعض الحلول ولكنها ليست جذرية وعملية في نظري ، وقد طرأت لي فكرة ولا أدري كيف أنفذها ، وهي كيف أجعل كود حسابي يحسب للسجل الأول ثم يتوقف بمعدل ثانتين أو ثلاث ثم ينتقل للسجل التالي ويحسب له ثم يتوقف ثانتين أو ثلاث وهكذا حتى ينهي كل السجلات... وبرفقه مثال للتوضيح .... وفقكم الله وبارك فيكم ....

المثال هنا!

قام بنشر

السلام عليكم

اخي الكريم المكترث

تفضل

Public Function Ap_PauseTime(IntPauseTime As Integer)
        
        Dim PauseTime, Start

        PauseTime = IntPauseTime
        Start = Timer
        Do While Timer < Start + PauseTime
        DoEvents
        Loop

End Function
للإستدعاء الدالة
Ap_PauseTime ("2")
هذا الكود يقوم بتجميد الوقت لمدة ثانيتين اذا حبيت تجمد الوقت لمدة 4 ثواني
Ap_PauseTime ("4")

ولي طلب صغير ذكرت في مشاركتك

واجتهد بعض الاخوان في وضع بعض الحلول ولكنها ليست جذرية وعملية في نظري

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

تحياتي لك

اخوك ابو نادر

قام بنشر

أخي أبو نادر وفقك الله وأجزل لك الأجر ....

بالنسبة للكود السابق ففي الحقيقة لا أعرف أين أضعه وهل يكون تحت زر أمر أم يضاف للكود الذي وضعته أنا في المثال ليقوم بعملية الحساب أم كيف ..... فأنا ممبتدء في الأكسس وخبرتي أقل من القليل .... آمل المساعدة ....

وأما بالنسبة لمساعدات الاخوان فهي على الرابط التالي :

اضغط هنا!

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

الأخ المتكرث

إذا فهمت ما تريد بالضبط فالطريقة كما يلي:

1. في حدث " عند عداد الوقت " للنموذج الرئيسي نضع الكود التالي :

 On Error Resume Next
    If Me.NewRecord Then
    DoCmd.GoToRecord , , acFirst
    Else
    DoCmd.GoToRecord , , acNext
    End If
  
2. وفي حدث " الفاصل الزمني لعداد الوقت " نضع القيمة صفر ( 0 ) 3. نضيف زرين على النموذج الأول باسم cmdStart وفي حدث " عند النقر " نكتب الكود التالي :
Me.TimerInterval = 3000
اسندنا القيمة 3000 إلى المؤقت بمعنى 3 ثواني 4. أضفنا زر ثاني اسمه cmdStop وفي حدث " عند النقر " نكتب الكود التالي :
Me.TimerInterval = 0

اسندنا القيمة صفر إلى المؤقت بمعنى 3 ثواني

الشرح :

في الكود الأول قمنا بعملية إختبار للسجلات هل هو سجل جديد

إذا كان جواب الشرط نعم True عند إذن نعود إلى أول سجل وإذا كان جواب الشرط لا False نقوم بالتنقل بين السجلات سجل تلو الأخر حتى نصل إلى سجل جديد.

وظيفة الزرين

الأول عند الضغط عليه تبدأ عملية التنقل بين السجلات بشكل آلي إلى ما لا نهاية .

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

والمثال المرفق يوضح ذلك .

أخبرنا إذا كان هذا ما تريد وإن كان خلاف ذلك أخبرنا أيضاً ولكن بتفصيل أكثر ولا تدع سؤالك حتى نصل إلى الطريقة التي تريدها بالضبط فهناك طرق كثيرة كل ما عليك إخبارنا بالنتيجة.

db1.rar

تم تعديل بواسطه مصلح الحريصي
قام بنشر (معدل)

جزاك الله خير أخي مصلح الحريصي وزادك الله علماً وعملاً صالحين ....

لقد كان هذا ما أريد وفقك الله يا أخي .... ولكن :

كيف أجعل التنقل يقف تلقائياً بعد ما يصل الى السجل الأخير... فأنا لا أريده أن يقوم بالتنقل الى مالا نهاية .... فكيف

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

أخي بارك الله فيك .. وجزاك الله خير ... نعم لقد توقف الانتقال التلقائي للسجلات عند السجل الجديد ... ولم يتوقف عند آخر سجل يحتوي على بيانات .. فلو افترضنا أن النموذج يحمل خاصية ( عدم اضافة سجلات جديده ) فكيف يمكن جعل الكود يتوقف عند آخر سجل يحتوي على بيانات .... وهذا المثال بعد التعديل الأخير وقد أضفت له عملية حسابية ليقوم بها أثناء عملية الانتقال الألي بين السجلات ليستفيد منه الاخوان ..... وكل ذلك بفضل الله ثم بفضلك يأخي مصلح وفقك الله :- ملحوظة ( أرت أن ارفق المثال هنا ولكني لم أجد ايقونة اضافة مرفقات ولا أعرف كيف اضافة مثال في هذا المنتدى )

المثال هنا... !

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