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

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

قام بنشر

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

 

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

آمل تعديل الكود التالي في حقل محسوب بالجدول حيث انه لايعترف بالساعة 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()
,وبعدين ستعمل عملية حذف بين الوقت الاول والثاني

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

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

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

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