AbuuAhmed
-
Posts
926 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
16
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
مشاركات المكتوبه بواسطه AbuuAhmed
-
-
الإجراء بسيط جدا لا يمكن أن يتسبب ببطء العمل، ربما حجم البيانات كبير والعمليات كبيرة. فتأثيره كتأثير تغيير التاريخ كتابةً.
أما سطور "التسريع" كما سميتها لن يكون لها أي أثر مع هذا الأمر البسيط فوجودها كعدمها.
إذا يمكنك رفع ملفك فارفعه. -
صممت دالة باسم 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
يوجد مثال اكسل في هذه المشاركة:
- 1
-
11 ساعات مضت, أ / محمد صالح said:
ويمكن استخدام هذه الدالة (الاصدار الاقدم)
=WORKDAY(C5,100)-1
هذه الدالة تحسب عدد الأيام على ان اجازة نهاية الاسبوع هي السبت والاحد
لذلك تم انقاص يوم من الناتج لتحسب على ان عطلة نهاية الاسبوع الجمعة والسبت
معالجة خاطئة، وقد عملت مقارنة لسنة كاملة وأظهرت خطأ المعالجة.
يبقى دالتي لمن يستعملون نسخ قديمة من الاكسل
أو
دالة WORKDAY.INTL للإصدارات الحديثة، لم أجربها لأن نسخة الاكسل عندي قديمة
ويمكن كذلك استخدام دالتي. -
-
-
38 دقائق مضت, ابوخليل said:
أنا لم استخدم الطريقتين من قبل ضمن اعمالي .. اذا تسبب مشاكل ام لا
حياك الله أبا خليل، سؤالي كان للسائل، فمن الجيد أن يجرب طالب العلم أكثر من حل ليقف على أفضلها ولتوسع من مداركه وخبرته.
أحيانا بعض أسئلتي قد تثير استغراب من يتابعني ويسأل كيف بخبير يسأل عن أمور بسيطة أو يمدح عملا وكأنه يمر عليه لأول مرة.
والحقيقة هي بسبب مشكلتين لدي أولهما صحية وهي ضعف الذاكرة وزيادة تشتت الانتباه وثانيهما هو هجري/تركي للأكسس ربما 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
-
حاول أن تجعل خاصية Modal تساوي No للنموذج
وتجعل خاصية Pop Up للتقرير Yes
وربما هناك حلول أفضل.
-
5 ساعات مضت, شايب said:
الملف مرفق مع عدم الاقتناع والافضل من وجهة نظر الاخ شايب
حياك الله عزيزي، نفس المشاكل في الأمثلة السابقة 🙂
اقتباستكمن المشكلة في إعادة التركيز ووقوف المؤشر في مكانه الصحيح
-
وعليكم السلام
7 ساعات مضت, ahmedabuzena said:يا ريت تشرح ايه السبب
كان عندك لخبطة في اسماء صناديق النص.
-
-
لقت نظري استخدام المهندس قاسم حدث:
Private Sub X1_KeyUp(KeyCode As Integer, Shift As Integer)
وقد يكون خيارا صائبا كبديل لحدث "عند التحديث" حتى لا يدخل في عملية تكرار الحدث عند معالجة النص.
سأقيم عليه تجارب فلعله يريحنا من مشكلات عدة. -
حسبي الله ونعم الوكيل.
هذا آخر مشاركة لي في هذا الموضوع.
وهذا رابط موضوع سابق لي يمكن الاستفادة منه أيضا في تلوين الكلمات المبحوث عنها في السجلات: -
حسبي الله ونعم الوكيل
قلتها سابقا وتوقعت أن ما يحدث في المنتدى هو تصرفات "جمعية" وليست فردية ولكن سامح الله أحد الإداريين الذي أخفى تلك المشاركة.
هذه آخر مشاركة لي في هذا الموضوع.
شرح مشكلة استعلام "ZX":
- لقد اجتهد أخونا العزيز "شايب" في تشخيص المشكلة ولكن جانبه الصواب في المعالجة، فقد كان الربط سليما ولم يكن يحتاج إلى تعديل وإنما المشكلة كانت في حقل اسم الصنف حيث يجب أن يؤخذ من جدول المشتريات وليس المبيعات. ولماذا؟ ... لأن جدول المشتريات سيحتوي على كل الأصناف التي ستباع "منطقي" ولكن ليس كل الأصناف المشتراة ستجدها في المبيعات لعدم حصول أي عمليات بيع عليها.
- هذا كان حلي السابق في النسخة 03 بؤخذ الاسم من جدول المشتريات ولكن حتى هذا الحل لن يصمد كثيرا للبرامج التي تعتمد مع نهاية كل سنة الترصيد وإلغاء عمليات الشراء والبيع. والحل هو أن يضاف جدولا ثالثا على الاستعلام وهو جدول الأصناف ليربط به جدولي المشتريات والمبيعات ومن ثم يؤخذ الاسم من جدول الأصناف.
مرفق مثال نسخة 04 والأخيرة من جانبي.
احتفظت بالاستعلام القديم كما هو وعملت التعديل على استعلام آخر بنفس الاسم ليسهل عملية المقارنة وفهم التعديل.- 1
-
"اقرأ النص ولا تقرأ كاتب النص"
مع اعتذاري للجميع، مثالي هو الأمثل إذا أردت استخدام حدث "عند التحديث"، وليس دائما الكود/الشفرة يعتبر أفضل الحلول.
تكمن المشكلة في إعادة التركيز ووقوف المؤشر في مكانه الصحيح. وهذا الموضوع سيتعب كل المحاولين و "غالبا" ستفشل المحاولات إذا لم يستخدم التفاصيل في نموذج فرعي.
إذا أردت معرفة الأفضل فقم بفحوصات "عنيفة" لتعرف صلابة وقوة "المنتج"، الفحوصات الأولية قد تبدو الأفضل ومع التجارب تظهر "البلاوي".
هذه نصيحة فقط، وأرجوك لا تستخدم مثالي 🙂. -
expire date_03.accdb
4.13 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a
·
0 downloads
توثيق.
طبعا حتى هذا الحل لدي حل أفضل وأصح وأكثر منطقية منه، ننتظر.
زمن غريب أن يطلب مقدم الحل لفت نظر السائل للتجاوب معه 🙂 -
"اقرأ النص ولا تقرأ كاتب النص"
هناك خطأ أنا أصلحته (لن أعلن عنه الآن) في الموضوع السابق. اختبر الأرصدة أولا ثم بعده واصل في موضوعك هذا.
المرفق هنا لا يصلح لهذه الخطوة.
🙂 اسمع الكلام حبيبي.
-
أنا عملت لك تعديل مختلف عن تعديلي وتعديل زميلي @شايب
جرب وخبرني -
16 دقائق مضت, ahmedabuzena said:
اشتغل تمام جزاكم الله خيرا
طيب أشركنا معك في الفائدة،
أذكر لنا تعديلك وارفع لنا المثال مرة أخرى بعد التعديل.
وجزاك الله خيرا. -
بدل السطر الذي يتعطل عنده "التشغيل" بهذا:
PrName = Nz(Rs1![Item_Name], "")
علما هذا ستجنب القيمة null ولكن لا أعلم إذا سؤثر في النتائج أم لا. من الجيد أن تطلب من كاتب الكود التداخل فهو أعلم بما كتب.
-
منذ ساعه, شايب said:
ممكن نكتب الامر هكذا
strWhere = "[FATHER_NAME]&[NUM_PAID] like '*" & strtxt & "*'"
فكرة ممتازة للاختصار وتسهل عملية التتبع والتعديل.
للعلم المثال في ما يخص التصفية/الفلترة مصمم من السابق وأنا فقط أضفت عليه خيار البحث عند التحديث دون "العبث" في المعايير السابقة.
أحيانا من الصعب أن تبدل القناعات، فأنا ممن يكرهون المناذج الستمرة وأراها تعيق كيثرا من سرعة العمل ولكن يحبها من يحب للتحكم في الألوان والأشكال والتي لا تتوفر في صفحة البيانات/data sheet والتي كذلك لا تعنيني في شيء.- 1
-
- 1
-
سلوك مرفوض ومعرف مخالف.
جمع ايام العمل فقط بدون الجمعة والسبت على تاريخ معين
في منتدى الاكسيل Excel
قام بنشر
ياريت توضح لنا أي دالة استخدمت.
وإذا كانت الدالة WORKDAY.INTL فهل يمكنك إضافتها لمرفقي (بعد ترفية الملف طبعا) بإضافة عمود جديد للسنة كاملة ثم رفع الملف.
أحتاج للمقارنة ضروري.