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

حل مشكلة فارق الوقت


hh88
إذهب إلى أفضل إجابة Solved by Shivan Rekany,

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

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

 

اساتذتي الاعزاء

آمل تعديل الكود التالي في حقل محسوب بالجدول حيث انه لايعترف بالساعة 24:00 

حاولت اجرب 00:00 ولم يضبط

 

TimeSerial(Hour([open])-Hour([close]);Minute([open])-Minute([close]);Second([open])-Second([close]))

 

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

السلام عليكم

لمن لدية الخبرة في اوقات الاكسس لدي مشكلة ارجو منكم مساعدتي،

لدي قاعدة بيانات في الاكسس واريد فارق الوقت بين وقتين ومعي ثلاث مربعات نص ادخل في مربع النص الاول وهو وقت حصول العطل مثلا 15:00 وادخل في مربع النص الثاني وقت اصلاح العطل مثلا 18:00 وتظهر لي النتيجة في المربع الثالث وهو فارق الوقت بين الوقتين 03:00 واستخدمت دالة TimeSerial لعمل هذه العملية ولكن معي مشكلة في الوقت اذا ادخلت في المربع الاول 22:00 والمربع الثاني 24:00 هنا يجب ان يكون الناتج الفارق 2:00ولكن اكسس لا يقبل القيمة 24:00 واذا ادخلت 22:00 وادخلت 00:00 على اساس انه منتصف الليل يعطي لي النتيجة 22:00 ساعة وفي الاصل فارق الوقت بينهم 02:00 اي ساعتان ماهي حل المشكلة...
وشكرا

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

سبق وان اجبت على تساؤل شبيه وأنسيت اهو لك ام لغيرك

المشكلة التي تحصل للكثيرين حين يدخل الوقت في يوم جديد

الحل : لا تدخل الوقت  هكذا : 03:00  او هكذا 03:00:04

وانما استخدام التاريخ الكامل General Date  ( وهو يشتمل على التاريخ والوقت ) بواسطة الدالة Now

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

وانا مع الکلام استاذنا ابوخليل 100% وسيكون احسن لك ولقاعدتك ان تمشي معاه
وعلى رغم كل شيء اذا تطلب النتيجة على طريقتك سنعطيك طريقة لكن لا تنسى هذه ليس افضل طريقة :wink2:

1 ساعه مضت, hh88 said:

اذا ادخلت في المربع الاول 22:00 والمربع الثاني 24:00 هنا يجب ان يكون الناتج الفارق 2:00

فرضنا عندنا ثلاث حقول باسماء t1 , t2 ,t3
تي 1 لوقت العطل
تي 2 لوقت الاصلاح

تي 3 للفرق بينهما

اليك هذا الكود

If Me.t2 = #12:00:00 AM# Then
        Dim i
            i = #11:59:00 PM# - Me.t1
        Me.t3 = i + #12:01:00 AM#
    Else
        Me.t3 = Me.t2 - Me.t1
End If

 

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

41 minutes ago, Shivan Rekany said:

وانا مع الکلام استاذنا ابوخليل 100% وسيكون احسن لك ولقاعدتك ان تمشي معاه
وعلى رغم كل شيء اذا تطلب النتيجة على طريقتك سنعطيك طريقة لكن لا تنسى هذه ليس افضل طريقة :wink2:

فرضنا عندنا ثلاث حقول باسماء t1 , t2 ,t3
تي 1 لوقت العطل
تي 2 لوقت الاصلاح

تي 3 للفرق بينهما

اليك هذا الكود


If Me.t2 = #12:00:00 AM# Then
        Dim i
            i = #11:59:00 PM# - Me.t1
        Me.t3 = i + #12:01:00 AM#
    Else
        Me.t3 = Me.t2 - Me.t1
End If

 

استاذي الكريم شفان 

فين اضع هذا الكود 

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

1 ساعه مضت, hh88 said:

استاذي الكريم شفان 

فين اضع هذا الكود 

الیک المرفق

لکن لا انصحك باستخدام هذه الطريقة الا اذا كان كلا الوقتين في يوم واحد

Database1.rar

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

10 hours ago, Shivan Rekany said:

الیک المرفق

لکن لا انصحك باستخدام هذه الطريقة الا اذا كان كلا الوقتين في يوم واحد

Database1.rar

اشكرك استاذي الكريم شفان في حالة ادخال الوقت بعد منتصف الليل لايحسب صحيح

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

اسف على الازعاج

والف شكر 

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

21 hours ago, Shivan Rekany said:

الیک المرفق

لکن لا انصحك باستخدام هذه الطريقة الا اذا كان كلا الوقتين في يوم واحد

Database1.rar

هل من حل اخر اخي شفان حيث ان الموضوع يهمني

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

هل يوجد لديك طريقة اخرى لضالتي 

 

ولك اجمل تحياتي 

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

  • أفضل إجابة
2 دقائق مضت, hh88 said:

هل من حل اخر اخي شفان حيث ان الموضوع يهمني

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

هل يوجد لديك طريقة اخرى لضالتي 

 

ولك اجمل تحياتي 

لان سيستم هو 24 ساعة وليس 12 ساعة
اتفضل اليك هذا الكود

Private Sub T2_AfterUpdate()
        Dim i
If Me.T1 > Me.T2 Then
    If Me.T2 = #12:00:00 AM# Then
            i = #11:59:00 PM# - Me.T1
        Me.T3 = i + #12:01:00 AM#
    Else
            i = #11:59:00 PM# - Me.T1
        Me.T3 = i + #12:01:00 AM# + Me.T2
    End If
    Else
    Me.T3 = Me.T2 - Me.T1
End If
End Sub

واليك المرفق
Database1 (2).rar

10 ساعات مضت, hh88 said:

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

فقط عليك ان تكتب بدل الوقت القصير تكتب now()
,وبعدين ستعمل عملية حذف بين الوقت الاول والثاني

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

5 hours ago, Shivan Rekany said:

لان سيستم هو 24 ساعة وليس 12 ساعة
اتفضل اليك هذا الكود


Private Sub T2_AfterUpdate()
        Dim i
If Me.T1 > Me.T2 Then
    If Me.T2 = #12:00:00 AM# Then
            i = #11:59:00 PM# - Me.T1
        Me.T3 = i + #12:01:00 AM#
    Else
            i = #11:59:00 PM# - Me.T1
        Me.T3 = i + #12:01:00 AM# + Me.T2
    End If
    Else
    Me.T3 = Me.T2 - Me.T1
End If
End Sub

واليك المرفق
Database1 (2).rar

فقط عليك ان تكتب بدل الوقت القصير تكتب now()
,وبعدين ستعمل عملية حذف بين الوقت الاول والثاني

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

وفقك الله واسال الله ان يحفظك ويبارك فيك 

تقبل اجمل تحياتي اخي شفان

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information