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

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

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

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

لدي اكثر من طلب

ولكن حاليا سأكتفي بطرح طلب واحد  وأفرد للطلب الثاني موضوع أخر

المطلوب تحويل ساعات العمل الى ايام

بحيث تكون مجموم كل 7 ساعات يوم عمل  لكل موظف على حده

وذلك للحقول التي يكون بها حقل تم تعويض القيمة  false

 

 

Edf.rar

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

تفضل يا سيدي الكريم :smile:

 

وضعت الكود على الحدث "بعد التحديث" الحقل "تم التعويض" ، وهذا هو الكود:

Private Sub off_AfterUpdate()
On Error GoTo err_off_AfterUpdate

    Dim rst As DAO.Recordset
    Dim x() As String
    
    
    Set rst = Me.RecordsetClone
    rst.MoveLast: rst.MoveFirst
    RC = rst.RecordCount
    
    'save the last edited record
    DoCmd.RunCommand acCmdSaveRecord
    
    For i = 1 To RC
        If rst!off = 0 Then
        
            'split the time into hours and minutes
            x = Split(rst!timeadd, ":")
        
            h = h + Val(x(0))   'add the hours
            m = m + Val(x(1))   'add the minutes
        
        End If
        
        rst.MoveNext
    Next i
    
    '1day = 7 hours = ? minutes
    d1 = 7 * 60
    
    'convert everything to minutes
    m = m + (h * 60)
    'Debug.Print "m=" & m
    
    d = Int(m / d1)
    h = Int((m - (d * 7 * 60)) / 60)
    m = m - (d * 7 * 60) - (h * 60)
    
    'Debug.Print d & vbTab & h & vbTab & m
    
    Me.Parent.d = d
    Me.Parent.h = h
    Me.Parent.m = m
    
Exit Sub
err_off_AfterUpdate:

    If Err.Number = 3021 Then
        'ignor, no records
        'Resume Next
        Exit Sub
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    
End Sub

 

جعفر

226.Edf.mdb.zip

قام بنشر

اولا

ابارك لك هذا اليوم وأسأل الله ان يعيده علينا وعليك بأتم الصحة والعافية

واحمد الله سبحانه وتعالي الذي  أكمل لنا الدين وأتم علينا النعمه  ورضي لنا الاسلام دينا

:wavetowel:

أخي جعفر

الحل ممتاز

ولكن هناك  اشكالية واحدة

أنه عندما يكون المدخل       00:25

فأنه يحسب الصفرين في خانة الساعة 12 ساعه

فيكون المجموع  اثنا عشر ساعه وخمسة وعشرون دقيقة

والمفروض أن يكون الحساب فقط  خمسة وعشرون دقيقة

امل من سعادتكم اكمال جميلك وإيجاد حل لهذه المشكلة

كل عام وأنت بخير

 

 

قام بنشر

تفضل عزيزي وهذه الخطوات :

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

> تم سحب القيمة للنموذج الرئيسي وفي مربع اليوم

ملاحظة : -  تم تعديل مصدر استعلام النموذج الرئيسي بحذف الجدول الاخر لعدم وجود الربط مما يسبب عدد السجلات الديكارتي 

            - تم ترك عدد الايام عشري لبيان عدد الايام الفعلي 

بالتوفيق

sum_time.rar

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

الله يعطيك العافية استاذ /  رمهان

ليس هذا المطلوب 

اصبح يظهر في عدد الايام رقم  غير مفهوم

حسب الصورة المرفقة

طريقة الاستاذ / جعفر هي المطلوبة تماما

فقط هناك مشكلة احتساب الصفرين  في خانة الساعه   12  ساعه  والمفروض ن يحسب الدقائق فقط

 

تم تعديل بواسطه kaser906
محاولة تعديل ارفاق الصورة
قام بنشر

الله يعطيك العافية استاذ /  رمهان

ليس هذا المطلوب 

اصبح يظهر في عدد الايام رقم  غير مفهوم

حسب الصورة المرفقة

طريقة الاستاذ / جعفر هي المطلوبة تماما

فقط هناك مشكلة احتساب الصفرين  في خانة الساعه   12  ساعه  والمفروض ن يحسب الدقائق فقط

 

