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

طلب داله حسابيه للاضافى


عمر ضاحى
إذهب إلى أفضل إجابة Solved by jjafferr,

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

السلام عليكم 

بعد اذن حضرتكم 

كنت عاوز صيغة لدالة حسابيه للوقت الاضافى 

عندي مربع نص به وقت الدوام (اخر الوقت) (الافتراضى)

عندي مربع نص به وقت الدوام (اخر الوقت) (الفعلى)

عندي مربع نص به تاريخ اليوم 

اريد ان اعمل دالة حسابيه 

احسب الفرق بين (Innn) و (txtTimeOut)  واضع شرطين هنا

الشرط الاول اذا كان تاريخ اليوم هو يوم الخميس 

الشرط الثاني اذا كان تاريخ اليوم هو يوم الجمعه

علما ان اى اعمال تتم يوم الجمعه هو وقت اضافى

مرفق ملف للتوضيح

وبرجاء اذا فشلت فى توضيح ما اريد اسألوني فى النقطه المبهمه ولكم جزيل الشكر

 

OT.accdb

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

43 دقائق مضت, Eng.Qassim said:

تفضل استاذ عمر.. حاول ان تغير التاريخ الى يوم الخميس والجمعة

 

OT.accdb 640 kB · 0 downloads

استاذي المهندس قاسم بارك الله فيك وامد الله فى عمرك وعافيتك 

لك مني كل الشكر والعرفان 

ولى ملاحظه بعد اذن حضرتك

يوم الجمعه يحسب كله كيوم اضافى اى لو عملت من الساعه السابعه صباحا حتى التاسعه صباحا يحسب لى 2 ساعه اضافى وهكذا حسب عدد ساعات العمل يوم الجمعه 

اعتقد انها هنا يحسب فترة العمل كانها اضافى صحيح !

هذا الترجمه الصحيحه للنقطه دي

Atvw6cS.png

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

5 دقائق مضت, Eng.Qassim said:

لماذا ظهر لك بالسالب؟

هذا عندي

الظاهر انك غيرت بالكود..بصراحة انا عملت الكود حسب فهمي للدوام

 

 

Add.PNG

والله ما ادري ^_^

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

الان, عمر ضاحى said:

والله ما ادري ^_^

😂

طيب قارن هذا الكود بالموجود عندك

Me.day1.SetFocus
If Me.day1.Text = "الخميس" Then
    Me.txtOT = DateDiff("n", [txtStanderTimeOut2], [txtDwamOut]) \ 60 & ":" & DateDiff("n", [txtStanderTimeOut2], [txtDwamOut]) Mod 60
ElseIf Me.day1.Text = "الجمعة" Then
    Me.txtOT = DateDiff("n", [txtDwamIn], [txtDwamOut]) \ 60 & ":" & DateDiff("n", [txtDwamIn], [txtDwamOut]) Mod 60

Else
   Me.txtOT = DateDiff("n", [txtStanderTimeOut1], [txtDwamOut]) \ 60 & ":" & DateDiff("n", [txtStanderTimeOut1], [txtDwamOut]) Mod 60
End If

او غير اسم الخميس والجمعة للانكليزي

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

45 دقائق مضت, Eng.Qassim said:

😂

طيب قارن هذا الكود بالموجود عندك

Me.day1.SetFocus
If Me.day1.Text = "الخميس" Then
    Me.txtOT = DateDiff("n", [txtStanderTimeOut2], [txtDwamOut]) \ 60 & ":" & DateDiff("n", [txtStanderTimeOut2], [txtDwamOut]) Mod 60
ElseIf Me.day1.Text = "الجمعة" Then
    Me.txtOT = DateDiff("n", [txtDwamIn], [txtDwamOut]) \ 60 & ":" & DateDiff("n", [txtDwamIn], [txtDwamOut]) Mod 60

Else
   Me.txtOT = DateDiff("n", [txtStanderTimeOut1], [txtDwamOut]) \ 60 & ":" & DateDiff("n", [txtStanderTimeOut1], [txtDwamOut]) Mod 60
End If

او غير اسم الخميس والجمعة للانكليزي

نفس الكود 

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

الان, عمر ضاحى said:

نفس الكود 

طيب غير اسماء الخميس والجمعة للانكليزي

If Me.day1.Text = "Thursday" Then
    Me.txtOT = DateDiff("n", [txtStanderTimeOut2], [txtDwamOut]) \ 60 & ":" & DateDiff("n", [txtStanderTimeOut2], [txtDwamOut]) Mod 60
ElseIf Me.day1.Text = "Friday" Then

 

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

18 دقائق مضت, Eng.Qassim said:

طيب غير اسماء الخميس والجمعة للانكليزي

If Me.day1.Text = "Thursday" Then
    Me.txtOT = DateDiff("n", [txtStanderTimeOut2], [txtDwamOut]) \ 60 & ":" & DateDiff("n", [txtStanderTimeOut2], [txtDwamOut]) Mod 60
ElseIf Me.day1.Text = "Friday" Then

 

طيب ايه رايك لو اضفنا دالة OR 

بحيث اذا جاء الخميس عربي او انجليزي مختصر او كامل كله يكون موجود ؟

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

هى فعلا اشتغلت لما حولتها انجليزي

بس الاجهزة كلها مش زي بعض 
فى بعض الاجهزي عندي مفهاش اللغه العربيه خالص 

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

Me.day1.SetFocus
If (Me.day1.Text) = "Thursday" Or (Me.day1.Text) = "الخميس" Then
    Me.txtOT = DateDiff("n", [txtStanderTimeOut2], [txtDwamOut]) \ 60 & ":" & DateDiff("n", [txtStanderTimeOut2], [txtDwamOut]) Mod 60
