صباح حسين قام بنشر مارس 10, 2013 قام بنشر مارس 10, 2013 السلام عليكم اخزاني الاعزاء . في البدء اود ان اشير باني قد تعلمت البرمجة من خلال منتداكم واتمنى ان اجد الحل عندكم كما عوتمونا احتاج الى انشاء استعلام يقوم بجلب بيانات من جدول الاجازات ويدرجها بشكل اعمدة على ايام الشهر وقد ارفقت قاعدة بيانات مع ملف نصي اشرح فيها مشكلتي وادعو الله ان اجد الحل عندكم اجازات.rar اجازات.txt
ابوخليل قام بنشر مارس 10, 2013 قام بنشر مارس 10, 2013 من الضروري وجود بيانات مناسبة في الجداول من اجل التطبيق ورؤية النتائج
صباح حسين قام بنشر مارس 11, 2013 الكاتب قام بنشر مارس 11, 2013 شكرا لك اخي ابوخليل لتجاوبك معي سوف ارفق الملف بعد ادخال بيانات بها اجازات.rar اجازات.txt
صباح حسين قام بنشر مارس 11, 2013 الكاتب قام بنشر مارس 11, 2013 (معدل) السلام عليكم: لقد قمت بتعبئة بيانات ا الجدول حسب طلب احد الاخوان وقمت كذلك بارفاق ملف اكسيل يبين شكل النموذج الشهري بالبيانات اتمنى ان اجد الحل عندكم اجازات.rar اجازات.txt نموذج تقرير شهري.rar تم تعديل مارس 11, 2013 بواسطه صباح حسين
صباح حسين قام بنشر مارس 13, 2013 الكاتب قام بنشر مارس 13, 2013 السلام عليكم اخواني الاعزاء هل انا طرحت الموضوع بشكل مخالف لتعليمات المنتدى ام ان الحل غير ممكن اخواني لست الح في طلبي ولكني محتاج اليه لاكمل القاعدة او احاول ايجاد طريقة اخرى
ابوخليل قام بنشر مارس 13, 2013 قام بنشر مارس 13, 2013 اولا بهذه الطريقة يلزم لتطبيق الفكرة اكثر من عملية تبدأ من معرفة نهاية الاجازة ثم حصر الايام واستخراجها ثم تحويل البيانات من الوضع الرأسي الى الافقي فالعملية تحتاج الى وقت ويد خبيرة فعليك بالصبر وثانيا ما رأيك بالمتبع عموما ؟ غالب ما اطلعت عليه من البرامج تعرض تاريخ بداية الاجازة وتاريخ نهايتها والمدة بالايام وقد يزيد بعضهم فيدرج تاريخ العودة
صباح حسين قام بنشر مارس 13, 2013 الكاتب قام بنشر مارس 13, 2013 شكرا لك اخي ابو خليل لتجاوبك معي . النموذج الشهري هو نموذج متبع منذ فترة بموقع العمل ولكنني كنت استخدم اكسيل للحصول على النتيجة والمطلوب مني الان التحول الى استخدام اكسس لبناء قاعدة بيانات لشوؤن الموظفين وقد وفقت في عدد من الامور مثل ( المكافات, معلومات شخصية , ترقيات , دورات , الموقف اليومي .....) واجهتني هذه المشكلة في التقرير الشهري لدوام الموظفين . وكنت امل بالحصول غلى طريقة معينة للحصول عليه . وانا لست على عجلة من امري . اذا كانت هنالك امل في الحصول عليه .بل انت اصحاب فضل علينا نحن المبتدئين .واعلم ان البرمجة تحتاج الى الصبر . ولك ولجميع الاخوان الف تحية وتقدير
ابوخليل قام بنشر مارس 14, 2013 قام بنشر مارس 14, 2013 فالعملية تحتاج الى وقت ويد خبيرة اقصد من هذه العبارة حث اخواني الخبراء على المساعدة والمحاولة عن نفسي حاولت مع عدة ابواب ولكنها استعصت وتوصلت الى انه يمكنني تطبيق الفكرة على شخص واحد فقط فمثلا يتم اختيار السنة ثم الشهر ثم الاسم لتخرج بيانا بالايام مرقمة خلال هذا الشهر اذا كان هذا يفي بالحاجة فلعلي اجد الوقت الكافي لتحقيقه وان كنت ترى طريقة اخرى فالمجال مفتوح ايضا الموضوع مفتوح امام الاخوة الكرام ليدلوا بدلوهم
احمد عبد الناصر قام بنشر مارس 14, 2013 قام بنشر مارس 14, 2013 السلام عليكم بعد اذن استاذنا ابو خليل هذه محاولة باستخدام استعلام من خلال ملف اكسيل تحياتي +اجازات.rar
صباح حسين قام بنشر مارس 14, 2013 الكاتب قام بنشر مارس 14, 2013 شكرا لجميع الاخوة . وبالاخص للاخوان ( احمد و ابو خليل) لتجاوبهما مع الموضوع سوف اطلع على موضوعك اخي احمد وان شاء الله يكون هو المطلوب تحياتي للجميع
صباح حسين قام بنشر مارس 14, 2013 الكاتب قام بنشر مارس 14, 2013 الف الف شكر لك اخي احمد . وطريقة اكثر من رائع ومدهش . اخي العزيز اذا امكن ان تشرح لي جملة الاستعلام sSQL والطريقة الذي استطيع زيادة الاعمدة المنقولة بالاستعلام على سبيل المثال (departmen) واود ان استعمل الكود في مجالات اخرى لانه كما ذكرت رائع بكل معنى الكلمة
ابوخليل قام بنشر مارس 14, 2013 قام بنشر مارس 14, 2013 شكرا للاستاذ احمد عبد الناصر على المداخلة ومد يد المساعدة ومن فرج عن مؤمن كربة فرج الله عنه كربة من كرب يوم القيامة حل رائع وهو ما يبحث عنه السائل ولكن الحل لم يخرج من بيئة إكسل والاستاذ صباح ذكر في طلبه : والمطلوب مني الان التحول الى استخدام اكسس لبناء قاعدة بيانات لشوؤن الموظفين
احمد عبد الناصر قام بنشر مارس 15, 2013 قام بنشر مارس 15, 2013 شكرا لك استاذ أبو خليل ومن فرج عن مؤمن كربة فرج الله عنه كربة من كرب يوم القيامة اللهم اجعلنا منهم ,آمين يا رب ولكن الحل لم يخرج من بيئة إكسل الحل يعتمد علي اكواد sql لاستخراج البيانات المطلوبة بشكل دقيق و سريع ثم يترك الباقي للاكسيل و vba بمرونته ليكمل المهمة . ربما لو كان تصميم البيانات بشكل اخر لاختلف الامر , ربما امكن استخراج التقرير باستخدام sql فقط و الله اعلم. او كما نوهت حضرتك في المشاركة رقم 7 بان هناك طرق متبعة يمكن البناء عليها . تحياتي
احمد عبد الناصر قام بنشر مارس 15, 2013 قام بنشر مارس 15, 2013 السلام عليكم استاذ صباح هذا شرح مبسط لاجزاء للكود عامتا Sub dahmour_go() Application.ScreenUpdating = False 'هذه الفقرة لمحو البيانات القديمة ان وجدت و تعديل عدد ايام الشهر x = Cells(Rows.Count, 1).End(xlUp).Row If x > 5 Then Range("a6:ag" & x).ClearContents Range("ad5:ag5").ClearContents m = Day(DateSerial([b2], [b3] + 1, 0)) For x = 28 To m Cells(5, x + 2) = x Next 'هذه الفقرة للاستعلام من الاكسيس و استخراج كود الموظف و اسمه بدون تكرار بشرط ان اجازاته تقع في الشهر المراد الاستعلام عنه Dim rsData As ADODB.Recordset Dim sConnect As String Dim sSQL As String sConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ActiveWorkbook.Path & "\" & [b1] & ".mdb;Persist Security Info=True " sSQL = "select distinct x.emb_id,emb_name from ejazat as x,nformation as y where x.emb_id=y.emb_id and month(from_day)=" & [b3] & " and year(from_day)=" & [b2] & " or (x.emb_id=y.emb_id and month(from_day)<" & [b3] & " and month(from_day+moda_ejaza)>=" & [b3] & " and year(from_day)=" & [b2] & " ) or (x.emb_id=y.emb_id and month(from_day)>" & [b3] & " and month(from_day+moda_ejaza)>=" & [b3] & " and year(from_day)<" & [b2] & " and year(from_day+moda_ejaza)=" & [b2] & " ) order by x.emb_id" Set rsData = New ADODB.Recordset rsData.Open sSQL, sConnect, adOpenForwardOnly, _ adLockReadOnly, adCmdText If Not rsData.EOF Then [a6].CopyFromRecordset rsData 'هذه الفقرة لاستخراج كود الموظف و اسمه و نوع الاجازة و تاريخ البداية و عدد الايام و تاريخ النهاية 'بشرط ان اجازاته تقع في الشهر المراد الاستعلام عنه ' و هذه البيانات مؤقتة لحساب التقرير و تمحى في اخر الكود sSQL = "select x.emb_id,emb_name,ejaza_type,from_day,moda_ejaza,from_day+moda_ejaza from ejazat as x,nformation as y where x.emb_id=y.emb_id and month(from_day)=" & [b3] & " and year(from_day)=" & [b2] & " or (x.emb_id=y.emb_id and month(from_day)<" & [b3] & " and month(from_day+moda_ejaza)>=" & [b3] & " and year(from_day)=" & [b2] & " ) or (x.emb_id=y.emb_id and month(from_day)>" & [b3] & " and month(from_day+moda_ejaza)>=" & [b3] & " and year(from_day)<" & [b2] & " and year(from_day+moda_ejaza)=" & [b2] & " ) order by x.emb_id,from_day" Set rsData = New ADODB.Recordset rsData.Open sSQL, sConnect, adOpenForwardOnly, _ adLockReadOnly, adCmdText If Not rsData.EOF Then [ah6].CopyFromRecordset rsData rsData.Close End If '******************************************************** 'هنا كود لتحويل البيانات الي شكل التقرير النهائي For i = 6 To Cells(Rows.Count, 1).End(xlUp).Row For n = 6 To Cells(Rows.Count, "ah").End(xlUp).Row If Cells(i, 1) = Cells(n, 34) Then For Each c In Range("c5:ag5") If Not IsEmpty(c) Then If DateSerial([b2], [b3], c.Value) >= Cells(n, 37) And DateSerial([b2], [b3], c.Value) <= Cells(n, 39) Then Cells(i, c.Column) = Cells(n, 36).Value End If End If Next End If Next Next '************************************************************* Range("ah6:am" & Cells(Rows.Count, "ah").End(xlUp).Row).Clear End If Application.ScreenUpdating = True End Sub اولا يمكن زيادة عمود departmen لكن سيلزم التعديل في باقي اجزاء الكود . ثانيا بالنسبة لجملة sql فتعتمد علي استخراج البيانات ان كان تاريخ بداية الاجازة في الشهر الحالي و السنة الحالية او تاريخ بداية الاجازة في شهر سابق و في السنة الحالية و تاريخ نهاية الاجازة اكبر من او يساوي الشهر الحالي او تاريخ بداية الاجازة في سنة سابقة و تاريخ نهاية الاجازة يقطع الشهر الحالي للسنة الحالية ملاحظة الشهر الحالي اي الشهر المراد البحث بدللالته . تحياتي
صباح حسين قام بنشر مارس 15, 2013 الكاتب قام بنشر مارس 15, 2013 السلام عليكم . اخي العزيز احمد ارجو ان لااثقل عليك بطلبي الاخير وهو اضافة ( department ) الى ناتج الاستعلام لكون التقرير النهائي سوف يطبع لكل قسم على حدى ومن جانبي سوف احاول ان اتعمق بالكود وان اصل الى نتيجة التي اتمناها. واذا لم اتمكن من الحل . ارجو نتواصل هنا بعد يومين . تحياتي للجميع . وادعو الله العلي القدير ان يجازيكم على صالح اعمالكم وارشادكم لنا نحن المبتدئين .
أفضل إجابة احمد عبد الناصر قام بنشر مارس 15, 2013 أفضل إجابة قام بنشر مارس 15, 2013 السلام عليكم استاذ صباح جرب المرفق تحياتي +اجازات_2.rar
صباح حسين قام بنشر مارس 16, 2013 الكاتب قام بنشر مارس 16, 2013 اشكرك اخي احمد وادعو الله ان يرزقك ووالديك الخير في الدنيا والاخرة
الردود الموصى بها