حياك الله اخينا كاسر906

حسب فهمي ان المطلوب هو ان كل سبع ساعات هو يوم عمل وبشرط من ليس له اختيار في الخانة !

فقمت بجمع عدد الساعات وبنفس الشرط لمن لم يؤشر عنده وطبعا بعد جمع الدقائق وتحويلها لساعات >> هنا اصبح لدينا اجمالي الساعات > بعد كذا قسمتها على 7 لكي يظهر عدد ايام العمل !

ظهرت النتيجة لمحمد = 3.37     معناته ثلاث ايام عمل و 37 جزء من المائة يوم ولك الخيار في جبر الكسر للاعلى كرما او للاقل بخلا !

وهنا ارجو توضيح معنى رقم غير مفهوم !

بالتوفيق

 

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

وعليكم السلام أخي الكريم:smile:

وحيا الله أخوي رمهان:smile:

اولا

ابارك لك هذا اليوم وأسأل الله ان يعيده علينا وعليك بأتم الصحة والعافية

واحمد الله سبحانه وتعالي الذي  أكمل لنا الدين وأتم علينا النعمه  ورضي لنا الاسلام دينا

:wavetowel:

أخي جعفر

الحل ممتاز

ولكن هناك  اشكالية واحدة

أنه عندما يكون المدخل       00:25

فأنه يحسب الصفرين في خانة الساعة 12 ساعه

فيكون المجموع  اثنا عشر ساعه وخمسة وعشرون دقيقة

والمفروض أن يكون الحساب فقط  خمسة وعشرون دقيقة

امل من سعادتكم اكمال جميلك وإيجاد حل لهذه المشكلة

كل عام وأنت بخير

.

وانت وجميع المسلمين المتمسكين بحبل الله بخير إن شاء الله:smile:

انا لم انتبه لهذه الملاحظة:blink:

هناك عدة طرق لحل هذه الاشكالية ، ولكني أرتأيت ان احل الموضوع من اصله ، من نوع الحقل في الجدول.

نوع الحقل في الجدول هو تاريخ ، لذلك 00:25 معناه 25 دقيقة بعد منتصف الليل ، اي 12:25 ،

لذلك ، قمت بتغيير نوع الحقل في الجدول الى نص ، حيث انه يحتفظ بالمطلوب ، وبدون ان يضيف على البيانات اية معلومات اخرى (مثل12 ، و AM ، والثواني) ،

ولعمل هذا ، قمت بعمل حقل اضافي اسميته  timeadd2 ، وضبطت كل شئ على اساسه (الان يمكنك ان تحذف الحقل timeadd من الجدول).

 

والان عندما تغير من اسم/سجل الى آخر ، ستجد المجاميع محسوبة وجاهزة :smile:

وحياك الله:smile:

 

جعفر

226.Edf.mdb.zip

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

الله يعطيك العافية استاذ /  رمهان

ليس هذا المطلوب 

اصبح يظهر في عدد الايام رقم  غير مفهوم

حسب الصورة المرفقة

طريقة الاستاذ / جعفر هي المطلوبة تماما

فقط هناك مشكلة احتساب الصفرين  في خانة الساعه   12  ساعه  والمفروض ن يحسب الدقائق فقط

 

حياك الله اخينا كاسر906

حسب فهمي ان المطلوب هو ان كل سبع ساعات هو يوم عمل وبشرط من ليس له اختيار في الخانة !

فقمت بجمع عدد الساعات وبنفس الشرط لمن لم يؤشر عنده وطبعا بعد جمع الدقائق وتحويلها لساعات >> هنا اصبح لدينا اجمالي الساعات > بعد كذا قسمتها على 7 لكي يظهر عدد ايام العمل !

ظهرت النتيجة لمحمد = 3.37     معناته ثلاث ايام عمل و 37 جزء من المائة يوم ولك الخيار في جبر الكسر للاعلى كرما او للاقل بخلا !

وهنا ارجو توضيح معنى رقم غير مفهوم !

بالتوفيق

 

أشكرك أستاذ رمهان  على الايضاح

