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

أريد طريقة عمل فرز لأسماء المتقدمين على دورات تدريبية "آلية"


ابوآمنة
إذهب إلى أفضل إجابة Solved by jjafferr,

الردود الموصى بها

السلام عليكم 

أريد طريقة عمل فرز لأسماء المتقدمين على دورات تدريبية تكون ( آلية ) :

عوامل الفزر هي كالتالي :

الأولى : تاريخ التقديم المبكر .

الثانية : تحقيق الرغبة الأولى هو الدورة الأولى الأساسية والانتقال إلى الثانية والثالثة والرابعة والخامسة تكون الأولية للثلاثة الأولى .

 

كل دورة يدخل فيها من الجهات ( 28 مقعد ) فقط حسب التالي : 

14 من "إدارة" and "مكتب"

14 من "مدرسة"

وهذه القاعدة بعد التعديل بالمرفق

 

 

الدورات.rar

تم تعديل بواسطه saleh204
رابط هذا التعليق
شارك

  • أفضل إجابة

وعليكم السلام:smile:

 

اولا وقبل كل شيء ، يجب عليك تغيير تصميم جدول "المتقدمين" (حاليا تصميمه يناسب الاكسل) ، حتى يكون بطريقة قواعد البيانات الصحيحة ، والذي سيوفر عليك الكثير من الوقت لاحقا ،

لذا عملت لك التعديل في الجدول tbl_Training

837.Clipboard02.jpg.da6567d3688527bec32cb9447fd56781.jpg

.

انت محتاج تعمل استعلام لكل جهة (يعني 3 استعلامات) ، ثم تستعمل الامر Union لتجمع الاستعلامات الثلاث في استعلام واحد ،

ولكن المشكلة هي العدد المطلوب ، فلا يمكننا ان نجعل العدد رقم متغير في الاستعلام ، وهو ما يشار الى بـ TOP n (اذا العدد معروف مسبقا ، فالاستعلامات الثلاث سهله ، ثم نعمل استعلام Union يجمعها) ،

لذا وجب علينا ان نعمل الاستعلامات في الكود


Private Sub cmd_Training_Records_Click()
    
    mySQL1 = "SELECT TOP " & Forms!Q1!iSchool & " الوقت, الاسم, الجهة, الدورة"
    mySQL1 = mySQL1 & " FROM tbl_Training"
    mySQL1 = mySQL1 & " WHERE الجهة = 'مدرسة' And الدورة ='" & [Forms]![Q1]![T1] & "'"
    mySQL1 = mySQL1 & " ORDER BY الوقت"
    'Debug.Print mySQL1
    
    mySQL2 = "SELECT TOP " & Forms!Q1!iAdmin & " الوقت, الاسم, الجهة, الدورة"
    mySQL2 = mySQL2 & " FROM tbl_Training"
    mySQL2 = mySQL2 & " WHERE الجهة = 'إدارة' And الدورة ='" & [Forms]![Q1]![T1] & "'"
    mySQL2 = mySQL2 & " ORDER BY الوقت"
    'Debug.Print mySQL2
    
    mySQL3 = "SELECT TOP " & Forms!Q1!iOffice & " الوقت, الاسم, الجهة, الدورة"
    mySQL3 = mySQL3 & " FROM tbl_Training"
    mySQL3 = mySQL3 & " WHERE الجهة = 'مكتب' And الدورة ='" & [Forms]![Q1]![T1] & "'"
    mySQL3 = mySQL3 & " ORDER BY الوقت"
    'Debug.Print mySQL3
    
    mySQL_union = mySQL1 & " union all " & mySQL2 & " union all " & mySQL3
    'Debug.Print mySQL_union
    
    Me.f1.Form.RecordSource = mySQL_union
    Me.f1.Form.OrderBy = "الجهة, الوقت"
    Me.f1.Form.OrderByOn = True
    
End Sub

.

ويكون الاستعلام الاخير هو مصدر بيانات النموذج الفرعي

837.Clipboard01.jpg.90645d3dd16911f752b6facbaf16dcc8.jpg

.

جعفر

837.الدورات.accdb.zip

  • Like 3
رابط هذا التعليق
شارك

أكون عاجز عن شكرك يا أستاذي الفاضل 

فعلاً كنت اجلس وقت طويل لمفاضلة أسماء المتقدمين 

الآن بلمسة زر تظهر النتائج في اقل من ثواني .

شيء مبهر أستاذي الفاضل جعفر:fff:

لك مني الدعاء أن يعطيك خيري الداريين في الدنيا والآخرة 

  • Like 1
رابط هذا التعليق
شارك

5a4800bf0d004_(7).png.d67f2936362cf523dea9ffd80dc9d5d9.png

 

ما فكرة هذا الزر

هل يقوم باستيراد بيانات المتقدمين 

لكن بعد التجربة وإفراغ حقول جدول tbl_Training  تظهر السجل فارغ 

هل بالإمكان يقوم الزر بجلب البيانات من جدول المتقدمين إلى جدول tbl_Training 

تم تعديل بواسطه saleh204
رابط هذا التعليق
شارك

وعليكم السلام

هذا الزر هو الذي قام بتنظيم الدورات ونقلها إلى حقل واحد.

لاستخدامه:

