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

AbuuAhmed

الخبراء
  • Posts

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

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

  • Days Won

    16

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

  1. ياريت توضح لنا أي دالة استخدمت. وإذا كانت الدالة WORKDAY.INTL فهل يمكنك إضافتها لمرفقي (بعد ترفية الملف طبعا) بإضافة عمود جديد للسنة كاملة ثم رفع الملف. أحتاج للمقارنة ضروري.
  2. الإجراء بسيط جدا لا يمكن أن يتسبب ببطء العمل، ربما حجم البيانات كبير والعمليات كبيرة. فتأثيره كتأثير تغيير التاريخ كتابةً. أما سطور "التسريع" كما سميتها لن يكون لها أي أثر مع هذا الأمر البسيط فوجودها كعدمها. إذا يمكنك رفع ملفك فارفعه.
  3. صممت دالة باسم myWorkDay شبيهة بدالة الاكسل WORKDAY لحساب آخر يوم في العمل وتحتاج إلى مدخلين أول يوم في العمل و عدد أيام عمل فعلي بدون العطل الاسبوعية. جربوها فربما تنفعكم. Option Explicit Function myWorkDay(FmDate As Date, NetDays1 As Integer) As Date 'WORKDAY شبيهة بدالة الاكسل 'FmDate أول يوم عمل Dim Weekends As Integer Dim ToDate As Date Dim NetDays2 As Integer Dim LoopRepeat As Integer Weekends = Int(NetDays1 / 2.5) ToDate = FmDate + NetDays1 + Weekends - 1 Weekends = CountWkDay(FmDate, ToDate, vbFriday) + _ CountWkDay(FmDate, ToDate, vbSaturday) NetDays2 = ToDate - FmDate - Weekends + 1 Do While NetDays1 <> NetDays2 LoopRepeat = LoopRepeat + 1 If LoopRepeat = 10 Then 'Debug.Print "Looprepeat", LoopRepeat Exit Do End If If NetDays1 > NetDays2 Then NetDays2 = NetDays2 + 1 Else NetDays2 = NetDays2 - 1 End If ToDate = FmDate + NetDays2 + Weekends - 1 Weekends = CountWkDay(FmDate, ToDate, vbFriday) + _ CountWkDay(FmDate, ToDate, vbSaturday) NetDays2 = ToDate - FmDate - Weekends + 1 Loop If Weekday(ToDate) >= vbFriday Then ToDate = ToDate - 1 If Weekday(ToDate) >= vbFriday Then ToDate = ToDate - 1 myWorkDay = ToDate End Function Function CountWkDay(ByVal Date1 As Date, _ ByVal Date2 As Date, _ WkDay As VbDayOfWeek) As Long 'WeekDay Counter Date1 = Date1 - 1 Date1 = Fix((Date1 + (7 - WkDay)) / 7) Date2 = Fix((Date2 + (7 - WkDay)) / 7) CountWkDay = Date2 - Date1 End Function يوجد مثال اكسل في هذه المشاركة:
  4. معالجة خاطئة، وقد عملت مقارنة لسنة كاملة وأظهرت خطأ المعالجة. يبقى دالتي لمن يستعملون نسخ قديمة من الاكسل أو دالة WORKDAY.INTL للإصدارات الحديثة، لم أجربها لأن نسخة الاكسل عندي قديمة ويمكن كذلك استخدام دالتي. ايام عمل_05.xlsm
  5. أبوأحمد سبقني 🙂 كيف استخدم زر الزيادة أو نقصان_02.xlsm
  6. حياك الله أبا خليل، سؤالي كان للسائل، فمن الجيد أن يجرب طالب العلم أكثر من حل ليقف على أفضلها ولتوسع من مداركه وخبرته. أحيانا بعض أسئلتي قد تثير استغراب من يتابعني ويسأل كيف بخبير يسأل عن أمور بسيطة أو يمدح عملا وكأنه يمر عليه لأول مرة. والحقيقة هي بسبب مشكلتين لدي أولهما صحية وهي ضعف الذاكرة وزيادة تشتت الانتباه وثانيهما هو هجري/تركي للأكسس ربما 15 سنة أو أكثر ولم تعد لغتي الأساسية. كثيرا بالصدفة أرى ما يخالف تعليقاتي في برامجي القديمة فأضحك عليها، وأقول في نفسي خليها فمن منهم يعرف "أبو أحمد" على الواقع 🙂.
  7. ويمكن جعل الحدث هكذا أيضا: Private Sub Report_Open(Cancel As Integer) DoCmd.Restore End Sub مع حتى اقتراحي الأول سعمل بشكل جيد ولكن لماذا تخطيته، هل سيسبب مشكلة في التشغيل؟ "سؤال استفاهمي"
  8. وإذا ما أحببت عدم التكبير اجعل حدث عند الفتح للتقرير هكذا: Private Sub Report_Open(Cancel As Integer) DoCmd.Maximize DoCmd.Restore End Sub
  9. حاول أن تجعل خاصية Modal تساوي No للنموذج وتجعل خاصية Pop Up للتقرير Yes وربما هناك حلول أفضل.
  10. حياك الله عزيزي، نفس المشاكل في الأمثلة السابقة 🙂
  11. لقت نظري استخدام المهندس قاسم حدث: Private Sub X1_KeyUp(KeyCode As Integer, Shift As Integer) وقد يكون خيارا صائبا كبديل لحدث "عند التحديث" حتى لا يدخل في عملية تكرار الحدث عند معالجة النص. سأقيم عليه تجارب فلعله يريحنا من مشكلات عدة.
  12. حسبي الله ونعم الوكيل. هذا آخر مشاركة لي في هذا الموضوع. وهذا رابط موضوع سابق لي يمكن الاستفادة منه أيضا في تلوين الكلمات المبحوث عنها في السجلات:
  13. حسبي الله ونعم الوكيل قلتها سابقا وتوقعت أن ما يحدث في المنتدى هو تصرفات "جمعية" وليست فردية ولكن سامح الله أحد الإداريين الذي أخفى تلك المشاركة. هذه آخر مشاركة لي في هذا الموضوع. شرح مشكلة استعلام "ZX": - لقد اجتهد أخونا العزيز "شايب" في تشخيص المشكلة ولكن جانبه الصواب في المعالجة، فقد كان الربط سليما ولم يكن يحتاج إلى تعديل وإنما المشكلة كانت في حقل اسم الصنف حيث يجب أن يؤخذ من جدول المشتريات وليس المبيعات. ولماذا؟ ... لأن جدول المشتريات سيحتوي على كل الأصناف التي ستباع "منطقي" ولكن ليس كل الأصناف المشتراة ستجدها في المبيعات لعدم حصول أي عمليات بيع عليها. - هذا كان حلي السابق في النسخة 03 بؤخذ الاسم من جدول المشتريات ولكن حتى هذا الحل لن يصمد كثيرا للبرامج التي تعتمد مع نهاية كل سنة الترصيد وإلغاء عمليات الشراء والبيع. والحل هو أن يضاف جدولا ثالثا على الاستعلام وهو جدول الأصناف ليربط به جدولي المشتريات والمبيعات ومن ثم يؤخذ الاسم من جدول الأصناف. مرفق مثال نسخة 04 والأخيرة من جانبي. احتفظت بالاستعلام القديم كما هو وعملت التعديل على استعلام آخر بنفس الاسم ليسهل عملية المقارنة وفهم التعديل. expire date_04.accdb
  14. "اقرأ النص ولا تقرأ كاتب النص" مع اعتذاري للجميع، مثالي هو الأمثل إذا أردت استخدام حدث "عند التحديث"، وليس دائما الكود/الشفرة يعتبر أفضل الحلول. تكمن المشكلة في إعادة التركيز ووقوف المؤشر في مكانه الصحيح. وهذا الموضوع سيتعب كل المحاولين و "غالبا" ستفشل المحاولات إذا لم يستخدم التفاصيل في نموذج فرعي. إذا أردت معرفة الأفضل فقم بفحوصات "عنيفة" لتعرف صلابة وقوة "المنتج"، الفحوصات الأولية قد تبدو الأفضل ومع التجارب تظهر "البلاوي". هذه نصيحة فقط، وأرجوك لا تستخدم مثالي 🙂.
  15. expire date_03.accdb 4.13 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 0 downloads توثيق. طبعا حتى هذا الحل لدي حل أفضل وأصح وأكثر منطقية منه، ننتظر. زمن غريب أن يطلب مقدم الحل لفت نظر السائل للتجاوب معه 🙂
  16. "اقرأ النص ولا تقرأ كاتب النص" هناك خطأ أنا أصلحته (لن أعلن عنه الآن) في الموضوع السابق. اختبر الأرصدة أولا ثم بعده واصل في موضوعك هذا. المرفق هنا لا يصلح لهذه الخطوة. 🙂 اسمع الكلام حبيبي.
  17. أنا عملت لك تعديل مختلف عن تعديلي وتعديل زميلي @شايب جرب وخبرني expire date_03.accdb
  18. طيب أشركنا معك في الفائدة، أذكر لنا تعديلك وارفع لنا المثال مرة أخرى بعد التعديل. وجزاك الله خيرا.
  19. بدل السطر الذي يتعطل عنده "التشغيل" بهذا: PrName = Nz(Rs1![Item_Name], "") علما هذا ستجنب القيمة null ولكن لا أعلم إذا سؤثر في النتائج أم لا. من الجيد أن تطلب من كاتب الكود التداخل فهو أعلم بما كتب.
  20. فكرة ممتازة للاختصار وتسهل عملية التتبع والتعديل. للعلم المثال في ما يخص التصفية/الفلترة مصمم من السابق وأنا فقط أضفت عليه خيار البحث عند التحديث دون "العبث" في المعايير السابقة. أحيانا من الصعب أن تبدل القناعات، فأنا ممن يكرهون المناذج الستمرة وأراها تعيق كيثرا من سرعة العمل ولكن يحبها من يحب للتحكم في الألوان والأشكال والتي لا تتوفر في صفحة البيانات/data sheet والتي كذلك لا تعنيني في شيء.
  21. جرب هذا المثال تم تبديل المرفق بسبب هفوة صغيرة 🙂 Aziz5_05.accdb
×
×
  • اضف...

Important Information