الآن فهمت معنى الرقم الذي كان رمزا  بالنسبة  على الأقل

طريقتك جدا جميلة لكن تعرف المسألة فيها حسابات

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

وباقي الساعات والدقائق سيتم ترحيلها

اشكرك مرة أخرى  وتقبل فائق تحياتي

وعليكم السلام أخي الكريم:smile:

وحيا الله أخوي رمهان:smile:

اولا

ابارك لك هذا اليوم وأسأل الله ان يعيده علينا وعليك بأتم الصحة والعافية

واحمد الله سبحانه وتعالي الذي  أكمل لنا الدين وأتم علينا النعمه  ورضي لنا الاسلام دينا

:wavetowel:

أخي جعفر

الحل ممتاز

ولكن هناك  اشكالية واحدة

أنه عندما يكون المدخل       00:25

فأنه يحسب الصفرين في خانة الساعة 12 ساعه

فيكون المجموع  اثنا عشر ساعه وخمسة وعشرون دقيقة

والمفروض أن يكون الحساب فقط  خمسة وعشرون دقيقة

امل من سعادتكم اكمال جميلك وإيجاد حل لهذه المشكلة

كل عام وأنت بخير

.

وانت وجميع المسلمين المتمسكين بحبل الله بخير إن شاء الله:smile:

انا لم انتبه لهذه الملاحظة:blink:

هناك عدة طرق لحل هذه الاشكالية ، ولكني أرتأيت ان احل الموضوع من اصله ، من نوع الحقل في الجدول.

نوع الحقل في الجدول هو تاريخ ، لذلك 00:25 معناه 25 دقيقة بعد منتصف الليل ، اي 12:25 ،

لذلك ، قمت بتغيير نوع الحقل في الجدول الى نص ، حيث انه يحتفظ بالمطلوب ، وبدون ان يضيف على البيانات اية معلومات اخرى (مثل12 ، و AM ، والثواني) ،

ولعمل هذا ، قمت بعمل حقل اضافي اسميته  timeadd2 ، وضبطت كل شئ على اساسه (الان يمكنك ان تحذف الحقل timeadd من الجدول).

 

والان عندما تغير من اسم/سجل الى آخر ، ستجد المجاميع محسوبة وجاهزة :smile:

وحياك الله:smile:

 

جعفر

226.Edf.mdb.zip

الاستاذ / جعفر شكرا لك

نعم أخي الكريم هذا هو المطلوب

الآن اريد  الانتقال الى الطلب الثاني   اذا ما كلن عندك  مانع  :rol:

اريد وضع  زر امر ف النموذج الرئيسي عند النقر عليه

يتم التأشير من خلاله  تم التعويض  عن عدد الايام  فقط

ويتم ترحيل باقي الساعات والدقائق  الى سجل جديدفي ا لجدول

او اجراء عملية حسابية

يتم خلالها ابقاء عدد الساعات والدقائق في احد السجلات الحالية

أتمنى يكون طلبي مفهوم  وما حسة راسك  :wallbash:

تقبل  شكري وتحياتي

 

قام بنشر

الله يعطيك العافية استاذ /  رمهان

ليس هذا المطلوب 

اصبح يظهر في عدد الايام رقم  غير مفهوم

حسب الصورة المرفقة

طريقة الاستاذ / جعفر هي المطلوبة تماما

فقط هناك مشكلة احتساب الصفرين  في خانة الساعه   12  ساعه  والمفروض ن يحسب الدقائق فقط

 

حياك الله اخينا كاسر906

حسب فهمي ان المطلوب هو ان كل سبع ساعات هو يوم عمل وبشرط من ليس له اختيار في الخانة !

فقمت بجمع عدد الساعات وبنفس الشرط لمن لم يؤشر عنده وطبعا بعد جمع الدقائق وتحويلها لساعات >> هنا اصبح لدينا اجمالي الساعات > بعد كذا قسمتها على 7 لكي يظهر عدد ايام العمل !

ظهرت النتيجة لمحمد = 3.37     معناته ثلاث ايام عمل و 37 جزء من المائة يوم ولك الخيار في جبر الكسر للاعلى كرما او للاقل بخلا !