ElseIf (Me.day1.Text) = "Friday" Or (Me.day1.Text) = "الجمعة" Then
    Me.txtOT = DateDiff("n", [txtDwamIn], [txtDwamOut]) \ 60 & ":" & DateDiff("n", [txtDwamIn], [txtDwamOut]) Mod 60

Else
   Me.txtOT = DateDiff("n", [txtStanderTimeOut1], [txtDwamOut]) \ 60 & ":" & DateDiff("n", [txtStanderTimeOut1], [txtDwamOut]) Mod 60
End If

بعد اذن حضرتك طبعا انا حبيت اعدل واشوف اذا كان كده صح

لو التسميه عند حضرتك عربي جربها شوف هتشتغل بالتركيبه دي 

 

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

الان, عمر ضاحى said:

لو التسميه عند حضرتك عربي جربها شوف هتشتغل بالتركيبه دي

بتعطيني خطأ ... لكن لما جربت الكود التالي اشتغل صحيح

If Me.day1.Text = "Thursday" Or Me.day1.Text = "الخميس" Then

 

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

هناك مشكلة اخرى ايضا 

لما حبيت انقل الكود للبرنامج الرئيسي

ظهرلى ده

UvCQZTH.png

الان, Eng.Qassim said:

بتعطيني خطأ ... لكن لما جربت الكود التالي اشتغل صحيح

If Me.day1.Text = "Thursday" Or Me.day1.Text = "الخميس" Then

 

تمام انا باشيل الاقواس

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

انا جربت انى اضيف متغير علشان يعمل العمليه الحسابيه على كل سجل لحاله 

بهذه الطريقه 

On Error GoTo Errw
Dim i As Integer
DoCmd.GoToRecord , , acFirst
 For i = 1 To Me.Recordset.RecordCount
Me.day1.SetFocus
If (Me.day1.Text) = "Thursday" Or (Me.day1.Text) = "الخميس" Then
    Me.txtOT = DateDiff("n", [txtStanderTimeOut2], [txtTimeOut]) \ 60 & ":" & DateDiff("n", [txtStanderTimeOut2], [txtTimeOut]) Mod 60
ElseIf (Me.day1.Text) = "Friday" Or (Me.day1.Text) = "الجمعة" Then
    Me.txtOT = DateDiff("n", [txtTimeIn], [txtTimeOut]) \ 60 & ":" & DateDiff("n", [txtTimeIn], [txtTimeOut]) Mod 60

Else
   Me.txtOT = DateDiff("n", [txtStanderTimeOut1], [txtTimeOut]) \ 60 & ":" & DateDiff("n", [txtStanderTimeOut1], [txtTimeOut]) Mod 60
End If
DoCmd.GoToRecord , , acNext
GoTo nxfor
nxfor:
    Next i
Exit Sub
Errw:

لكني لم اوفق فى هذا 

ف انا شايف ان لو قدرنا نحول الكود من VBA الى دالة حسابيه اعتقد ممكن يشتغل دون مشاكل 

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

5 دقائق مضت, Eng.Qassim said:

استاذ عمر .. ممكن تبعتلي البرنامج الرئيسي ؟

بس مش اواعدك اليوم .. لاني ح نام لان بكرى عندي دوام

انا حابب اكمل المشروع مع حضرتك

ابشر 
سوف اقوم بحذف الداتا المهمه واضيف اى بيانات اخرى 

انا كده كده كنت عاوز انشر المشروع بعد ما انتهي من البرمجه ليه ومن ثم التنسيق النهائي حتى يكون اداة قد تساعد من يحتاجه هنا

واسف انى سهرت حضرتك 

وانا ايضا كنت هنام لو ما وجدت حل ^_^ باصحه على 5 الفجر ^_^

تم تعديل بواسطه عمر ضاحى
  • Like 1
رابط هذا التعليق
شارك

انا جربت اعملها بهذه الصورة 

=IIf([day1].[Text]="Thursday";(DateDiff("n";[txtStanderTimeOut2];[txtTimeOut])\60 & ":" & DateDiff("n";[txtStanderTimeOut2];[txtTimeOut]) Mod 60);IIf([day1].[Text]="Friday";(DateDiff("n";[txtTimeIn];[txtTimeOut])\60 & ":" & DateDiff("n";[txtTimeIn];[txtTimeOut]) Mod 60);(DateDiff("n";[txtStanderTimeOut1];[txtTimeOut])\60 & ":" & DateDiff("n";[txtStanderTimeOut1];[txtTimeOut]) Mod 60)))

لكنها اعطتني خطأ 
#نوع!

 

حد يعرف السبب ؟

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

مبدئيا كده 

عرفت احل مشكلة الخطأ

وكان فى وجود الزائده

.[Text]

لكن عمل الداله ثابت على عملية حسابيه واحدع والمفترض ان الداله تتغير حسابها حسب الشرط الموضوع له

هذه الداله بعد الاصلاح

=IIf([day1]="Thursday";(DateDiff("n";[txtStanderTimeOut2];[txtTimeOut])\60 & ":" & DateDiff("n";[txtStanderTimeOut2];[txtTimeOut]) Mod 60);IIf([day1]="Friday";(DateDiff("n";[txtTimeIn];[txtTimeOut])\60 & ":" & DateDiff("n";[txtTimeIn];[txtTimeOut]) Mod 60);(DateDiff("n";[txtStanderTimeOut1];[txtTimeOut])\60 & ":" & DateDiff("n";[txtStanderTimeOut1];[txtTimeOut]) Mod 60)))

هل ممكن احد ينظر لها نظرة تمعن ويجد لى الخطأ !

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

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

واسف عن التاخير بسبب المشاغل وبسبب ان الكيبورد تبعي (قافل معاي)

 

حضور وانصراف موظفين_TestV31Q.accdb

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

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