اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

نجوم المشاركات

  1. ابو جودي

    ابو جودي

    أوفيسنا


    • نقاط

      12

    • Posts

      6,503


  2. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      11

    • Posts

      11,717


  3. صالح حمادي

    صالح حمادي

    أوفيسنا


    • نقاط

      9

    • Posts

      1,745


  4. Eng.Qassim

    Eng.Qassim

    الخبراء


    • نقاط

      6

    • Posts

      2,296


Popular Content

Showing content with the highest reputation on 15 ينا, 2022 in all areas

  1. هذا المطلب قد تطرق له من قبل اخي الاستاذ جعفر اطلب من اخواني واحبتي الاعزاء تكرما وتفضلا ان لا تكون الاجابة ضمن المرفق فقط مثلا بأن يقوم بالتعديل على المرفق ثم يرفعه فضرر هذه الطريقة فادح ويتضح في قادم الايام فيما لو تم حذف المرفق لاي سبب من الاسباب ومن المعلوم ان النصوص اكثر ثباتا وبقاء ايضا يصعب على من يعمل من هاتفه ويطلب المعلومة السريعة واعجبه السؤال ويحب الاطلاع على الحل فالمطلوب هو وجوب عرض الحل كنص سواء كان كود او شرح مبسط لما تم عمله الايضاح والشرح قد لا يتعدى سطرا واحدا .. ولكنه يجب ان يعطي تصورا صحيحا لطريقة الحل . بارك الله في اعمالكم وجهودكم وكتبها في موازين اعمالكم .
    5 points
  2. تفضل Dim i As Integer, R As Integer Dim x As String, xx As String Dim rs As Recordset Set rs = Me.frm_T1.Form.RecordsetClone rs.MoveFirst R = rs.RecordCount For i = 1 To R If rs!newline = True Then x = rs!nots & " " & rs!TEXTT xx = " " & xx & " " & x End If rs.MoveNext Next Me.tsmya.Caption = xx test2.accdb
    3 points
  3. تفضل ....... استبدل الكود بهذا ..... On Error Resume Next Dim strSQL As String Set db = CurrentDb strSQL = "SELECT [ورقة1$].[اسم الطالب], [ورقة1$].الصف, [ورقة1$].الشعبه, [ورقة1$].الديانه, [ورقة1$].النوع, * FROM [ورقة1$] IN '" & TheFile & "'[Excel 5.0;HDR=NO;IMEX=0;];" Set qdf = db.CreateQueryDef("kanory", strSQL) DoCmd.SetWarnings False DoCmd.RunSQL " SELECT kanory.[اسم الطالب], kanory.الصف, kanory.الشعبه, kanory.الديانه, kanory.النوع INTO Degrees FROM kanory;" DoCmd.SetWarnings True MsgBox "تم" ملفك ... 299.ImportDegrees2022.accdb
    2 points
  4. بارك الله فيكم اخوتي واحبتي ، واحسن اليكم . لمدكم يد العون لأخيكم في شرحك الاخير اخ عمر اتضحت الصورة تماما .
    2 points
  5. السلام عليكم ورحمة الله وبركاته كنت قد وضعت هذا المثال في منتدى الفريق العربي للبرمجة ، وأخي ابو الآ ما قصر وعمل نسخة منه الى هذا المنتدى (انا لم اكن من روّاد هذا المنتدى حينئذٍ) على هذا الرابط: http://www.officena.net/ib/topic/58001-منقول-هدية-برنامج-تصدير-بيانات-من-جداولاستعلامات-اكسس-الى-اكسل/ والآن ، وبعد عمل مجموعة تعديلات عليه واصبح في نسخته الخامسة ، واهمها ان البرنامج اصبح يعمل على 32بت و 64بت ، رأيت ان اضع البرنامج بين يديكم طريقة العمل هي كما في الرابط السابق (ولكن للأسف لا يمكن رؤية الصور التوضيحية هناك) ، فعليه ، سأقوم بعمل نسخة منه هنا مع الصور التوضيحية: رأيت الكثير من الاسئلة حول تصدير بيانات الاكسس الى الاكسل ، وكل سؤال يختلف عن غيره بطريقة او اخرى ، فحبيت ان اضع بين يديكم برنامج اشتغلت عليه ، واتمنى من الله سبحانه وتعالى انه يقدر يخدم الكل البرنامج سهل الاستعمال ، فكل المطلوب في الواجهة ، ولا تحتاج الذهاب للكود اولا: الواجهة: 1. تختار من مربع السرد ، جدول او استعلام ، 2. على اساس الاختيار في رقم 1 ، ستظهر لك قائمة باسماء الجداول او الاستعلامات في برنامجك ، 3. اسم ملف الاكسل المراد حفظه به ، ومجلد التخزين ، فتلقائيا يكون في نفس مجلد البرنامج ، 4. هنا تكتب اسم صفحة الاكسل التي تريدها (انظر الصورة في الاسفل) **1** تستطيع ان تصدر اي عدد من الصفحات الى اكسس (طبعا التصدير يكون باستعمال البرنامج عدة مرات ، في كل مرة تستخدم اسم صفحة جديدة) ، **2** تستطيع ان تصدر بيانات جديدة الى نفس الصفحة في اكسل (طبعا التصدير يكون باستعمال البرنامج عدة مرات ، في كل مرة تستخدم *الادخال من خانة* اسفل الخانات الموجودة في الاكسل) ، 5. تستطيع بدء تصدير البيانات الى اي خانة في اكسل مثل A2 او C5 او اي خانة اخرى ، **3** تستطيع ان تصدر بيانات جديدة الى نفس الصفحة في اكسل (طبعا التصدير يكون باستعمال البرنامج عدة مرات ، في كل مرة تستخدم *الادخال من خانة* اسفل الخانات الموجودة في الاكسل) ، 6. تستطيع ان تحفظ ملف الاكسل بالصيغ التاليه: "xls" او "xlsx" او "xlsm" او "xlsb" او "csv" او "txt" ، والصيغتين الاوليتين هما الاهم ، والصيغتين الاخيرتين بهم قيود معينة ، 7. تستطيع ان تختار المجلد الذي تريده ، مع كتابة اسم الملف المناسب لك (انظر الرقم 3 اعلاه) ، 8. تستطيع تصدير البيانات مع اسماء الحقول (في الاكسس) ، وتستطيع تصدير البيانات مع عناوين/مسميات الحقول (في الاكسس) ، نلاحظ اعلاه ، بان الجدول elemnts لا يحتوي على عناوين/مسميات الحقول بالعربي ، بينما الجدول elemnts2 يحتوي عليها ، وتستطيع تصدير البيانات فقط بدون اسماء الحقول ، 9. تستطيع ان تصدر البيانات الى ملف اكسل فيه بيانات سابقة ، وهنا تستطيع الاستفادة من الارقام 4 و 5 اعلاه ، او ان تحذف ملف الاكسل الموجود حاليا بنفس الاسم ، وتبدأ تصدير ملف جديد ، 10. بعد تصدير البيانات الى اكسل ، هل تريد إحتواء وتوسيع كل الاعمدة فيه ، حتى ترى كل البيانات بدون الحاجة الى توسيع كل عمود على حدة ، او لا تريد توسيع الاعمدة. 11. الزر الذي يقوم بعملية تصدير البيانات الى اكسل ، حسب الاختيارات اعلاه ، مع ملاحظة: يجب تعبئة الحقول داخل المربعات الحمراء ، اما بقية الحقول فإختيارية ، 12و 13. لجعل هذا البرنامج يعمل على اي من برامجكم الحاليه ، يجب تصدير النموذج frm_Export_to_Excel و الوحدة النمطية fFolder_Dialog اليها. طبعا هناك أفضلية تصدير البيانات من الاستعلام ، حيث تستطيع ان تتحطم بالبيانات المطلوب تصديرها. ملاحظات؟ اخطاء/عطل؟ إضافات؟ انا في الخدمة ، قدر المستطاع جعفر 7.Export_to_Excel_05.1.mdb.zip
    1 point
  6. ابشر سوف اقوم بحذف الداتا المهمه واضيف اى بيانات اخرى انا كده كده كنت عاوز انشر المشروع بعد ما انتهي من البرمجه ليه ومن ثم التنسيق النهائي حتى يكون اداة قد تساعد من يحتاجه هنا واسف انى سهرت حضرتك وانا ايضا كنت هنام لو ما وجدت حل ^_^ باصحه على 5 الفجر ^_^
    1 point
  7. استاذ عمر .. ممكن تبعتلي البرنامج الرئيسي ؟ بس مش اواعدك اليوم .. لاني ح نام لان بكرى عندي دوام انا حابب اكمل المشروع مع حضرتك
    1 point
  8. بتعطيني خطأ ... لكن لما جربت الكود التالي اشتغل صحيح If Me.day1.Text = "Thursday" Or Me.day1.Text = "الخميس" Then
    1 point
  9. والله مافكرت فيها .. عفارم عليك
    1 point
  10. وعليكم السلام ورحمة الله وبركاته تفضل اخى للكشف عن القيم المكررة.xlsx
    1 point
  11. لماذا ظهر لك بالسالب؟ هذا عندي الظاهر انك غيرت بالكود..بصراحة انا عملت الكود حسب فهمي للدوام
    1 point
  12. بالظبط كده الله ينور عليك ^_^ لان اذا كانت كل المعلومات فى نفس الجدول ايه فائدة الاستعلامات غير لما تكون المعلومات متوزعه صح على الجداول بيكون اسهل فى التعامل معها بالاستعلامات وحصولك على ما تريد
    1 point
  13. وعليكم السلام 🙂 في الواقع صار لي بعض الوقت وانا افكر في الموضوع (قبل ان تضع مشاركتك) ، وقد قمت بتجميع الافكار والمصادر ، واعتقد انه ان شاء الله سيكون فيه هذا البرنامج ، لشدة الطلب عليه 🙂 وان شاء الله سأضع رابط الموضوع هنا 🙂 جعفر
    1 point
  14. حابب اعطيك ما تعلمته هنا من خلاصة الافكار واكيد اساتذتى هنا بيعطوك الاكثر والمفيد مما قد اعطيك لتجنب عدم تكرار البيانات اجعل له مرجع واحد مثلا فى مثالك هناك مصاريف وجدول اخر دفعات هنا لازم تكون علاقه بين الجداول وربطها ببعض حتى لا يحدث تكرار لا داعي له وايضا تربط المعلومات ببعض طبعا انا لسه هنا مش فاهم ايه نوعية البيانات وكيف قمت بانشاء جدول لكن لنفترض ان المصاريف والدفعات لعاملين عندك فى الشركه هنا انت بتعمل جدول للعاملين وتجعل فيه ( معرف للعامل "رقم لا يتكرر" .. هو هيكون المرجع لجميع البيانات ) وثم اسم العاملين واى بيانات حابب تضيفها وعند تكوين جدول المصاريف (تبدأ برقم المعرف للعامل ثم نوع المصروف و بيانه والمبلغ والتاريخ وغيرها من البيانات وايضا هتفعل نفس الشئ مع جدول الدفعات وتنشئ علاقه بين الجداول الثلاث وهيكون راسها طبعا جدول العاملين والفروع هو جدول المصاريف والدفعات ونوع العلاقة رأس باطراف لان المصاريف متكرر والعامل ثابت هنا هتلاقى ان الجداول مرتبطه ببعض والبيانات سهله التجميع والاستعلام وكل ما يترتب عليها وطبعا هناك اكثر من نوع فى العلاقات بين الجداول مثل ( علاقة رأس باطراف كما فى مثالى السابق و علاقة رأس ب رأس و علاقة اطراف باطراف .. ) وطبعا كل نوع من العلاقات لها استخداماه وغرض من تفعيلها. هذا ما فكرت فيه فى هذه اللحظه وطبعا هتلاقي باقى الاخوه والاساتذه هنا هيفيدوك باكثر تنظيميه واكثر توضيح للمعلومات
    1 point
  15. أذا كانت هذه طبيعة عملك و تعمل بأستمرار على هذا البرنامج . . لذلك فأن البداية واساس العمل تحتاج حقول أضافية في الجدول المجموعه . مثلاً . A.B.C.D تحتاجه للفرز والتصفية في النموذج المستمر حقل من نوع نعم لا . لتحديد البيانات المراد التعديل عليها و طباعتها و من الفورم الرئيسي قم بأنشاء مربع نص تكتب فيه عدد السجلات المطلوبة أضافته و مربع قائمة تختار منه المجموعه . . و بالكود أو بالأستعلام تقوم بأضافة سجلات الحقلين للجدول . وبعد ذلك تكمل بأستعلامات التحديث الحقول المتبقية . عن طريق مربع نص أو قائمة أو تخزن البيانات الأساسية في جدول وتستخدم دالة لجلبها و تعبئة المربعات و بهذه الطريقة تتحكم بالبيانات مثل ماتريد لأنه لديك معيار للفرز و لديك حقل من نوع نعم لا . و نموذج مستمر لعرض البيانات وبالتوفيق
    1 point
  16. وعليكم السلام.. جرب المرفق..بعد كل 50 رقم يكون الحقل فارغ وتعطيه رقم يبدأ من عنده في التزايد ترقيم تلقائى.accdb
    1 point
  17. 1 point
  18. اتفضل المرفق بثلاث طرق توليد سجلات.accdb
    1 point
  19. اتفضل هذا التعديل Public Sub GenrateRecords(ByRef FixedCode As Boolean) Dim rec As Recordset, n As Byte Set rec = CurrentDb.OpenRecordset("CodeGenerator", dbOpenDynaset, dbSeeChanges) With rec For n = txtQTY1 To txtQTY2 .AddNew If Not FixedCode Then !Code = txtCode & n Else !Code = txtCode !DoorType = txtDoorType !Size = txtSize !Handing = txtHanding !HS = txtHS !QTY1 = txtQTY1 !QTY2 = txtQTY2 .Update Next End With End Sub وفى حالة ان الـ Code ثابت استخدم الكود الاتى Call GenrateRecords(True) وفى حالة ان الـ Code متغير ويجمل الرقم التسلسلى استخدم الكود الاتى Call GenrateRecords(False)
    1 point
  20. 1 point
  21. تجربة اضافية برجاء فتح نموذج frmReadQR وعمل استعراض لرمز الاستجابة الذى تم انشاءه E-Invoicing.zip
    1 point
  22. الحل النهائى والامثل لانشاء رمز الاستجابة السريع والمتوافق مع هيئة الزكاة للملكة العربية السعودية بدعم مكتبات الجافا والـ NET Framework 4.7 ميزات القاعدة حمل ملفاتى الهامة داخل القاعدة وبذلك لن يتم فقدانها مطلقا لاى سبب الا بفقد القاعدة نفسها عند نقل القاعدة لاى جهاز يتم وضع الملفات بتحميلها من القاعدة الى الجهاز اليا فى مسار القاعدة فلن يشغل بال المستخدم اى شئ بخصوص ملفات المكتبات عند عدم تسجيل المكتبات يتم ذلك اليا دون ادنى تدخل من المستخدم يتم فتح الملف الدفعى اليا فى حالة عدم تسجيل المكتبات وهو يعيد تشغيل نفسه كمسؤل ويقوم باللازم عند الانتها للملف الدفعى من التسجيل للمكتبات يعيد فتح القاعدة اليا واغلاق نفسه تحميل القاعدة من هنا
    1 point
  23. السلام عليكم ورحمة الله وبركاته وانا ايضا اشارك استاذنا أبو خليل ما قال ففهم السؤال هو نصف الاجابة كما قيل ولكن اعتقد ان الأخ عمر يريد ان يضيف سجلات متعددة الي الجدول بنفس البيانات ويكون المتغير هو الرقم المتسلسل وعدد السجلات المطلوبة هو الرقم الذي يحدده في النهاية. ان كان هذا هو المطلوب فخذ تلك الوحدة النمطية وجرب ووافنا بالنتائج Public sub GenrateRecords(byval tbl as string,byval Rfrist As byte,byval Rend As byte) Aim rec As Recordset,n as byte set rec = CurrentDb.OpenRecordset(tbl, dbOpenDynaset, dbSeeChanges) With rec for n = Rfrist To Rend 'هنا رقم اول سجل وآخر سجل تريد ادراجه .AddNew !field_ID = "String" & n 'string = البادئة النصية التي تريد !field1 = control1 'بدأ من هذا السطر اسماء الحقول في الجدول وما يقابلها بالنموذج !field2 = control2 !field3 = control3 !field4 = control4 .update next end with End Sub وتستدعيها هكذا Call GenrateRecords ("Table Name",1,15) بعد تغير ما يلزم تغيرها بالوحدة حسب مسميات الحقول لديك
    1 point
  24. على كل حال هذه فكرتى ان كنت قد فهمت الموضوع توليد سجلات.accdb
    1 point
  25. اولا يوجد ثغرة عند نقر زر جديد ، والجهاز جديد فعلا حيث يطالب بادخال التاريخ واذا ادخلت التاريخ يتم الحفظ على حقول خالية سوى التاريخ والمفروض ان يتم فتح الحقول المغلقة بمجرد النقر اذا كان الجهاز جديد بالنسبة للاعارة فانا ارى او بمعنى اصح لو كنت اعمل على البرنامج لجعلت الاعارة ضمن هذا الفورم استدراك مع الاعتذار ... عند الضغط على زر حفظ وليس زر جديد
    1 point
  26. العفو منكم استاذى ما اقدمه ملك للجميع واطلقوا العنان لافكاركم وشبوه على روعة الهدوء عمل ولا اروع جزاكم الله خيرا
    1 point
  27. طيب رجاء جرب المرفق الاتى تم تناول التعامل مع تنسيق الوقت بطريقة اخرى وللعلم انا جربته وما بيظهر عندى انه متوافق على تطبيقين لان دفتر مو متوفر ولم اجده على متجر بلاى E-Invoicing.zip
    1 point
  28. السلام عليكم ورحمة الله استخدم هذه المعادلة و لا تتعجل النتيجة حتى تصل الى آخر خلية =IF(ISNUMBER(VALUE(A6));G7;A6)
    1 point
  29. السلام عليكم تفضل أخي الكريم ربما! Split_names in one cell (1).xlsm
    1 point
  30. جزانا الله واياكم وكل وامة محمد صل الله عليه وسلم خير الجزاء ان شاء الله انا ما لى علاقة بالتصميم نهائى ولا اعرف عنه شئ فصاحبه ادرى بافكاره .... أهل مكة أدرى بشعابها فقط قمت بتحقيق المطلوب على المرفق وهذا تعديل جديد للعمل بطريقة عكسية فى حالة الغاء التاشير Microsoft Access3.zip
    1 point
  31. السلام عليكم ورحمة الله استخدم هذه العبارة ActiveCell.Offset(1, 0).Select بدلا من هذه العبارة Range("A2").Select
    1 point
  32. الغاء وتمكين عمل زر الـ Shift يتناسب مع جميع تنسيقات قواعد البيانات ولو كانت قواعد البيانات المحمية بكلمة مرور المرفق يتناسب مع كلتا النواتان 32 , 64 Bit تمكين الشفت.mdb
    1 point
  33. النموذج الخامس : قائمة مطوية وأزرار فرعية ... وفيها جمع بين فكرتي النموذجين الثاني والثالث ... بـالستايل الأسود لمحبي الستايلات الغامقة 🙂 همسة في أذن الخبراء : كيف أجعل القوائم تمتد إلى آخر النموذج من جهة اليمين عند طي الأزرار ؟ وهنا التحميل لكل شخص جميل 🙂 : ‏‏صفحة رئيسية مطورة - النموذج الخامس.accdb
    1 point
  34. المرفق رقم ( 2 ) فى المرفق الاول تحدثنا عن التشفير هذا المرفق يحتوى فقط على الجداول اللازمة لانشاء نظام الصلاحيات يختوى المرفق على - جدول UsystbllvlControlForms هذا الجدول الخاص بادراج اسماء النماذج المراد تطبيق صلاحيات الفتح والاضافة والتعديل والحذف عليها - جدول UsystbllvlGroup هذا الجدول الخاص باضافة اسماء المجموعات التى نريد عمل الصلاحيات لها - جدول UsystbllvlQuestions هذا الجدول الخاص باضافة اسئلة الأمان التى سوف يقوم المستخدم بإختيارها والإجابة عليها اثناء تقديم طلب التسجيل والتى سوف تمكنه من استعادة كلمة المرور فى حالة نسيان كلمة المرور - جدول UsystbllvlRegistrationUsers هذا الجدول الذى سوف يتم اضافة بيانات المستخدمين فيه والتى تحتاج قيما بعد لتفعيلها من قبل مسئول النظام -جدول UsystbllvlUsers جدول بيانات المستخدمين SecurityLevelGroup.mdb
    1 point
  35. السلام عليكم ورحمة الله وبركاته أنصحك بالعمل على خمسات: https://khamsat.com/?r=439506 أسأل الله تعالى لك التوفيق 🙂
    1 point
  36. الدرس الحادي عشر: جمل SQL هذا الدرس مخصص لشرح جمل SQL: Create: نستخدم هذه الجملة لإنشاء جدول جديد و طريقة كتابة الجملة كالتلي: Create Table table_name (field1 type_field, field2 type_field); table_name : اسم الجدول المراد إنشاؤه field1, field2 ....: أسماء الحقول type_field : نوع الحقل مثال : الكود التالي يقوم بإنشاء جدول اسمه salah و به حقلين id و nname Dim req As String req = "create table salah (id integer, nname string(12));" DoCmd.RunSQL req نستخدم الكود Docmd.RunSQL من أجل تنفيذ جمل SQL Drop: نستخدم هذه الجملة لحذف جدول معين و طريقة كتابة الجملة كالتلي: Drop Table table_name; table_name : اسم الجدول مثال : الكود التالي يقوم بحذف جدول اسمه salah Dim req As String req = "Drop Table salah;" DoCmd.RunSQL req Alter: نستخدم هذه الجملة للتعديل على تصميم جدول معين بإضافة حقول جديدة أو حذف حقول موجودة و طريقة كتابة الجملة كالتلي: Alter Table table_name Add Column new_field type_field; table_name : اسم الجدول new_field: اسم الحقل الجديد type_field: نوع الحقل الجديد مثال1 : الكود التالي يقوم بإضافة حقل جديد اسمه adress في جدول salah Dim req As String req = "Alter Table salah Add Column adress string;" DoCmd.RunSQL req مثال2 : الكود التالي يقوم بحذف حقل اسمه adress في جدول salah Dim req As String req = "Alter Table salah Column Drop adress;" DoCmd.RunSQL req Select: نستخدم هذه الجملة لاستخراج مجموعة سجلات من جدول معين (استعلام) و طريقة كتابة الجملة كالتلي: Select * table_name Where condition; table_name : اسم الجدول *: تعني اظهار جميع الحقول و يمكن كتابة بعض الحقول في مكانها condition: الشرط الذي يوضع لاستخراج السجلات مثال : الكود التالي يقوم بإستخراج السجل الذي رقمه (ID) يساوي 3 في جدول salah Dim req As String req = "select * from salah where id=3;" Me.RecordSource = req السطر الأخير معناه نجعل مصدر السجلات لنموذج الحالي هو الاستعلام req Delete: نستخدم هذه الجملة لحذف مجموعة سجلات من جدول معين و طريقة كتابة الجملة كالتلي: Delete table_name Where condition; table_name : اسم الجدول condition: الشرط الذي يوضع لاستخراج السجلات مثال : الكود التالي يقوم بحذف السجل الذي رقمه (ID) يساوي 3 في جدول salah Dim req As String req = "Delete From salah where id=3;" DoCmd.RunSQL req Insert: نستخدم هذه الجملة لإضافة سجل جديد إلى جدول معين و طريقة كتابة الجملة كالتلي: INSERT INTO table_name ("column1", "column2", ...) VALUES ("value1", "value2", ...) مثال : الكود التالي يقوم بإضافة سجل جديد لجدول salah Dim req As String req = "insert into salah1 (id, nname) values (11,'أوفيسنا');" DoCmd.RunSQL req Update: نستخدم هذه الجملة لتغيير قيمة سجل في حقل معين لجدول ما و طريقة كتابة الجملة كالتلي: Update table_name Set field='value' Where condition; مثال : الكود التالي يقوم بتعديل قيمة الحقل nname إلى 'محسن' في السجل الذي رقمه (id) 3 بالجدول salah Dim req As String req = "update salah set nname='محسن' where id=3;" DoCmd.RunSQL req
    1 point
  37. الدرس العاشر: دوال تجميع المجال هذا الدرس مخصص لشرح دوال تجميع المجال: DAvg: تستخدم هذه الدالة من أجل استخراج القيمة المتوسطة لمجموعة سجلات بحقل معين في جدول. DAvg(field, table, condition) field: اسم الحقل المراد حساب قيمته المتوسطة table: اسم الجدول الذي به الحقل condition: الشروط أو المعايير و هي اختيارية و ليست ضرورية DCount: تستخدم هذه الدالة لحساب عدد الجلات في جدول معين. DCount(field, table, condition) DFirst: تستخدم هذه الدالة لاستخراج السجل الأول في جدول معين. DFirst(field, table, condition) DLast: تستخدم هذه الدالة لاستخراج السجل الأخير في جدول معين. DLast(field, table, condition) DLookUp: تستخدم هذه الدالة لاستخراج قيمة حقل معين من جدول ما. DLookUp(field, table, condition) DMax: تستخدم هذه الدالة لاستخراج القيمة القصوى لحقل معين في جدول ما. DMax(field, table, condition) DMin: تستخدم هذه الدالة لاستخراج القيمة الدنيا لحقل معين في جدول ما. DMin(field, table, condition) DStDev: تستخدم هذه الدالة لاستخراج الانحراف المعياري لمجموعة سجلات بحقل معين في جدول ما. DStDev(field, table, condition) DSum: تستخدم هذه الدالة لحساب مجموع قيم مجموعة سجلات بحقل معين في جدول ما. DSum(field, table, condition)
    1 point
  38. الدرس التاسع: دوال الرياضيات السلام عليكم. نعود بعد مدة من الإنقطاع لنكمل ما بدأناه من هذه الدروس. هذا الدرس مخصص لشرح دوال الرياضيات: Abs: تستخدم هذه الدالة من أجل استخراج القيمة المطلقة لعدد. Abs(«رقم») Abs(-10)=10 Abs(10)=10 Cos: تستخدم هذه الدالة لاستخراج جيب تمام الزاوية. Cos(«الزاوية») pi = 3.14159265358979 Cos(pi/3)=0.5 ملاحظة: قيس الزاوية يكون بالراديان 3.14159265358979 rad = 180° Sin: تستخدم هذه الدالة لاستخراج جيب الزاوية. Sin(«الزاوية») pi = 3.14159265358979 Sin(pi/6)=0.5 Tan: تستخدم هذه الدالة لاستخراج ظل الزاوية. Tan(«الزاوية») pi = 3.14159265358979 Tan(pi/4)=1 Exp: تستخدم هذه الدالة لارجاع عدد مزدوج يحدد قيمة أساس اللوغاريتم الطبيعي مرفوع لقيمة معينة. Exp(«رقم») Exp(10)=22026.4657948067 Int: تستخدم هذه الدالة لاستخراج الجزء الصحيح من عدد. Int(«رقم») Int(4.51) =4 Sqr: تستخدم هذه الدالة لحساب الجذر التربيعي لعدد. Sqr(«رقم») Sqr(16)=4 Log: تستخدم هذه الدالة لحساب اللوغاريتم الطبيعي لعدد. Log(«رقم») Log(10)=2.30258509299405 Rnd: تستخدم هذه الدالة لتوليد رقم عشوائي من نوع مفرد. Rnd(«رقم») Rnd(2)=0.7671117 Rnd(2)=0.05350453 Round: تستخدم هذه الدالة لتقريب عدد عشري إلى عدد محدد من الفواصل العشرية. Round(«الدقة», «الرقم») Round(12.364,1)=12.4 Round(12.364,2)=12.36 Sgn: تستخدم هذه الدالة لإرجاع عدد صحيح يشير إلى رقم العدد. بحيث: يعيد 1 إذا كان العدد أكبر من الصفر (0) يعيد 0 إذا كان العدد يساوي الصفر (0) يعيد -1 إذا كان العدد أصغر من الصفر (0) Sgn(«رقم») Sgn(12)=1 Sgn(0)=0 Sgn(-3)=-1 Fix: تستخدم هذه الدالة لإرجاع الجزء الصحيح لعدد. Fix(«رقم») Fix(12.56)=12
    1 point
  39. الدرس الثامن: دوال الرسائل هذا الدرس مخصص لشرح دوال الرسائل: MsgBox: تستخدم هذه الدالة من أجل عرض رسالة في مربع حوار. MsgBox (سياق, ملف التعليمات, العنوان, أزرار , النص) النص: (مطلوب) هو نص الرسالة التي ستعرض في مربع الحوار أزرار: (اختياري) هو تعبير رقمي يحدد نوع الازرار التي يجب ان تعرض العنوان: و يمثل عنوان مربع الحوار ملف التعليمات:(اختياري) تعبير سلسله يعرف ملف التعليمات لتوفير تعليمات تتبع للسياق لمربع الحوار. اذا تم توفير ملف التعليمات ، يجب ايضا توفير سياق . سياق: (اختياري) تعبير رقمي يمثل رقم محتوي التعليمات المعينه الي موضوع "التعليمات" الملائمه حسب الكاتب التعليمات. اذا تم توفير سياق ، يجب ايضا توفير ملف التعليمات . وضعيات الوسيطة أزرار: 0 عرض زر موافق فقط. 1 عرض الأزرار موافق و إلغاء الأمر . 2 عرض الأزرار إحباط + حاول مره أخري + تجاهل . 3 عرض الأزرار نعم + لا + إلغاء الأمر . 4 عرض الأزرار نعم + لا . 5 عرض الأزرار إعاده المحاوله + إلغاء الأمر . 16 عرض أيقونة رساله هامه . 32 تعرض أيقونة التحذير و الإستعلام . 48 عرض رمز رساله تحذير . 64 عرض رمز رساله معلومات. 0 الزر الأول هو الإفتراضي. 256 الزر الثاني هو الإفتراضي. 512 الزر الثالث هو الإفتراضي. 768 الزر الرابع هو الإفتراضي. 4096 نظام مشروط؛ يتم تعليق كافه التطبيقات حتي يستجيب المستخدم ل# مربع الرساله. 16384 إضافه الزر تعليمات إلي مربع الرساله 65536 يحدد إطار مربع الرساله كإطار المقدمه 524288 تتم محاذاه النص لليمين 1048576 يحدد يجب أن يظهر النص اليمين إلي اليسار للقراءه علي الأنظمه العربيه مثال: MsgBox "السلام عليكم", 3, "مرحبا" InputBox: يعرض مطالبة في مربع حوار و تنتظر قيام المستخدم بإدخال نص أو النقر فوق زر، و ترجع سلسلة تحتوي علي محتويات مربع النص. InputBox(«افتراضي»; «العنوان»; «مطالبة»; «xpos»; «ypos»; «helpfile»; «context») مطالبة : (مطلوب) عرض الرسالة في مربع الحوار العنوان: (اختياري) و يمثل عنوان مربع الحوار افتراضي: (اختياري) . عرض النص الإفتراضي في مربع النص. إذا حذفت الإفتراضي، يتم عرض مربع النص فارغ. xpos: (اختياري). تعبير رقمي يحدد، بوحده التويب المسافة الأفقية بين الحافة اليمني لمربع الحوار من الحافة اليسري للشاشة. ypos: (اختياري) تعبير رقمي يحدد، بوحده التويب، المسافه العمودية بين الحافة العلوية لمربع الحوار من أعلي الشاشة. ملف التعليمات:(اختياري) تعبير سلسله يعرف ملف التعليمات لتوفير تعليمات تتبع للسياق لمربع الحوار. اذا تم توفير ملف التعليمات ، يجب ايضا توفير سياق . سياق: (اختياري) تعبير رقمي يمثل رقم محتوي التعليمات المعينه الي موضوع "التعليمات" الملائمه حسب الكاتب التعليمات. اذا تم توفير سياق ، يجب ايضا توفير ملف التعليمات . مثال: Dim str As String str = InputBox("ادخل اسمك", "الاسم")
    1 point
  40. IsDate: تستخدم هذه الدالة لفحص ما إذا كان المتغير الممرر لها تاريخ أم لا حيث تعيد true إذا كان المتغير تاريخاً و تعيد false إذا لم يكن تاريخاً. IsDate(«تعبير») IsDate("12/03/2017")=True IsDate("أوفيسنا")=False Now: تستخدم هذه الدالة لإستخراج تاريخ و وقت النظام الحاليين. Now() و تكون النتيجة بالشكل التالي: 15-03-2017 10:18:15 Time: تستخدم هذه الدالة لإستخراج وقت النظام الحالي. Time() و تكون النتيجة بالشكل التالي: 10:18:15 Timer: تستخدم هذه الدالة لإستخراج عدد الثواني منذ منتصف الليل. Timer() MonthName: تستخدم هذه الدالة لإرجاع اسم الشهر المحدد . MonthName(«اختصار», «شهر») MonthName(3,True)="مارس" MonthName(8)="أوت" TimeSerial: تستخدم هذه الدالة لإرجاع متغير من نوع تاريخ يحتوي على الوقت لساعة و دقيقة و ثانية محددة. TimeSerial(«ثانية», «دقيقة», «ساعة») TimeSerial(10, 56, 13)=10:56:13 Weekday: تستخدم هذه الدالة لإرجاع متغير "عدد صحيح" يمثل رقم اليوم في الأسبوع. Weekday(أول أيام الأسبوع, التاريخ) Weekday("15/3/2017", vbSunday)=4 WeekdayName: تستخدم هذه الدالة لإرجاع اسم اليوم المحدد من الأسبوع. WeekdayName(«أول أيام الأسبوع», «اختصار», «يوم من الأسبوع») WeekdayName(3, True, vbSunday)="الثلاثاء" و هذه هي القيم المستعملة لتحديد أول أيام الأسبوع: vbUseSystem سيتم استخدام إعدادات النظام vbSunday يمثل يوم الأحد vbMonday يمثل يوم الاثنين vbTuesday يمثل يوم الثلاثاء vbWednesday يمثل يوم الأربعاء vbThursday يمثل يوم الخميس vbFriday يمثل يوم الجمعة vbSaturday يمثل يوم السبت
    1 point
  41. الدرس السابع: دوال التاريخ أخوتي الكرام حياكم الله سوف نقوم في هذا الدرس بشرح دوال التاريخ: ()CDate: تستخدم هذه الدالة من أجل تحويل سلسلة إلى تاريخ. مثال: CDate(السلسلة) CDate("122010")="18-01-2234" ()Date: تستخدم هذه الدالة من أجل إرجاع تاريخ النظام الحالي. مثال: Date()="19/02/2017" DateDiff: تستخدم هذه الدالة لحساب الفرق بين تاريخين DateDiff(أول أسابيع السنة,أول أيام الأسبوع,التاريخ الثاني,التاريخ الأول,رمز الفاصل الزمني) DateDiff("d","14/02/2017","19/02/2017")=5 في هذا المثال حسبنا الفرق بين التاريخين بالأيام DatePart: تستخدم هذه الدالة للحصول على جزء معين من تاريخ محدد لها.(سنة أو يوم أو شهر) مثال: DatePart(أول أسابيع السنة,أول أيام الأسبوع,التاريخ,فاصل زمني) DatePart("d","22/03/2017")=22 DatePart("m","22/03/2017")=3 DatePart("yyyy","22/03/2017")=2017 DateSerial: تستخدم هذه الدالة لإرجاع متغير من نوع تاريخ من ثلاث متغيرات رقمية تمثل السنة والشهر واليوم . مثال: DateSerial(يوم,شهر,سنة) DateSerial("1999","03","20")="20/03/1999" DateValue: تستخدم هذه الدالة من أجل تحويل تعبير معين إلى تاريخ . مثال: DateValue(«التاريخ») DateValue("12 02 2016") Day: تستخدم هذه الدالة لإرجاع رقما من 1 إلى 31 يمثل اليوم من الشهرللتاريخ الممر لها . مثال: Day(التاريخ) Day("15/03/2016")=15 Hour: تستخدم هذه الدالة لإرجاع رقما من 0 إلى 23 يمثل الساعة في اليوم . مثال: Hour(الوقت) Hour("15:25")=15 Minute: تستخدم هذه الدالة لإرجاع رقما من 0 إلى 59 يمثل الدقائق في الساعة. مثال: Minute(الوقت) Minute("15:25")=25 Second: تستخدم هذه الدالة لإرجاع رقما من 0 إلى 59 يمثل الثواني في الدقائق. مثال: Second(الوقت) Second("15:20:23")=23 Month: تستخدم هذه الدالة لإرجاع رقما من 0 إلى 12 يمثل الشهر في السنة. مثال: Month(التاريخ) Month("12/11/2003")=11 Year: تستخدم هذه الدالة لإرجاع رقما يمثل السنة. مثال: Year(التاريخ) Year("12/12/2017")=2017 نكمل البقية فيما بعد إن شاء الله
    1 point
  42. السلام عليكم اخوانى اتمنى ان اشارك معكم فى هذا العمل الرائع حتى يكون مرجع للاعضاء. اتمنى ان لا ينسي هذا الموضوع وهذه مشاركة محذوفة اتمنى ان تعيد تنشيط الموضوع . الدالة DateAdd يمكنك استخدام الدالة DateAdd لإضافة فاصل زمني معيّن أو طرحه من تاريخ ما. على سبيل المثال، يمكنك استخدام الدالة DateAdd لحساب تاريخ لمدة 30 يوماً من اليوم أو وقت لمدة 45 دقيقة من الآن. وصيغتها كالاتى DateAdd ( الفاصل الزمني، رقم، تاريخ ) الفاصل الزمني : ويوضع رمز للمتغير الذي تريد اضافة القيمة الزمنيه إليه رقـــــــــــــــــم : ويوضع الرقم الذى تريد اضافته للمتغير الذي قمت بتحديده تــــــــــــــاريخ : ويوضع هنا الزمن الذي به المتغير موضح به القيمه الحاليه حتى يتم اضافة الرقم إليه حسب المتغير الذي قمت بتحديده مثال 1 : يقوم المثال التالي بإضافة شهر واحد إلى 31 يناير DateAdd("m", 1, "31-Jan-95") جدول اكود المتغيرات " الفواصل الزمنيه " yyyy السنة q ربع سنوي m الشهر y يوم من السنة d اليوم w يوم من الأسبوع ww الأسبوع h الساعة n الدقيقة s الثانية مثال 2 : أذا اردت مثلاً اضافة شهر الى القيمه الحالية للتاريخ DateAdd("m", 1, Date)
    1 point
  43. الدرس السادس: الدوال النصية هنالك الكثير من الدوال المستعملة في VBA و سوف نحاول ذكر الدوال المشهورة منها حسب عملها: Asc: إرجاع عدد صحيح يمثل رمز الحرف الأول في السلسلة النصية. مثال: Me.y = Asc("أوفيسنا") النتيجة=195 Chr: تحويل عدد صحيح إلى حرف أو رمز. مثال: Me.y = Chr("210") النتيجة=ز InStr: استخراج موضع بداية سلسلة ضمن سلسلة أخرى. مثال: Instr(المقارنة,السلسلةالمبحوث عنها,السلسلة التي يتم فيها البحث,مكان بداية البحث) Me.y = InStr(1,"homsalah", "a")=5 InStrRev: إرجاع موضع تواجد سلسلة ضمن سلسلة أخرى بدءا من نهاية السلسلة. InStrRev(المقارنة,بداية البحث,السلسلة المبحوث عنها,السلسلة) Me.y = InStrRev("homsalah", "a", -1)=7 LCase: تحويل حروف سلسلة إلى حروف صغيرة. مثال: Me.y = LCase("ABC")=abc UCase: تحويل الأحرف إلى أحرف كبيرة. مثال: UCase(السلسلة النصية) Me.y = UCase("abcd")="ABCD" Left: ارجاع جزء من سلسلة حرفية حسب عدد الحروف المطلوبة من جهة اليسار. مثال: Left(عدد الأحرف المطلوبة,السلسلة ) Me.y = Left("1999", 2)=19 Len: حساب عدد الأحرف في السلسلة. مثال: len(السلسلة) Me.y = Len("1999")=4 LTrim: حذف الفراغات الموجودة في الجهة اليسرى. مثال: Trim(السلسلة) Me.y = Trim(" 1999")="1999" Mid: ارجاع جزء من سلسلة بحيث تحدد بداية الجزء و طوله (عدد الأحرف). مثال: Mid(عدد الأحرف,نقطة البداية(رقم),السلسلة) Me.y = Mid("SALAH", 3, 2)="LA" Replace: تعويض جزء من سلسلة بجزء آخر. مثال: Replace(الجزء المعوض,الجزء الذي نريد استبداله,السلسلة) Me.y = Replace("SALAH", "H", "T")="SALAT" Right: ارجاع جزء من سلسلة حرفية حسب عدد الحروف المطلوبة من جهة اليمين. مثال: Right(عدد الحروف,السلسلة) Me.y = Right("SALAH", 2)="AH" RTrim: حذف الفراغات الموجودة في الجهة اليمنى لسلسلة. مثال: RTrim(السلسلة) Me.y = RTrim("15 ")="15" Trim: حذف المسافات البادئة و الزائدة من سلسلة. مثال: Trim(السلسلة) Me.y = Trim(" 15 ")="15" Space: ارجاع سلسلة تتألف من عدد من المسافات المحددة. مثال: Space(عدد الفراغات) Me.y = Space(3)=" " Str: ارجاع متغير من نوع string يمثل رقم.(تحويل متغير من نوع رقم إلى متغير من نوع سلسلة نصية) مثال: Str(العدد) Me.y = Str(3)=" 3" Me.y = Str(-3)="-3" تقوم بإرجاع مسافة قبل الأعداد الموجبة StrComp: ارجاع عدد صحيح يشير إلى نتيجة مقارنة سلسلتين.إذا كانت متساوية يرجع 0 و إذا كانت مختلفة يرجع 1 أو 1- مثال: StrComp(السلسلة2,السلسلة1,المقارنة) Me.y = StrComp("ass", "ass")=0 Me.y = StrComp("as", "ass")=-1 StrConv: ارجاع سلسلة تم تحويلها كما هو محدد. مثال: StrConv(رقم يمثل رمز التحويل,السلسلة,LCID) Me.y = StrConv("ass", 1)="ASS" رموز التحويل: 1: يحول السلسلة إلى أحرف كبيرة 2: يحول السلسلة إلى أحرف صغيرة 3: يحول الحرف الأول من كل كلمة في السلسلة إلى حرف كبير 64: تحول السلسلة إلى Unicode باستخدام مخطط الشفرة الافتراضي للنظام. 128: تحول السلسلة إلى Unicode باستخدام مخطط الشفرة الافتراضي للنظام. و هذا الرابط به مختلف الرموز: https://support.office.com/ar-SA/article/الدالة-StrConv-19c3816f-dbc9-4adf-891c-fd32734c92e0 String: تكرار أحرف بعدد معين. مثال: String(الحرف, عدد التكرارات) Me.y = String(3, "S")="SSS" StrReverse: قلب ترتيب أحرف سلسلة نصية. مثال: StrReverse(السلسلة) Me.y = StrReverse("ABCD")="DCBA"
    1 point
  44. الدرس الخامس: استعمال الرموز إن استعمال الرموز و الأحرف لها دور كبير و لا يمكن الإستغناء عليه في جميع لغات البرمجة. و يختلف دور الرموز حسب موقعها في الكود و سنحاول ذكر ما نستطيع ذكره في هذا الدرس و أتمنى من الإخوة أن يكملوا ما عجزت عن ذكره. الفاصلة , تستخدم الفاصلة بشكل واسع في اكواد VBA فمثلا نورد هنا بعض استخدماتها على سبيل المثال لا للحصر: تستخدم للفصل بين قيم دالة تتطلب ادراج عدة قيم مثال: exm=DFirst(Expr, Domain, Criteria) للفصل بين المتغييرات عند تعريفها مثال: Dim a,b,c As Integer الاقواس الهلالية ( ) تستخدم الاقواس الهلالية في فيجول بيسك في الاماكن التالية : -عند كتابة الاكواد. -عند بداية كتابة اجراء معين او دالة ما. -في العمليات الحسابية. مثال: Function Example (exm As Boolean) D=(e-f)*g moy=(2+3+4)/3 الفاصلة المنقوطة ; تستخدم الفارزة المنقوطة في بعض من دوال اكسس و بالتحديد في منشأ التعابير علامتي الاقتباس " " تستخدم علامتي الاقتباس بشكل رئيسي لحصر النصوص بداخلها و بالتالي سوف يفهم البرنامج ان ما هو موجود بين علامتي الاقتباس هو نص و يتعامل معه عل هذا الاساس. مثال: Text0="منتدى أوفيسنا" علامة الاقتباس المفردة ' تستخدم علامة الاقتباس المفردة ' لتوضيح ما بعدها هو شرح و ليس عبارة برمجية مثال: ' A = Text0.BackColor الاقواس المربعة [] الاقواس المربعة ايضاً حالها حال الرموز السابقة لها استخداماتها المحددة و تتمثل استخدماتها في توضيح ان المتغييرات المحصورة بين قوسين مربعين انما هي اسماء لجدول او نموذج او استعلام او عناصر داخل تلك النماذج او حقل ضمن الجداول و الاستعلامات و تستخدم في منشأ التعابير و كودات ال(VBA) على حدٍ سواء و في بعض الاحيان يمكن الاستغناء عنها اي ان نذكر العناصر السابقة بدون حصرها بين قوسين مثال: Forms![form1].[Text0] = "ممكلة الاكسس و الوورد" علامة التعجب ! تستخدم علامة التعجب على حد علمي استخدام وحيد و هو موضح في مثال: Forms![form1].[Text0] = "ممكلة الاكسس و الوورد" و المثال السابق يوضح ان علامة التعجب توضح ان العنصر الذي بعدها هو احد النماذج الموجود في قاعدة البيانات كما انها تكون مسبوقة بالكملة Forms للتدليل على ان ما بعد علامة التعجب هو عنصر من نوع نموذج و هي تستخدم كما اسلفنا في منشأ التعابير و كودات ال(VBA) الرمز & و هي اختصار لكلمة AND باللغة الانكليزية و هنا تستخدم لربط سلسلتين نصيتين او اكثر مثال: Text0 = "مملكة " & "الاكسس " & "و " & "الوورد" علامة = و هي تقوم بإسناد قيمة ما بعدها للمتغيير الموجود قبلها سواءاً كانت تلك القيمة رقم او معادلة رياضية او قيمة منطقية او سلسلة نصية .. الخ مثال: A=b+c علامة النقطة . و هي مهمة جدا في البرمجة. فعند ذكر اسم اي عنصر من عناصر قاعدة البيانات و الحاق اسم العنصر بعلامة النقطة (.) فسوف تظهر قائمة بخصائص ذلك العنصر و الاوامر التي يتعامل معها ذلك العنصر . مثال: Text0.Text = "احمد الحربي" علامة الشارحة السفلية _ تستخدم هذه العلامة للفصل بين اسم العنصر و الحدث المرتبط به مثال: Private Sub Command2_Click() علامة # تستعمل هذه العلامة لتحول سلسلة رقمية الى تاريخ مثال : Text0 = #30/1/2017# + عملية الجمع - تستعمل لعمية الطرح * تستعمل لعملية الضرب / تستعمل لعملية القسمة ^ تستعمل لعملية الأس مثال: text1=2+3 text2=10-6 text3=70/5 text4=4*23 text5=6^4
    1 point
  45. الــدرس الرابع: الجملة الشرطية ( IIF ) ( لقد قام أستاذي و أخي جعفر حفضه الله بتقديم هذا الدرس كله و أنا لم أفعل شيء سوى التنسيق و النشر فاللهم جازيه عنا خير الجزاء يا رب العالمين) طريقة استعمال ((iif: iif(expr, truepart, falsepart) iif(القيمة المطلوب تقييمها, اذا كان التقييم صح فستأخذ هذه القيمة, اذا كان التقييم خطأ فستأخذ هذه القيمة) مثال: Age=50 Age_Now = iif(Age=50 , "Yes it is", "No it is not") ميزاتها: نستطيع استعمالها في الكود ، والاستعلام نستطيع ان نضع اكثر من شرط واحد فيها مثال: Price=10 Qty=5 Sale_is= iif(Price* Qty = 50 , "Low sale", iif(Price * Qty = 100 , "Middle sale" , "Big sale")) عيوبها: الدالة تختبر جميع الحالات ، ولا تختبر القيمة الاولى وتخرج (مثل الـ IF): 1. المثال السابق ، مع ان اول تقييم هو الجواب الصحيح 10*5=50 ، إلا ان الدالة ستقوم بتقييم جميع الاختيارات ، مما يجعلها تأخذ وقت اطول للتقييم ، 2. بسبب اختبارها لجميع الحالات ، فيجب ان نكون دقيقين في وضع التقييم ، مثلا اذا اردنا اختبار قيمة مثال: Divide = iif(n2 = 0, MsgBox("القيمة صفر"), MsgBox(n1 / n2)) فاننا سنحصل على خطأ ، لأن الدالة تحققت من القيمتين ، والقيمة الثانية هي تقسيم رقم على صفر ، 3. بطيئه نوعا ما ، لأنها تحول الارقام الى Variant (رجاء مراجعة الدرس الاول للأخ صالح) ، ثم تقوم بالحساب ، 4. لا تستطيع ان تستخدم اكثر من 7 شروط في الاستعلام ، مثلا عندنا ارقام الاشهر ونريد نستخرج اسمائها ، 5. ببساطة مكن ان تخطأ في عدد الاقواس والفواصل ، 6. لا تستطيع قراءة ولا تغيير اي شئ بسهولة ، وخصوصا اذا كان عندنا اكثر من تقييم ، امثلة عملية: 1. اذا عندنا ارقام الاسبوع ، ونريد ان نستخرج ايامها ، فاذا عملنا الكود في الاستعلام مباشرة ، فسيكون صعب ، لذا ، فالطريقة التي اعملها انا هي: أ‌- عمل الكود في محرر VBA ، هكذا: لاحظ اني عملت اول شرط ونتيجة القيمة الصحيحة ، ثم انهيت السطر بخط سفلي _ (واللي معناه في البرمجة ان الكود سيتواصل في السطر التالي ، ثم انتقلت السطر التالي ، ونفس الشئ ، عملت الشرط التالي ونتيجة القيمة الصحيحة و.... كما سبق و... الى ان نوصل للسطر الاخير ، فوضعت الشرط الاخير ونتيجة القيمة الصحيحة والخطأ ، ثم حسبت كم قوس مفتوح ، فقفلت بنفس عددها: iDay = 2 Today_is = IIf(iDay = 1; "Sun"; _ IIf(iDay = 2; "Mon"; _ IIf(iDay = 3; "Tue"; _ IIf(iDay = 4; "Wed"; _ IIf(iDay = 5; "Thu"; _ IIf(iDay = 6; "Fri"; "Sat")))))) ب- والخطوة التالية ان نجعلها في سطر واحد ، حتى نأخذها للإستعلام ، وهي ان نحذف الاشارة _ ، لتكون النتيجة Today_is = IIf(iDay = 1; "Sun"; IIf(iDay = 2; "Mon"; IIf(iDay = 3; "Tue"; IIf(iDay = 4; "Wed"; IIf(iDay = 5; "Thu"; IIf(iDay = 6; "Fri"; "Sat")))))) . هكذا . 2. اذا عندنا سجلات الصف الاول والثاني ، واردنا معرفة عدد الطلاب لكل صف: iif([Section]= "A" ; 1;0) وهكذا تكون في الاستعلام: 3. اذا عندنا اكثر من 7 شروط (ارقام الاشهر نريد تحويلها الى اشهر) ، فهنا نضطر الى عمل وحدة نمطية: Function What_Month(M) Select Case M Case 1 What_Month = "Jan" Case 2 What_Month = "Feb" Case 3 What_Month = "Mar" Case 4 What_Month = "Apr" Case 5 What_Month = "May" Case 6 What_Month = "Jun" Case 7 What_Month = "Jul" Case 8 What_Month = "Aug" Case 9 What_Month = "Sep" Case 10 What_Month = "Oct" Case 11 What_Month = "Nov" Case 12 What_Month = "Dec" End Select End Function ونرسل لها ارقام الاشهر ، هكذا . والنتيجة
    1 point
  46. السلام عليكم ورحمة الله في المرفق تجد ملف فيه تطبيق لما ذكرته في ردي السابق... وهو إنشاء قوائم منسدلة ديناميكية (مطاطية) دون تكرارات (ودون فراغات) باستعمال المعادلات... في شيت Feuil1 تم إنشاء القائمة List1 بمعادلة صفيف وفي شيت Feuil2 تم إنشاء القائمة List2 بمعادلات عادية مع عمود إضافي... أرجو أن يكون الحل مفهوما ويفي بالغرض المطلوب... ويبقى استعمال التسميتين List1 و List2 في خاصية "التحقق من الصحة" Validation في أي خلية كانت من الملف... بطبيعة الحال يمكن أيضا استعمال الأكواد في هذا، مثل الكود الذي اقترحه أخي الكريم الجموعي من موضوع "المشروع الكبير للأكواد" جازاه الله خيرا وكل القائمين والمشاركين في هذا المشروع... أخوك بن علية الملف المرفق : قوائم منسدلة دون تكرار ودون فراغات.rar
    1 point
×
×
  • اضف...

Important Information