وهنا ارجو توضيح معنى رقم غير مفهوم !

بالتوفيق

 

أشكرك أستاذ رمهان  على الايضاح

الآن فهمت معنى الرقم الذي كان رمزا  بالنسبة  على الأقل

طريقتك جدا جميلة لكن تعرف المسألة فيها حسابات

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

وباقي الساعات والدقائق سيتم ترحيلها

اشكرك مرة أخرى  وتقبل فائق تحياتي

حياك الله اخي كاسر واثراء للموضوع مع اخي الحبيب الاستاذ جعفر

الآن فهم المطلوب انك تريد الاجمالي بالايام والساعات والدقائق ! وهي واضحة من تصميم النموذج ولكن ركزت على حساب عدد الايام حسب نص المشاركة الاولى ! وهنا لي عودة ان لم توافقني الراي التالي:

مارايك ان تترك عدد الايام يحتوي على عدد عشري يمثل عدد الايام كنسبة >> وهنا مثلا لو سعر عمل اليوم للموظف محمد 500 راح تكون قيمة اليوم 500X3.37 = 1685  وهذا يغنيك عن عمليات الترحيل ! 

تحياتي للجميع

 

 

 

قام بنشر

الله يعطيك العافية استاذ /  رمهان

ليس هذا المطلوب 

اصبح يظهر في عدد الايام رقم  غير مفهوم

حسب الصورة المرفقة

طريقة الاستاذ / جعفر هي المطلوبة تماما

فقط هناك مشكلة احتساب الصفرين  في خانة الساعه   12  ساعه  والمفروض ن يحسب الدقائق فقط

 

حياك الله اخينا كاسر906

حسب فهمي ان المطلوب هو ان كل سبع ساعات هو يوم عمل وبشرط من ليس له اختيار في الخانة !

فقمت بجمع عدد الساعات وبنفس الشرط لمن لم يؤشر عنده وطبعا بعد جمع الدقائق وتحويلها لساعات >> هنا اصبح لدينا اجمالي الساعات > بعد كذا قسمتها على 7 لكي يظهر عدد ايام العمل !

ظهرت النتيجة لمحمد = 3.37     معناته ثلاث ايام عمل و 37 جزء من المائة يوم ولك الخيار في جبر الكسر للاعلى كرما او للاقل بخلا !

وهنا ارجو توضيح معنى رقم غير مفهوم !

بالتوفيق

 

أشكرك أستاذ رمهان  على الايضاح

الآن فهمت معنى الرقم الذي كان رمزا  بالنسبة  على الأقل

طريقتك جدا جميلة لكن تعرف المسألة فيها حسابات

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

وباقي الساعات والدقائق سيتم ترحيلها

اشكرك مرة أخرى  وتقبل فائق تحياتي

حياك الله اخي كاسر واثراء للموضوع مع اخي الحبيب الاستاذ جعفر

الآن فهم المطلوب انك تريد الاجمالي بالايام والساعات والدقائق ! وهي واضحة من تصميم النموذج ولكن ركزت على حساب عدد الايام حسب نص المشاركة الاولى ! وهنا لي عودة ان لم توافقني الراي التالي:

مارايك ان تترك عدد الايام يحتوي على عدد عشري يمثل عدد الايام كنسبة >> وهنا مثلا لو سعر عمل اليوم للموظف محمد 500 راح تكون قيمة اليوم 500X3.37 = 1685  وهذا يغنيك عن عمليات الترحيل ! 

تحياتي للجميع

 

 

 

الله يعطيك العافية استاذ /  رمهان

ليس هذا المطلوب 

اصبح يظهر في عدد الايام رقم  غير مفهوم

حسب الصورة المرفقة

طريقة الاستاذ / جعفر هي المطلوبة تماما

فقط هناك مشكلة احتساب الصفرين  في خانة الساعه   12  ساعه  والمفروض ن يحسب الدقائق فقط

 

حياك الله اخينا كاسر906

حسب فهمي ان المطلوب هو ان كل سبع ساعات هو يوم عمل وبشرط من ليس له اختيار في الخانة !

