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

AbuuAhmed

الخبراء
  • Posts

    979
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    16

كل منشورات العضو AbuuAhmed

  1. دالة على السريع، جربها ويمكننا تطويرها بعد التجارب: Function myRound(ByVal Num As Double) As Double Dim Frac As Double Num = Num / 10 Frac = Num - Int(Num) Frac = IIf(Frac = 0, 0, IIf(Frac > 0.5, 10, 5)) myRound = Int(Num) * 10 + Frac End Function
  2. أستطيع أن أجزم أن عندك مشكلة فرق يوم وأنت مستحي تتحدث عنها أكثر والدليل وضغك لعمود إضافي لطرح يوم وهذا الحل غير صحيح. أعتقد أن تاريخ نهاية الطلب EndDate عندك هو تاريخ أول يوم خارج مدة الصلاحية والذي من المفترض أن تسميه ExpiryDate، وإذا كان كذلك خبرني وسأعمل تعديل بسيط للحصول على النتائج الصحيحة 100% وليست كما عالجتها أنت بإنقاص يوم من النتيجة النهائية لأنك بهذه المعالجة لن تحصل على نتائج أيام العطل بنوعيها بشكل صحيح.
  3. عملت تجربة بطلبات على شكل شهور السنة والنتائج 100% qryResults CRM sDate eDate SiebelDays Weekends Holidayss WorkDays 1 01/01/2023 31/01/2023 31 8 23 2 01/02/2023 28/02/2023 28 8 1 19 3 01/03/2023 31/03/2023 31 9 22 4 01/04/2023 30/04/2023 30 9 5 16 5 01/05/2023 31/05/2023 31 8 23 6 01/06/2023 30/06/2023 30 9 5 16 7 01/07/2023 31/07/2023 31 9 22 8 01/08/2023 31/08/2023 31 8 23 9 01/09/2023 30/09/2023 30 10 20 10 01/10/2023 31/10/2023 31 8 23 11 01/11/2023 30/11/2023 30 8 22 12 01/12/2023 31/12/2023 31 10 21
  4. الإشكالية في حسابك 1 21/05/2023 2 22/05/2023 3 23/05/2023 4 24/05/2023 5 25/05/2023 6 26/05/2023 نهاية أسبوع 7 27/05/2023 نهاية أسبوع 8 28/05/2023 أيام العمل 8 - 2 = 6
  5. إن شاء الله تكون الأخيرة 🙂 نصيحة: إذا صادف وجود عطلة نهاية الأسبوع (Weekends) وسط عطلة رسمية Holiday، لا تحاول تقسيم العطلة لأن عطلة نهاية الأسبوع هي جزء من العطلة الرسمية، والبرنامج سوف يهتم بهذه الجزئية في الحسابات. WM2000_06.mdb
  6. قبل أن أرى مشاركتك الأخيرة كنت أعمل على تعديل أخير إن شاء الله، والسبب أن الاحتمالات كثيرة والبيانات لا تغطيها كلها. أضفت بعض البيانات من عندي لتغطية كل الاحتمالات واضطررت لعمل عدة تعديلات إضافية. سأضيفها لاحقا.
  7. جرب الآن بعد التعديل في أكثر من استعلام وإضافة دالة لحساب عطل نهاية الأسبوع ومنها يمكنك التعديل على الأيام التي تريدها وليس من الاستعلامات كما السابق. اخبرني عن النتيجة ولا تتأخر علي حتى لا أغيب عنك وأنسى موضوعك. ملاحظة: في جدول العطل الأسبوعية كنت قد أضفت "سابقا" مفتاح وفهرسين لمنع التكرار أرجو أن لا تغفل عنهما.
  8. لا مو عادي، الأمر بسيط، سأصلحه خلال دقائق قليلة.
  9. انتبه أن العطل الأسبوعية حسبت ليومي السبت والأحد تستطيع تبديلها في استعلام أيام العطل الأسبوعية، فأيام الأسبوع تبدأ برقم 1 ليوم الأحد وتنتهي برقم 7 ليوم السبت.
  10. آخر مشاركة لي في هذا الموضوع قمت بالتعديل على تركيبة جدول العطل وبياناته: تم إضافة حقل نهاية العطلة (آخر يوم في العطلة) وتم تعديل بيانات عام 2023 إلى عام 2022 لتناسب جدول Siebel لزوم التجارب. استخدمت الاستعلامات لتسريع النتائج ولن تعرف الفرق إلا مع عدد سجلات كبير. النتائج في الاستعلام qryResults موفق أخي. WM2000_03.mdb
  11. أخي أبو طلال، البيانات غير "نظيفة"، جدول في 2022 والآخر في 2023 كما أني لم أفهم جدول Siebel ، ماذا يعني هذا الجدول وما يعني عنوان هذا الحقل CRM؟ وأنصحك أن يكون تركيبة جدول العطلات عبارة عن حقلين بداية العطلة ونهاية العطلة إلا إذا كانت العطل كلها عبارة عن يوم واحد فتركيبة الجدول في حلي السابق أفضل. هل ممكن أن ترفع ملف الإكسل ليسهل فهم المطلوب بدون أن تقحم أفكارك في الحل، فالحلول دعها علي.
  12. جرب بعد فهمي لجدول العطل والتي هي عبارة عن يوم واحد لكل سجل. WM2000_02.mdb
  13. ربما الاسم الصحيح لهذا الشريط هو "شريط التقدم".
  14. جرب الاستعلام في هذا المرفق. مع العلم أني لم أفهم تركيبة جدول العطل لاعتمده في حساباتي. WM2000_01.mdb
  15. مثال آخر:
  16. من الخطأ أن يكون نوع حقل الترقيم نصي يجب أن يكون رقمي ويفضل أن يكون من نوع Long Integer على العموم استخدام هذا السطر بعد تعديل طفيف عليه: Me.sMembership_No = Nz(DMax("Val([sMembership_No])", "tbl_name_swimmer"), 6000) + 1 وتأكد من توسيع طول الحقل إذا أردت الإستمرار بنوع نصي.
  17. ممكن توضح أكثر طال عمرك.
  18. ويمكنك أيضا استخدام عملية الجمع العادية بشرط تحويل الدقائق إلى أيام Private Sub CMPO1_AfterUpdate() Me.txtAA = Me.txtA + Me.CMPO1 / 1440 '/60/24 End Sub
  19. يمكنك استخدام دالة myMod بدلا من استخدام دالة IIf لفحص المدخلات. Function myMod(Number As Double, Divisor As Double) As Double If Divisor <> 0 Then myMod = Number - Divisor * Int(Number / Divisor) End If End Function Sub Test() Dim Time1 As Date Dim Time2 As Date Time1 = TimeSerial(23, 0, 0) Time2 = TimeSerial(7, 0, 0) Debug.Print myMod((Time2 - Time1) * 24, 24) End Sub
  20. مثال يساعدك على الحساب VAT_Calculator_01.accdb
  21. طريقة أخرى لحساب مجموع الإجازات في استعلام qryVacations الحساب باستخدام دالة GetYears ضمن موديول modGetYears الدالة تراعي السنوات البسيطة والسنوات الكبيسة. الاجازة_05.accdb
  22. سبقوني 🙂 : =LEFT(A2,LEN(A2)-2)
  23. اطلع على هذا الموضوع:
  24. المثالين بهما نفس التقارير 1 - موضوع الأستاذ جعفر: 2 - مضوعي:
  25. نعم مناسبة جدا مع مشكلة الحقول القابلة للنمو، ولكن إضافة خاصية إخفاء المكررات ستظهر مشكلة التأطير من جديد للحقول التي بها تكرار. طبعا أخونا جعفر وأنا عملنا حلين منفصلين ولكنهما معقدان، وعندما رأيت حلك طمعت في حل مشابه. يكفيني تجاوبكم وشكرا لكم.
×
×
  • اضف...

Important Information