AbuuAhmed
الخبراء-
Posts
979 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
16
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو AbuuAhmed
-
كيف استخدم زر الزيادة أو نقصان مع تاريخ اليوم
AbuuAhmed replied to ابوعلي الحبيب's topic in منتدى الاكسيل Excel
الإجراء بسيط جدا لا يمكن أن يتسبب ببطء العمل، ربما حجم البيانات كبير والعمليات كبيرة. فتأثيره كتأثير تغيير التاريخ كتابةً. أما سطور "التسريع" كما سميتها لن يكون لها أي أثر مع هذا الأمر البسيط فوجودها كعدمها. إذا يمكنك رفع ملفك فارفعه. -
صممت دالة باسم 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 يوجد مثال اكسل في هذه المشاركة:
-
جمع ايام العمل فقط بدون الجمعة والسبت على تاريخ معين
AbuuAhmed replied to هاوي اكسل's topic in منتدى الاكسيل Excel
معالجة خاطئة، وقد عملت مقارنة لسنة كاملة وأظهرت خطأ المعالجة. يبقى دالتي لمن يستعملون نسخ قديمة من الاكسل أو دالة WORKDAY.INTL للإصدارات الحديثة، لم أجربها لأن نسخة الاكسل عندي قديمة ويمكن كذلك استخدام دالتي. ايام عمل_05.xlsm -
جمع ايام العمل فقط بدون الجمعة والسبت على تاريخ معين
AbuuAhmed replied to هاوي اكسل's topic in منتدى الاكسيل Excel
جربوا مثالي أيضا ايام عمل_03.xlsm -
كيف استخدم زر الزيادة أو نقصان مع تاريخ اليوم
AbuuAhmed replied to ابوعلي الحبيب's topic in منتدى الاكسيل Excel
أبوأحمد سبقني 🙂 كيف استخدم زر الزيادة أو نقصان_02.xlsm -
حياك الله أبا خليل، سؤالي كان للسائل، فمن الجيد أن يجرب طالب العلم أكثر من حل ليقف على أفضلها ولتوسع من مداركه وخبرته. أحيانا بعض أسئلتي قد تثير استغراب من يتابعني ويسأل كيف بخبير يسأل عن أمور بسيطة أو يمدح عملا وكأنه يمر عليه لأول مرة. والحقيقة هي بسبب مشكلتين لدي أولهما صحية وهي ضعف الذاكرة وزيادة تشتت الانتباه وثانيهما هو هجري/تركي للأكسس ربما 15 سنة أو أكثر ولم تعد لغتي الأساسية. كثيرا بالصدفة أرى ما يخالف تعليقاتي في برامجي القديمة فأضحك عليها، وأقول في نفسي خليها فمن منهم يعرف "أبو أحمد" على الواقع 🙂.
-
ويمكن جعل الحدث هكذا أيضا: Private Sub Report_Open(Cancel As Integer) DoCmd.Restore End Sub مع حتى اقتراحي الأول سعمل بشكل جيد ولكن لماذا تخطيته، هل سيسبب مشكلة في التشغيل؟ "سؤال استفاهمي"
-
وإذا ما أحببت عدم التكبير اجعل حدث عند الفتح للتقرير هكذا: Private Sub Report_Open(Cancel As Integer) DoCmd.Maximize DoCmd.Restore End Sub
-
-
حياك الله عزيزي، نفس المشاكل في الأمثلة السابقة 🙂
-
لقت نظري استخدام المهندس قاسم حدث: Private Sub X1_KeyUp(KeyCode As Integer, Shift As Integer) وقد يكون خيارا صائبا كبديل لحدث "عند التحديث" حتى لا يدخل في عملية تكرار الحدث عند معالجة النص. سأقيم عليه تجارب فلعله يريحنا من مشكلات عدة.
-
حسبي الله ونعم الوكيل. هذا آخر مشاركة لي في هذا الموضوع. وهذا رابط موضوع سابق لي يمكن الاستفادة منه أيضا في تلوين الكلمات المبحوث عنها في السجلات:
-
الموديول توقف عن العمل ويعطى رسالة خطأ
AbuuAhmed replied to ahmedabuzena's topic in قسم الأكسيس Access
حسبي الله ونعم الوكيل قلتها سابقا وتوقعت أن ما يحدث في المنتدى هو تصرفات "جمعية" وليست فردية ولكن سامح الله أحد الإداريين الذي أخفى تلك المشاركة. هذه آخر مشاركة لي في هذا الموضوع. شرح مشكلة استعلام "ZX": - لقد اجتهد أخونا العزيز "شايب" في تشخيص المشكلة ولكن جانبه الصواب في المعالجة، فقد كان الربط سليما ولم يكن يحتاج إلى تعديل وإنما المشكلة كانت في حقل اسم الصنف حيث يجب أن يؤخذ من جدول المشتريات وليس المبيعات. ولماذا؟ ... لأن جدول المشتريات سيحتوي على كل الأصناف التي ستباع "منطقي" ولكن ليس كل الأصناف المشتراة ستجدها في المبيعات لعدم حصول أي عمليات بيع عليها. - هذا كان حلي السابق في النسخة 03 بؤخذ الاسم من جدول المشتريات ولكن حتى هذا الحل لن يصمد كثيرا للبرامج التي تعتمد مع نهاية كل سنة الترصيد وإلغاء عمليات الشراء والبيع. والحل هو أن يضاف جدولا ثالثا على الاستعلام وهو جدول الأصناف ليربط به جدولي المشتريات والمبيعات ومن ثم يؤخذ الاسم من جدول الأصناف. مرفق مثال نسخة 04 والأخيرة من جانبي. احتفظت بالاستعلام القديم كما هو وعملت التعديل على استعلام آخر بنفس الاسم ليسهل عملية المقارنة وفهم التعديل. expire date_04.accdb -
"اقرأ النص ولا تقرأ كاتب النص" مع اعتذاري للجميع، مثالي هو الأمثل إذا أردت استخدام حدث "عند التحديث"، وليس دائما الكود/الشفرة يعتبر أفضل الحلول. تكمن المشكلة في إعادة التركيز ووقوف المؤشر في مكانه الصحيح. وهذا الموضوع سيتعب كل المحاولين و "غالبا" ستفشل المحاولات إذا لم يستخدم التفاصيل في نموذج فرعي. إذا أردت معرفة الأفضل فقم بفحوصات "عنيفة" لتعرف صلابة وقوة "المنتج"، الفحوصات الأولية قد تبدو الأفضل ومع التجارب تظهر "البلاوي". هذه نصيحة فقط، وأرجوك لا تستخدم مثالي 🙂.
-
الموديول توقف عن العمل ويعطى رسالة خطأ
AbuuAhmed replied to ahmedabuzena's topic in قسم الأكسيس Access
expire date_03.accdb 4.13 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 0 downloads توثيق. طبعا حتى هذا الحل لدي حل أفضل وأصح وأكثر منطقية منه، ننتظر. زمن غريب أن يطلب مقدم الحل لفت نظر السائل للتجاوب معه 🙂 -
الموديول توقف عن العمل ويعطى رسالة خطأ
AbuuAhmed replied to ahmedabuzena's topic in قسم الأكسيس Access
أنا عملت لك تعديل مختلف عن تعديلي وتعديل زميلي @شايب جرب وخبرني expire date_03.accdb -
الموديول توقف عن العمل ويعطى رسالة خطأ
AbuuAhmed replied to ahmedabuzena's topic in قسم الأكسيس Access
طيب أشركنا معك في الفائدة، أذكر لنا تعديلك وارفع لنا المثال مرة أخرى بعد التعديل. وجزاك الله خيرا. -
الموديول توقف عن العمل ويعطى رسالة خطأ
AbuuAhmed replied to ahmedabuzena's topic in قسم الأكسيس Access
بدل السطر الذي يتعطل عنده "التشغيل" بهذا: PrName = Nz(Rs1![Item_Name], "") علما هذا ستجنب القيمة null ولكن لا أعلم إذا سؤثر في النتائج أم لا. من الجيد أن تطلب من كاتب الكود التداخل فهو أعلم بما كتب. -
فكرة ممتازة للاختصار وتسهل عملية التتبع والتعديل. للعلم المثال في ما يخص التصفية/الفلترة مصمم من السابق وأنا فقط أضفت عليه خيار البحث عند التحديث دون "العبث" في المعايير السابقة. أحيانا من الصعب أن تبدل القناعات، فأنا ممن يكرهون المناذج الستمرة وأراها تعيق كيثرا من سرعة العمل ولكن يحبها من يحب للتحكم في الألوان والأشكال والتي لا تتوفر في صفحة البيانات/data sheet والتي كذلك لا تعنيني في شيء.
-
جرب هذا المثال تم تبديل المرفق بسبب هفوة صغيرة 🙂 Aziz5_05.accdb