فقمت بجمع عدد الساعات وبنفس الشرط لمن لم يؤشر عنده وطبعا بعد جمع الدقائق وتحويلها لساعات >> هنا اصبح لدينا اجمالي الساعات > بعد كذا قسمتها على 7 لكي يظهر عدد ايام العمل !

ظهرت النتيجة لمحمد = 3.37     معناته ثلاث ايام عمل و 37 جزء من المائة يوم ولك الخيار في جبر الكسر للاعلى كرما او للاقل بخلا !

وهنا ارجو توضيح معنى رقم غير مفهوم !

بالتوفيق

 

الله يعطيك العافية استاذ /  رمهان

ليس هذا المطلوب 

اصبح يظهر في عدد الايام رقم  غير مفهوم

حسب الصورة المرفقة

طريقة الاستاذ / جعفر هي المطلوبة تماما

فقط هناك مشكلة احتساب الصفرين  في خانة الساعه   12  ساعه  والمفروض ن يحسب الدقائق فقط

 

حياك الله اخينا كاسر906

حسب فهمي ان المطلوب هو ان كل سبع ساعات هو يوم عمل وبشرط من ليس له اختيار في الخانة !

فقمت بجمع عدد الساعات وبنفس الشرط لمن لم يؤشر عنده وطبعا بعد جمع الدقائق وتحويلها لساعات >> هنا اصبح لدينا اجمالي الساعات > بعد كذا قسمتها على 7 لكي يظهر عدد ايام العمل !

ظهرت النتيجة لمحمد = 3.37     معناته ثلاث ايام عمل و 37 جزء من المائة يوم ولك الخيار في جبر الكسر للاعلى كرما او للاقل بخلا !

وهنا ارجو توضيح معنى رقم غير مفهوم !

بالتوفيق

 

أشكرك أستاذ رمهان  على الايضاح

الآن فهمت معنى الرقم الذي كان رمزا  بالنسبة  على الأقل

طريقتك جدا جميلة لكن تعرف المسألة فيها حسابات

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

وباقي الساعات والدقائق سيتم ترحيلها

اشكرك مرة أخرى  وتقبل فائق تحياتي

حياك الله اخي كاسر واثراء للموضوع مع اخي الحبيب الاستاذ جعفر

الآن فهم المطلوب انك تريد الاجمالي بالايام والساعات والدقائق ! وهي واضحة من تصميم النموذج ولكن ركزت على حساب عدد الايام حسب نص المشاركة الاولى ! وهنا لي عودة ان لم توافقني الراي التالي:

مارايك ان تترك عدد الايام يحتوي على عدد عشري يمثل عدد الايام كنسبة >> وهنا مثلا لو سعر عمل اليوم للموظف محمد 500 راح تكون قيمة اليوم 500X3.37 = 1685  وهذا يغنيك عن عمليات الترحيل ! 

تحياتي للجميع

 

 

 

 

حياك الله اخي كاسر واثراء للموضوع مع اخي الحبيب الاستاذ جعفر

الآن فهم المطلوب انك تريد الاجمالي بالايام والساعات والدقائق ! وهي واضحة من تصميم النموذج ولكن ركزت على حساب عدد الايام حسب نص المشاركة الاولى ! وهنا لي عودة ان لم توافقني الراي التالي:

مارايك ان تترك عدد الايام يحتوي على عدد عشري يمثل عدد الايام كنسبة >> وهنا مثلا لو سعر عمل اليوم للموظف محمد 500 راح تكون قيمة اليوم 500X3.37 = 1685  وهذا يغنيك عن عمليات الترحيل ! 

تحياتي للجميع

 

 

 

استاذي الكريم رمهان 

من المحتمل ان يكون التعويض عن ايام العمل بايام اجازة

وليس تعويض مادي

وهذا السبب الذي  تجعلني اطلب ترحيل باقي الساعات والدقائق

تقبل فائق احترامي

قام بنشر

وعليكم السلام :smile:

 

طيب ، اللي فهمته هو:

  1. عمل زر على النموذج الرئيسي ، يأشر "تم التعويض" للسجلات اللي مافيها "تم التعويض" ،
  2. عمل سجل جديد بتاريخ اليوم ، فيه المتبقى من الساعات والدقائق.