1. أعمل نسخه من جدول المتقدمين، واسميه tbl_Training ،

2. غيّر اسم الحقل دورة1 الى دورة ،

3. اضغط على هذا الزر ،

4. ارجع الى الجدول tbl_Training ، سترى السجلات الجديدة، وهي نسخة من الدورات دورة2 الى دورة5 تم تصفيفها في حقل دورة، مع الأخذ في الاعتبار التاريخ والأيام و الجهة ،

5. احذف حقول دورة2 الى دورة5.

 

بعد تحويل الجدول بهذه الطريقة، ينتهي دور النموذج، ولا تستعمله مرة ثانية.

 

جعفر

  • Like 2
رابط هذا التعليق
شارك

6 دقائق مضت, jjafferr said:

وعليكم السلام

هذا الزر هو الذي قام بتنظيم الدورات ونقلها إلى حقل واحد.

لاستخدامه:

1. أعمل نسخه من جدول المتقدمين، واسميه tbl_Training ،

2. غيّر اسم الحقل دورة1 الى دورة ،

3. اضغط على هذا الزر ،

4. ارجع الى الجدول tbl_Training ، سترى السجلات الجديدة، وهي نسخة من الدورات دورة2 الى دورة5 تم تصفيفها في حقل دورة، مع الأخذ في الاعتبار التاريخ والأيام و الجهة ،

5. احذف حقول دورة2 الى دورة5.

 

بعد تحويل الجدول بهذه الطريقة، ينتهي دور النموذج، ولا تستعمله مرة ثانية.

 

جعفر

هناك تشابه في الاسماء في الجدولين 

رابط هذا التعليق
شارك

قلت لك اني عملته !!

لازم تغير اسم الجدول الموجود tbl_Training الى اسم آخر، وبعدين تقوم بهذا العمل.

طبعا، اذا بدأت استعمال البرنامج، فيجب عليك حذف جدول المتقدمين، والعمل فقط على الجدول tbl_Training

  • Like 1
رابط هذا التعليق
شارك

وعليكم السلام:smile:

 

الاربع اسطر الاخيرة:

2. نعمل الاستعلام qry_NewQry من جملة mySQL_Union ،

3. نصدر بيانات الاستعلام الى D:\Test\abc.xls ،

4. نحذف الاستعلام.


Private Sub cmd_Training_Records_Click()
    
    mySQL1 = "SELECT TOP " & Forms!Q1!iSchool & " الوقت, الاسم, الجهة, الدورة"
    mySQL1 = mySQL1 & " FROM tbl_Training"
    mySQL1 = mySQL1 & " WHERE الجهة = 'مدرسة' And الدورة ='" & [Forms]![Q1]![T1] & "'"
    mySQL1 = mySQL1 & " ORDER BY الوقت"
    'Debug.Print mySQL1
    
    mySQL2 = "SELECT TOP " & Forms!Q1!iAdmin & " الوقت, الاسم, الجهة, الدورة"
    mySQL2 = mySQL2 & " FROM tbl_Training"
    mySQL2 = mySQL2 & " WHERE الجهة = 'إدارة' And الدورة ='" & [Forms]![Q1]![T1] & "'"
    mySQL2 = mySQL2 & " ORDER BY الوقت"
    'Debug.Print mySQL2
    
    mySQL3 = "SELECT TOP " & Forms!Q1!iOffice & " الوقت, الاسم, الجهة, الدورة"
    mySQL3 = mySQL3 & " FROM tbl_Training"
    mySQL3 = mySQL3 & " WHERE الجهة = 'مكتب' And الدورة ='" & [Forms]![Q1]![T1] & "'"
    mySQL3 = mySQL3 & " ORDER BY الوقت"
    'Debug.Print mySQL3
    
    mySQL_union = mySQL1 & " union all " & mySQL2 & " union all " & mySQL3
    'Debug.Print mySQL_union
    
    Me.f1.Form.RecordSource = mySQL_union
    Me.f1.Form.OrderBy = "الجهة, الوقت"
    Me.f1.Form.OrderByOn = True
    
    Dim qdf As QueryDef
    Set qdf = CurrentDb.CreateQueryDef("qry_NewQry", mySQL_union)
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "qry_NewQry", "D:\Test\abc.xls"
    CurrentDb.QueryDefs.Delete "qry_NewQry"
    
End Sub

 

جعفر

  • Like 1
رابط هذا التعليق
شارك

  • 2 years later...
4 دقائق مضت, jjafferr said:

السلام عليكم اخي صالح 🙂

 

شو اللي جاب هذا الموضوع على بالك بعد حوالي سنتين :biggrin:

 

جعفر

حتى نراه ونتعلم اخى واستاذى العزيز جعفر 😀

جزاكم الله كل خير اخوانى واساتذتى

تقبلوا تحياتى

 

رابط هذا التعليق
شارك

دائما نتذكر حلولك المبدعة يا معلمنا جعفر 

و في الحقيقة أعمل على مشروع تدريب وتذكرت هذا الموضوع فرجعت له . 

ما نستغني عن لمساتك الجعفرية :biggrin:

 

ولي طلب لو سمحت وهو يراودني من زمان .

نريد إصدارك الثاني من مسقط التقارير

مع إضافة  استيراد وتصدير البيانات إلى اكسيل  .

  • Like 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information