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

عبدالله المجرب

أوفيسنا
  • Posts

    5,409
  • تاريخ الانضمام

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

  • Days Won

    47

كل منشورات العضو عبدالله المجرب

  1. بصراحة المطلوب غامض حبتين ممكن شرح افضل من الموجود
  2. السلام عليكم و رحمة الله و بركاته اتقدم بالتهنئه لاخي العزيز الاستاذ / البروفسير بمناسبة ترقيته الي عضو مميز وان شاء الله نرى فيه النشاط المعهود دائماً و بالتوفيق دائماً و الي الامام ان شاء ا
  3. السلام عليكم فتحت الموضوع فعذراً وانما اردت ان استفسر عن الخطاء الذي ارتكبه الاخ السائل حتى تحدث كل هذه الجلبه لاني لا ارى ذلك فدلوني والاولى ان يتم التنبيه الى الخطاء اولاً ثم طلب غلق الموضوع.
  4. السلام عليكم معقول ان تستخرج عدد تسلسلي بين رقمين من 12 خانة
  5. بل على العكس الملف افضل لتوصيل الفكرة ومكمن الخطاء وتسهيل سرعة الاجابة لان الكود لوحده فقط سيضطر من يريد الاجابة لانشاء ملف للعمل عليه
  6. سؤالك للأسف مبهم فهل تريد ان يكون حقل الجدول الثاني كبيانات قائمة لحقل الجدول الاول هل البيانات في الجدول الثاني كثيرة ام صف واحد فقط
  7. أستاذنا الفاضل / الحاج مجدي يونس السلام عليكم ورحمة الله وبركاته ألف مليون مبروك على تأدية الحج هذا العام .تقبل الله .وعوداً حميداً. أسأل الله العلي القدير أن يتقبل منا ومنكم صالح الأعمال.
  8. اعتقد بأن هناك نطاق بهذا الاسم ويحدث له تكرار ضع ملفك لتجد الحل ان شاء الله
  9. اخي لا يشترط في INDEX بمعية الدالة MATCH ان يكون عمود البحث الاول والله أعلم
  10. السلام عليكم عتاب للاخ الفاضل قنديل الصياد كنت أتمنى ان تشير الى ان الدالة TransA2E تم إقتباسها من هنا http://www.officena.net/ib/index.php?showtopic=37319&p=199581 وشكراً
  11. السلام عليكم اخي الكريم مؤمن بعد الاطلاع على الملف لدي سؤال لماذ تكرار البيانات في ثلاث شيتات (ما الغرض منه ) لانه لا يوجد إختلاف فيما بينها
  12. هذا هو الكود بالكامل وسيتم شرحه سطر سطر ان شاء الله Private Sub Report_Open(Cancel As Integer) On Error GoTo 2 Dim StartDate As Date, EndDate As Date, K As Integer, I As Integer StartDate = InputBox("تاريخ بداية الشهر", "تنبيه", 1 & "/" & Month(Date) & "/" & Year(Date)) EndDate = InputBox("تاريخ نهاية الشهر", "تنبيه", DateAdd("d", -1, DateAdd("m", 1, 1 & "/" & Month(Date) & "/" & Year(Date)))) If DateDiff("d", StartDate, EndDate) > 31 Then Exit Sub For I = 0 To DateDiff("d", StartDate, EndDate) If Weekday(StartDate + I, vbFriday) = 1 Then GoTo 1 Me.Controls("Date" & K + 1).Caption = Format(StartDate + I, "ddd d/m") K = K + 1 1 Next 2 End Sub Private Sub Report_Open(Cancel As Integer) حدث فتح التقرير ======================================================= On Error GoTo 2 في حالة خطاء في الكود يتم الانتقال الى السطر الذي به الرقم 2 الموجودة في نهاية الكود لانهاء الكود ومن امثلة الاخطاء التي تقع كتابة نص في مربع الأدخال او كتابة تاريخ غير موجود مثل 30/02/2013 وهكذا ======================================================= Dim StartDate As Date, EndDate As Date, K As Integer, I As Integer الأعلان عن المتغيرات ونوعها وهنا لدينا متغييرين نوعهما تاريخ هما (EndDate - StartDate ) ومتغيرين نوعهما عدد صحسح هما( K - I) ======================================================= StartDate = InputBox("تاريخ بداية الشهر", "تنبيه", 1 & "/" & Month(Date) & "/" & Year(Date)) هنا تم التعريف بقيمة StartDate وهي عبارة عن مربع إدخال InputBox وكما هو معروف فان مربع الادخال له عدة متغيرات ومنها (ما تم استخدامه) شاهد الصورة 1. prompt هنا عبارة عن النص الموجود في مربع الادخال ويستخدم للتوضيح "تاريخ بداية الشهر" 2. title عنوان مربع الادخال "تنبيه" 3. Default القيمة الافتراضية لمربع النص (تم استخدامها بدل الادخال اليدوي ) في القيمة الافتراضية لمربع النص تم استخلاص تاريخ بداية الشهر الحالي بواسطة هذه الدالة 1 & "/" & Month(Date) & "/" & Year(Date) وهي عبارة عن الرقم 1 و شرطة التاريخ / واستخراج الشخر من التاريخ الحالي بدالة Month و / واستخراج السنة من التاريخ الحالي بدالة Year لينتج عند تاريخ بهذا الشكل 1/10/2013 ======================================================== EndDate = InputBox("تاريخ نهاية الشهر", "تنبيه", DateAdd("d", -1, DateAdd("m", 1, 1 & "/" & Month(Date) & "/" & Year(Date)))) نفس مواصفات الشرح السابق ولكن هنا تم استخدام دالة DateAdd لاستخراج تاريخ أخر يوم في الشهر كما هو معلوم فدالة DateAdd تتكون من تلاثة متغيرات هي 1. interval الفترة المراد اضافتها الى التاريخ 2. number عدد الأيام (بالسالب أو الموجب ) 3. date التارخ المراد الاضافة علية (بالسالب أو الموجب) وقد أستخدمت مرتين الاولى لأضافة شهر على التاريخ الذي تم كتابته بهذه الطريقة (كما شرحت سابقاً) 1 & "/" & Month(Date) & "/" & Year(Date)) وكانت الدالة كالتالي DateAdd("m", 1, 1 & "/" & Month(Date) & "/" & Year(Date)) وسينتج منها تاريخ هو 01/11/2013 ثم استخدمت الدالة DateAdd مرة اخرى لإنقاص يوم واحد من هذا التاريخ ليعطينا اخر يوم في الشهر السابق لهذا التاريخ وهو 31/10/2013 وكانت المعادلة ككل كالتالي DateAdd("d", -1, DateAdd("m", 1, 1 & "/" & Month(Date) & "/" & Year(Date)))) ====================================================================== If DateDiff("d", StartDate, EndDate) > 31 Then Exit Sub جملة شرطية بإستخدام الدالة DateDiff (دالة لأستخراج عدد الايام بين تاريخين) فاذا تجاوز عدد الايام بين تاريخ بداية الشهر المدخل ونهايته يتم الخروج من الكود ===================================================================== For I = 0 To DateDiff("d", StartDate, EndDate) حلقة تكرارية تبداء من صفر وتنتهي حتى (عدد الايام بين التاريخين) ======================================== If Weekday(StartDate + I, vbFriday) = 1 Then GoTo 1 جملة شرطية ففي كل حلقة تكرارية يزيد تاريخ البداية برقم قيمة المتغير i ويتم فحص التاريخ بدالة Weekday فاذا صادف الجمعة ينتقل الكود الى السطر الذي به الرقم 1 وهو بداية حلقة تكرارية جديدة لكن دو تنفيذ السطور المحصورة بينهما (ويستخدم هذا السطر لتجاوز يوم الجمعة حسب ما هو مطلوب في هذا الموضوع) ============================================== Me.Controls("Date" & K + 1).Caption = Format(StartDate + I, "ddd d/m") هنا زبدة الكلام في كل حلقة تكرارية سيزداد قيمة المتغير i واحد فاذا لم يكن حاصل مجموع تاريخ البداية وقيمة المتغير i يوم جمعة فسيتم تنفيذ هذا السطر في البداية نعرف ان المتغير K تم الاعلان عنه كعدد صحيح وستكون قيمته صفر مالم يعلن غير ذلك كما نعرف ان الليبلات (التسمية) تم تسميتهن بإسم Date من 1 حتى 27 هكذا Date1 - Date2- Date3 وهكذا فبهذا السطر ستكون الليبلات وعناوينها عبارة عن تاريخ البداية مضاف اليه قيمة المتغير i ولكن بتنسيق أسم اليوم (ddd) و رقم اليوم و / و رقم الشهر هكذا 1/10 ================================================= K = K + 1 1 Next 2 End Sub هذه الاسطر كالتالي 1. تزيد قيمة K بمقدار واحد في كل حلقة تكرارية لا يكون فيها التاريخ يوم جمعة 2. بداية حلقة تكرارية من جديد 3. نهاية الكود ===================== ان شاء الله أكون وفقت في الشرح والله أعلم
  13. يالله الاساتذة الكبار جهابذة الاكسس اعجبهم العمل يبدو اني في الطريق الصحيح ولو انه طويل جداً للوصول الى ربع ربع ربع ما عندكم ============================== ان شاء الله
  14. اظنه يقصد هذا gaaamaaal صاحب المشاركة السابقه لمشاركته (سيتم تعديل الموضوع ونقل المشاركات الى الموضوع المرتبط)
  15. اخي الفاضل ضع مرفق به تصورك وستجد الحل ان شاء الله
  16. السلام عليكم رغم عدم خبرتي في الاكسس الا اني حاولت التعلم في مثالك في المثال بالضغط على التقرير سيظهر مربعي إدخال (الاول لتاريخ بداية الشهر الحالي مثال 01/10/2013) والأخر لتاريخ نهاية الشهر الحالي مثال (31/10/2013) علماً أنه بإمكانك التعديل في التاريخ الافتراضي جرب واعلمني بالنتيجة فقد حاولت الكثير حتى وصلت اليها مثال.rar
×
×
  • اضف...

Important Information