سؤالي:

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

 

جعفر

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

تفضل تعديلا واثراءاً

بالتوفيق

sum_time.rar

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

وعليكم السلام :smile:

 

طيب ، اللي فهمته هو:

  1. عمل زر على النموذج الرئيسي ، يأشر "تم التعويض" للسجلات اللي مافيها "تم التعويض" ،
  2. عمل سجل جديد بتاريخ اليوم ، فيه المتبقى من الساعات والدقائق.

سؤالي:

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

 استاذي  جعفر

لن يتم فتح تقرير إنما سيتم فتح نموذج يأخذ رقم الموظف

وعدد الأيام لتضاف هذه الايام الى رصيد اجازاته

في جدول أخر

قام بنشر منذ 8 دقائق (معدل) · ارسل تقرير عن المشاركه

تفضل تعديلا واثراءاً

بالتوفييق

 

 

اسناذي رمهان بالنسبة لطريقتك مازال بها مشكلة

لو تلاحظ معي السجل الأول تم ازالة التأشير عن جميع

االخانات ولا زال يعطي نتيجة  غير  صحيحه

حسب ما هو واضح بالصورة

150984392.jpg

 

 

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

تفضل أخي الكريم :smile:

رجاء متابعة الكود ، للزر "ترحيل الايام" :

  1. رسالة التاكد على انك بالفعل تريد المواصلة ،
  2. إضافة اليوم الى الجدول tbl_Available_Days (هذا شئ مؤقت ، الى ان تستخدم انت اسم جدولك) ،
  3. تغيير "تم التعويض" الى صح ،
  4. عمل سجل جديد وادخال الساعات والدقائق المتبقية اليه ، وسيكون آخر سجل في القائمة :smile:
Private Sub cmd_Append_Click()

'1
'التأكيد على مواصلة العمل
    Dim Msg, Style, Title, Response

    Msg = "هل انت متأكد من المواصلة" & vbCrLf & _
          "Are you sure you want to continue ?"    ' Define message.
    Style = vbYesNo + vbCritical + vbDefaultButton2    ' Define buttons.
    Title = "رجاء التأكيد"    ' Define title.

    Response = MsgBox(Msg, Style, Title)
    If Response = vbNo Then    ' User chose Yes.
        Exit Sub
    End If


'Ok, lets start

    Dim rst As DAO.Recordset

'2
'add the Days to tbl_Available_Days
    'only append if we have days
    If Val(Me.d) > 0 Then
    
        Set rst = CurrentDb.OpenRecordset("Select * From tbl_Available_Days")
        rst.AddNew
            rst!Available_Days = Val(d)
            rst!Pcdigit = Me.Pcdigit
            rst!iDate = Now
        rst.Update
    
    End If
    
    
'3

    h1 = Me.h
    m1 = Me.m
    
'set off to -1
    Set rst = Me.tlb_taq_Sub.Form.RecordsetClone
    rst.MoveLast: rst.MoveFirst
    RC = rst.RecordCount
        
    For i = 1 To RC
        If rst!off = 0 Then
            rst.Edit
                rst!off = -1
            rst.Update
        End If
        rst.MoveNext
    Next i
    
    
'4    
'make a new Record, and copy h:m to it
    
    'only append if h or m are not Zero
    If Val(h1) > 0 Or Val(m1) > 0 Then
    
        rst.AddNew
            rst!Pcdigit = Me.Pcdigit
            rst!Tdate = Date
            rst!off = 0
            rst!timeadd2 = h1 & ":" & m1
        rst.Update
    
    End If
    
    
    'refresh the totals
    Form_tlb_taq_Sub.off_AfterUpdate
    
    
Exit Sub
err_off_AfterUpdate:

    If Err.Number = 3021 Then
        'ignor, no records
        'Resume Next
        Exit Sub
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    

End Sub

 

جعفر

226.Edf.mdb.zip

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

وين اخوي جعفر ! انا لسا بفحط في الشق الاول من السؤال ! وانت ما شاء الله في الشق الثاني :wink2:

وحاب اوضح شي مهم : مانرفعه من ردود اعتبره ارشيف لي ارجع له وقت الحاجه خاصة اذا فكرته وليدة اللحظة ! وهنا عصافير بحجر واحد فالفائدة للكل !

تحياتي لكم:fff:

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

في الحقيقة  لا اعلم ماذا اقول

يكفي أنه تم إثراء الموضوع من استاذيين كبيرين

احتاج الى التدقيق والتمعن في المثالين

لي عودة إلى الموضوع إن شاء الله

قام بنشر

معليش هذا الملف المقصود والذي يختص بالشق الاول من الموضوع >> جمع الوقت كايام وساعات ودقائق ! تم رفع الملف السابق بالخطأ

والشق الثاني جاري التنفيذ !

 

 

sum_time.rar

قام بنشر

هذا الترحيل .. عليك الانتقال سجل سجل للموظفين والضغط على ترحيل كل موظف على حدة !

وان اردت الكل مرة واحدة >> عد وسنعود !!

بالتوفيق

sum_time.rar

قام بنشر

هذا الترحيل .. عليك الانتقال سجل سجل للموظفين والضغط على ترحيل كل موظف على حدة !

وان اردت الكل مرة واحدة >> عد وسنعود !!

بالتوفيق

sum_time.rar

طريقة ممتازة وأمل منك التكرم بأضافة اقتراحك

انشاء زر أمر أخر لترحيل الارصدة لكل الموظفين  

تفضل أخي الكريم :smile:

رجاء متابعة الكود ، للزر "ترحيل الايام" :

  1. رسالة التاكد على انك بالفعل تريد المواصلة ،
  2. إضافة اليوم الى الجدول tbl_Available_Days (هذا شئ مؤقت ، الى ان تستخدم انت اسم جدولك) ،
  3. تغيير "تم التعويض" الى صح ،
  4. عمل سجل جديد وادخال الساعات والدقائق المتبقية اليه ، وسيكون آخر سجل في القائمة :smile:
Private Sub cmd_Append_Click()

'1
'التأكيد على مواصلة العمل
    Dim Msg, Style, Title, Response

    Msg = "هل انت متأكد من المواصلة" & vbCrLf & _
          "Are you sure you want to continue ?"    ' Define message.
    Style = vbYesNo + vbCritical + vbDefaultButton2    ' Define buttons.
    Title = "رجاء التأكيد"    ' Define title.

    Response = MsgBox(Msg, Style, Title)
    If Response = vbNo Then    ' User chose Yes.
        Exit Sub
    End If


'Ok, lets start

    Dim rst As DAO.Recordset

'2
'add the Days to tbl_Available_Days
    'only append if we have days
    If Val(Me.d) > 0 Then
    
        Set rst = CurrentDb.OpenRecordset("Select * From tbl_Available_Days")
        rst.AddNew
            rst!Available_Days = Val(d)
            rst!Pcdigit = Me.Pcdigit
            rst!iDate = Now
        rst.Update
    
    End If
    
    
'3

    h1 = Me.h
    m1 = Me.m
    
'set off to -1
    Set rst = Me.tlb_taq_Sub.Form.RecordsetClone
    rst.MoveLast: rst.MoveFirst
    RC = rst.RecordCount
        
    For i = 1 To RC
        If rst!off = 0 Then
            rst.Edit
                rst!off = -1
            rst.Update
        End If
        rst.MoveNext
    Next i
    
    
'4    
'make a new Record, and copy h:m to it
    
    'only append if h or m are not Zero
    If Val(h1) > 0 Or Val(m1) > 0 Then
    
        rst.AddNew
            rst!Pcdigit = Me.Pcdigit
            rst!Tdate = Date
            rst!off = 0
            rst!timeadd2 = h1 & ":" & m1
        rst.Update
    
    End If
    
    
    'refresh the totals
    Form_tlb_taq_Sub.off_AfterUpdate
    
    
Exit Sub
err_off_AfterUpdate:

    If Err.Number = 3021 Then
        'ignor, no records
        'Resume Next
        Exit Sub
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    

End Sub

 

جعفر

226.Edf.mdb.zip

ايضا استاذي الكريم جعفر أمل اضافة زر أمر  أخر

لترحيل الايام لجميع الموظفين دفعة واحدة

 

اشكركم اساتذتي على تفاعلكم وتعاونكم مع الموضوع

قام بنشر

ايضا استاذي الكريم جعفر أمل اضافة زر أمر  أخر

لترحيل الايام لجميع الموظفين دفعة واحدة

هي والله ، تفضل :smile:

بس عملتها بالطريقة السهلة (مب الطريقة الافضل) :blink:

 

جعفر

226.Edf.mdb.zip

قام بنشر

هذا الترحيل .. عليك الانتقال سجل سجل للموظفين والضغط على ترحيل كل موظف على حدة !

وان اردت الكل مرة واحدة >> عد وسنعود !!

بالتوفيق

sum_time.rar

طريقة ممتازة وأمل منك التكرم بأضافة اقتراحك

انشاء زر أمر أخر لترحيل الارصدة لكل الموظفين  

تفضل 

Private Sub أمر22_Click()
DoCmd.SetWarnings False
On Error GoTo 10
Set rs = Me.RecordsetClone: rs.MoveFirst
Do While Not rs.EOF
xmin = CurrentDb.OpenRecordset("select sum(hour(timeadd)*60)+sum(minute(timeadd)) from tlb_taq where [off]=0 and pcdigit=" & rs!Pcdigit)(0)
If xmin > 0 Then
DoCmd.RunSQL "update tlb_taq set [off]=-1 where [off]=0 and pcdigit=" & rs!Pcdigit
DoCmd.RunSQL "insert into tlb_taq(Pcdigit,timeadd) values(" & rs!Pcdigit & ",#" & xmin \ 60 Mod 7 & ":" & xmin Mod 60 & "#)"
End If
rs.MoveNext
Loop
10: DoCmd.SetWarnings True
End Sub

بالتوفيق

sum_time.rar

قام بنشر

ايضا استاذي الكريم جعفر أمل اضافة زر أمر  أخر

لترحيل الايام لجميع الموظفين دفعة واحدة

 

هي والله ، تفضل :smile:

بس عملتها بالطريقة السهلة (مب الطريقة الافضل) :blink:

 

جعفر

226.Edf.mdb.zip

ممتاز أخي الكريم جعفر

ولي طلب :wink2: أخر هل يمكن استخراج اول تاريخ واخر تاريخ واضافتها الى الدجدول

الذي ترحل اليه الايام بدلا من تسجيل تاريخ اليوم الحالي

مثلا لنقول الساعات

مسجل من تاريخ  

1436/11/1

1436/11/2

1436/11/3

1436/11/4

1436/11/5

1436/12/6

1436/12/7

1436/12/8

لنضع حقلين بأسم 

للفترة من            1436/11/1           الى  1436/12/8

تقبل تحياتي

هذا الترحيل .. عليك الانتقال سجل سجل للموظفين والضغط على ترحيل كل موظف على حدة !

وان اردت الكل مرة واحدة >> عد وسنعود !!

بالتوفيق

sum_time.rar

طريقة ممتازة وأمل منك التكرم بأضافة اقتراحك

انشاء زر أمر أخر لترحيل الارصدة لكل الموظفين  

تفضل 

Private Sub أمر22_Click()
DoCmd.SetWarnings False
On Error GoTo 10
Set rs = Me.RecordsetClone: rs.MoveFirst
Do While Not rs.EOF
xmin = CurrentDb.OpenRecordset("select sum(hour(timeadd)*60)+sum(minute(timeadd)) from tlb_taq where [off]=0 and pcdigit=" & rs!Pcdigit)(0)
If xmin > 0 Then
DoCmd.RunSQL "update tlb_taq set [off]=-1 where [off]=0 and pcdigit=" & rs!Pcdigit
DoCmd.RunSQL "insert into tlb_taq(Pcdigit,timeadd) values(" & rs!Pcdigit & ",#" & xmin \ 60 Mod 7 & ":" & xmin Mod 60 & "#)"
End If
rs.MoveNext
Loop
10: DoCmd.SetWarnings True
End Sub

بالتوفيق

sum_time.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