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

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

  1. ياسر خليل أبو البراء

    ياسر خليل أبو البراء

    المشرفين السابقين


    • نقاط

      23

    • Posts

      13165


  2. الصـقر

    الصـقر

    الخبراء


    • نقاط

      11

    • Posts

      1836


  3. رمهان

    رمهان

    الخبراء


    • نقاط

      8

    • Posts

      2390


  4. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      5

    • Posts

      12869


Popular Content

Showing content with the highest reputation on 04/01/16 in مشاركات

  1. السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله أعتقد أن الوقت الذي انقضى على الحلقة الأولى من هذه الدورة الخاصة بالمصفوفات يكفي وزيادة ، وأعتذر عن التأخر في مواصلة الدورة ، فأنتم تعرفون مشاغل الحياة .. رابط الحلقة الأولى نبدأ على بركة الله الحلقة الثانية من حلقات "دورة كاملة في المصفوفات" ، ويا ريت اللي لسه أول مرة يشوف الموضوع ، إنه يقرا الحلقة الأولى عشان يقدر يتواصل معانا .. مش عايزين نكرر المعلومة إلا للضرورة ، وعشان يقدر يتابع الجديد (دا لو فيه متابعين من الأساس) هنبدأ نتكلم عن أنواع المصفوفات : فيه نوعين النوع الأول وهو المصفوفة الثابتة يعني لها أبعاد ثابتة مش بتتغير والنوع الثاني وهو المصفوفة الديناميكية يعني غير الثابتة ودي بيتم تحديد أبعادها أثناء عمل الكود ، وممكن تتحدد في أول الكود بأبعاد محددة ، وممكن تغيرها أثناء الكود إذا لزم الأمر ... الإعلان عن المصفوفة الثابتة -------------------------------- دا مثال لأكثر من طريقة للإعلان عن المصفوفة الثابتة المحددة الأبعاد ..نشوف الكود ونضع مؤشر الماوس داخل الكود ومن لوحة المفاتيح زي ما اتعلمنا نضغط F8 ونروح نبص على نافذة اللوكال Sub DecArrayStatic() Dim arrMarks1(0 To 3) As Long Dim arrMarks2(3) As Long Dim arrMarks3(1 To 5) As Long Dim arrMarks4(2 To 4) As Long End Sub نمسك سطر سطر عشان نفهم إزاي بيتم الإعلان .. السطر الأول بعد ما كتبنا اسم المتغير (اللي هو من النوع مصفوفة) بين قوسين كتبنا من 0 إلى 3 أي أن فهرس المصفوفة سيكون عبارة عن 0 ، 1 ، 2 ، 3 .. السطر الثاني زي الأول بالضبط بمعنى إن الفهرس عبارة عن 0 ، 1 ، 2 ، 3 .. طيب ليه؟ لأن الافتراضي للمصفوفات إن الفهرس بيبدأ من الرقم صفر .. بكدا نفهم إزاي نتعامل : يا إما أحدد بداية الفهرس ولو حددتها صفر أو سبتها من غير ما أحدد البداية يبقا النتيجة واحدة السطر الثالث بداية المصفوفة 1 ونهايتها 5 أي 5 عناصر داخل المصفوفة السطر الرابع بداية المصفوفة 2 ونهايتها 4 أي عدد العناصر 3 عناصر .. نفهم من الأسطر دي إن فيه مرونة كبيرة في التعامل مع المصفوفات يعني ممكن أبدأ من أي رقم وأنتهي بأي رقم (منتهى المرونة ... بس مش مرونة بشكل كبير) ..دا لأن عملياً صعب أحدد أبعاد المصفوفة ، لأن من خصائص البيانات إنها متغيرة ، فلو مثلاً عندنا مدرسة لها قاعدة بيانات ، فالقاعدة متغيرة .. عدد الطلاب مش ثابت (طالب حول من المدرسة - طالب حول إلى المدرسة) بالتالي العدد غير ثابت ، ومن هنا لازم نتعلم النوع التاني من المصفوفات اللي هو الديناميكي أي المرن أي الغير ثابت الإعلان عن المصفوفة الديناميكية ------------------------------------- هنا بيتم الإعلان عن مصفوفة غير محددة الأبعاد ، ويمكن بعد كدا من خلال الكود تحديد أبعادها باستخدام كلمة اسمها ReDim .. Sub DecArrayDynamic() Dim arrMarks() As Long ReDim arrMarks(0 To 5) End Sub السطر الأول فتحنا قوس وقفلناه بعد اسم المتغير وبس .. بكدا وببساطة أعلنا عن المصفوفة الديناميكية .. وفي السطر الثاني لو حبيت أحدد أبعادها بستخدم الكلمة ReDim ويمكنك تحديد أبعادها اعتماداً على نطاق ديناميكي .. مثال : لو عندك طلاب وقلنا إن عددهم غير ثابت ، يبقا بتعلن عن المصفوفة وتخليها من النوع الديناميكي واثناء الكود بتشوف عدد الطلاب من خلال أسطر أخرى ، وعلى أساس الأسطر الأخرى بتحدد أبعاد المصفوفة ..يعني التحديد مبيكونش مسبق زي النوع الأول ..التحديد للأبعاد بيكون أثناء عمل الكود ننتقل لجزئية جديدة ألا وهي تعيين قيم لعناصر المصفوفة بيتم تعيين قيم للمصفوفة سواء كانت ثابتة أو ديناميكية من خلال معرفة رقم العنصر في الفهرس بالمثال يتضح المقال ودا كلام مفيهوش جدال Sub AssignValue() Dim arrMarks(0 To 3) As Long arrMarks(0) = 5 arrMarks(3) = 46 arrMarks(4) = 99 End Sub دا مثال في السطر الأول أعلنا عن المصفوفة اللي أبعادها من 0 إلى 3 أي عدد عناصرها يساوي 4 ( 0 - 1 - 2 - 3) السطر التاني وضعنا القيمة 5 لمين ؟ للعنصر اللي رقم فهرسه 0 السطر الثالث وضعنا القيمة 49 لمين؟ قولوا إنتو يا حلوين !! للعنصر اللي رقم فهرسه 3 السطر الرابع بقا ونركز عشان دا مهم .. وضعنا القيمة 99 لمين؟ نفس الكلام يا حلوين !! للعنصر اللي رقم فهرسه 4 (بس عندك ستوب STOP) ارجع تاني لأول سطر .. إحنا عندنا أبعاد المصفوفة من 0 إلى 3 يعني أول رقم فهرس عندي صفر وآخر رقم فهرس عندي 3 ... يعني الـ 4 مش موجودة (طبعاً لدواعي أمنية ..ما إحنا عارفين 4 من الأرقام المحظورة دلوقتي) طيب تتوقع ايه بعد تنفيذ السطر ؟؟؟!!!..مننساش إننا وإحنا بنتعلم مش بنفذ الكود مرة واحدة ... راجع الحلقة الأولى .. إحنا بنستخدم نافذة اللوكال ونضغط على F8 وواحدة واحدة عشان نستوعب المهم يرجع مرجوعنا لموضوعنا : بعد تنفيذ السطر الأخير هيظهر لنا رسالة خطأ بالشكل دا لأن رقم الفهرس دا مش موجود ننتقل لجزئية جديدة فيه طرق تانية لتعيين قيم للمصفوفة وهي باستخدام الدالة Array ، ودي ممكن نستخدمها عشان نخزن من خلالها قيم المصفوفة بالشكل التالي Sub ArrayFunction() Dim Arr1 As Variant Arr1 = Array("Orange", "Peach", "Pear") Dim Arr2 As Variant Arr2 = Array(5, 6, 7, 8, 12) End Sub مع استخدام الدالة دي بنعلن عنها من النوع Variant .. في السطر الأول والثاني تم الإعلان عن المصفوفة من النوع Variant وقمنا بوضع القيم بين أقواس .. ونلاحظ أقواس التنصيص أننا بنتعامل مع نصوص في قيم المصفوفة دي في السطر الثالث والرابع نفس الإعلان وقمنا بوضع القيم بين أقواس بي هنا مفيش أقواس تنصيص لأننا بنتعامل مع قيم رقمية نفذ الكود باستخدام F8 ولاحظ نافذة اللوكال بنفسك لاحظت ؟؟!! اللي لاحظ يرفع ايده .. برافو برافو محدش لاحظ حاجة .. روح لعمود الـ Type في نافذة اللوكال بعد تعيين القيم للمصفوفة ولاحظ نوع المتغير بقا متغير ...يعني بعد ما كان Variant نلاحظ اتكتب مثلاً في حالة المصفوفة الأولى اللي بتتعامل مع النصوص اتكتب String ومع المصفوفة الثانية اتكتب Integer .. وحاجة تانية إن أول رقم فهرس في المصفوفتين بيبدأ من صفر لأن دي البداية الافتراضية (مننساش يا واش يا واش) ************************************** نيجي لآخر جزئية في حلقة اليوم ألا وهي استخدام المصفوفة ودالة الإنشطار (Split Function) انشطار .. ربنا يكفينا شر النار .. !! انشطار ايه ؟! هو إنت بتصنع قنابل نووية .. الانشطار يا شطار معناه تقسيم الشيء لأجزاء صغيرة .. قطعه حتت وارميه للقطط نتكلم جد وبلاش هزار .. نشوف المثال ده Sub SplitFunction() Dim str As String str = "Red,Yellow,Green,Blue" Dim arr() As String arr = Split(str, ",") End Sub في السطر الأول أعلنا عن متغير من النوع النصي وفي السطر الثاني وضعنا قيمة المتغير النصي بين أقواس تنصيص وبيفصل بين الكلمات الموجودة في النص علامة الفاصلة (Comma) .. في السطر التالت أعلنا عن المتغير باسم Arr ووضعنا أقواس بمعنى إنها مصفوفة ديناميكية (صحيح الكلام دا مش صحيح ، بس دا مجرد مثال عشان نفهم دالة الإنشطار Split) آخر وأهم سطر وهو دا اللي يهمنا في الكود اللي فات وهو استخدام الدالة وهي دالة بسيطة جداً ومفيدة جداً جداً جداً جداً ..كفاية عشان ايدي تعبت تكوينها ببساطة اسم الدالة وبنفتح قوس ... البارامتر الأول الحاجة اللي عايزين نعملها إنشطار وهي كما في المثال النص اللي بين أقواس تنصيص "Red,Yellow,Green,Blue" وبعدين فاصلة وبعدين البارامتر الثاني وهو نوع الفاصلة اللي هيتم على أساسها عملية الإنشطار ..ممكن تكون الفاصلة دي مسافة أو أي نوع من أنواع الفواصل بين الكلمات .. وهنا استخدمنا الفاصلة Comma ووضعناها بين أقواس تنصيص لاحظ أن المصفوفة المسماة Arr بعد تنفيذ السطر الأخير حملت في 4 عناصر (من 0 إلى 4) وهي العناصر اللي فصلنا بينها بالفاصلة ، لتصبح المصفوفة حاملة (في الشهر الرابع) حاملة لأربع قيم وهي Red و Yellow و Green و Blue .. وإلى هنا تعبت يداااااااااااااااااي ولم أعد أستطيع المواصلة ، فقد كان المشوار طويل ... لمزيد من الدعم لصاحب الموضوع (ودا اختياري مش إجباري) .. ولو عندك وقت فاضي لمدة دقيقتين اتنين تابع الرابط الإعلاني في الرابط التالي (سيكون عبارة عن سلسلة من الإعلانات ..قم بالضغط على Skip Ad بعد كل 5 ثواني ... وأكرر دا مش إجباري دا اختياري ، يعني لو وقتك ميسمحش أنا مسامح .. حمل الملف الذي يحتوي على أكواد الموضوع من هنا وأخيراً تقبلوا وافر تقديري واحترامي كان معكم أخوكم أبو البراء من منتدى الأحبة منتدى أوفيسنا
    6 points
  2. هدية لاحبتي في الله للحاجة الملحة في تسهيل وتيسير عمليات البحث داخل النصوص وخاصة النصوص الكريمة في القرآن والسنة كان لزاما عند اجراء عملية البحث اهمال حركات التشكيل الموجودة في هذه النصوص وبعد البحث وجدت التالي : 0x064B فتحتان Shift + W 0x064C ضمتان Shift + R 0x064D كسرتان Shift + S 0x064E فتحة Shift + Q 0x064F ضمة Shift + E 0x0650 كسرة Shift + A 0x0651 شدة Shift + ~ 0x0652 سكون Shift + X ووجدت ايضا : أن رموز unicode لحروف التشكيل العربية تبدأ من 240 وحتى 250 من هنا : http://withdotnet.net/2010/06/using-strings-with-combining-chars/ وأصل الكود هنا وبفضل من الله وعونه تم التوصل الى طريقة مرنة يمكن تطبيقها بكل يسر وسهولة عبر الكود التالي : Private Sub zer1_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Dim i, x As Integer Set db = CurrentDb Set rs = db.OpenRecordset("tbl1") rs.MoveLast rs.MoveFirst For x = 1 To rs.RecordCount Dim fld As String, wr As String, spa As String wr = "" fld = rs!text1 i = 1 Do While i <= Len(fld) spa = Mid(fld, i, 1) If Asc(spa) = 240 Or Asc(spa) = 241 Or Asc(spa) = 242 Or Asc(spa) = 243 Or Asc(spa) = 244 Or Asc(spa) = 245 Or Asc(spa) = 246 Or Asc(spa) = 247 Or Asc(spa) = 248 Or Asc(spa) = 249 Or Asc(spa) = 250 Then Else wr = wr & spa End If i = i + 1 Loop rs.Edit rs!text2 = wr rs.Update rs.MoveNext Next x Set db = Nothing Set rs = Nothing MsgBox "تمت العملية بنجاح" End Sub في المرفقات يتم من خلال هذا الكود حذف التشكيل ونقل النتيجة الى عمود جديد وطبعا هذا حسب طلب اخونا المحب علما انه يمكن اخراج النتيجة داخل الاستعلام وهو برأيي افضل .. وللهدية بقية ... ازالة التشكيل.rar
    3 points
  3. ايش رايك اعطيك طريقة لطلبك وتنفع لترقيم الاقساط كذلك ضعي لحدث بعد التحديث للمدفوع ويصبح الكود بالشكل التالي Private Sub المدفوع_AfterUpdate() Me.رقم_القسط = Parent![عدد الاقساط] & "/" & CurrentRecord End Sub وللترقيم فقط Private Sub المدفوع_AfterUpdate() Me.رقم_القسط = CurrentRecord End Sub هذه الفكره اخذتها من الاستاذ والمحاسب كمال النحال من زمان وما نسيتهاش ! بالتوفيق
    3 points
  4. جرب هذا الملف مطلوب تصفية مع ترحيل بيانات مع دمج البيانات macro.rar
    3 points
  5. إخواني وأحبابي في الله بارك الله فيكم وجزاكم الله خير الجزاء على دعواتكم الطيبة وشعوركم الطيب تجاهي هذا أقل واجب تجاه إخواني أن أقوم بتقديم ما تعلمته لكم بخصوص الأمثلة التطبيقية لا أعلم لما العجلة أخي الحبيب سعد ..كل شيء بأوان !! عايزين نتعلم إزاي نتعلم صح ..انا ببحث في مواقع أجنبية وبعضها بيقدم الشرح بالشكل ده ..بتسلسل علمي ومنطقي .. عشان يكون الأساس صح ..مش مجرد موضوعات شرح نظري وفقط .. وبعدين طبق الأمثلة الموجودة وحاول تدرسها كويس وتفهم الأسطر اللي اتكتبت ومع الوقت والمتابعة هتلاقي نفسك فاهم كل شيء أو على الأقل معظم الأكواد المكتوبة .. وبعدها لما تشوف كود هتقدر تفهمه وتعدل عليه وتستفيد منه ، والتطبيق بيكون من خلال أسئلة الأعضاء والمشاكل اللي بتقابلهم أنا أطمح لبناء قاعدة صحيحة من التعلم التي يمكن السير على أساسها مش مجرد إضافة لموضوع جديد وخلاص ... فالرجاء الصبر .. بعد ما نخلص الأساسيات المفروض إننا نتعلمها الأول ..إن شاء الله هنواصل ونبدأ في طرح أمثلة وتدريبات عشان الموضوع يثبت ، وصدقوني باب المصفوفات هيفتح لك أبواب كثيرة مغلقة وهتحس بالفرق في التعامل خصوصاً إذا كانت البيانات كبيرة .. أرجو عدم الاستعجال ..خلينا نستوعب الموضوع واحدة واحدة ، وأنا بتعلم معاكم ، يعني مش أعلى من حد منكم ، كلنا المفروض بنفيد ونستفيد .. تقبلوا وافر تقديري واحترامي
    2 points
  6. السلام عليكم ... معلومة جديدة استاذ رمهان ... مع تغيير نوع البيانات للحقل رقم القسط من الجدول f من رقم الى نص ...
    2 points
  7. وعليكم السلام ورحمة الله وبركاته .. اتفضل يا حاج بس هات لنا معاك جبنة تركي وإنت جاي (محدش يترجم له الجملة دي عشان ميزعلش )
    2 points
  8. رجاء خاص من الاخوة الكرام يرجى عدم اضافه اى رد على الموضوع لحين الانتهاء من كل الشروحات والسبب فى ذالك والله ما هو غير ان يكون الحلقات كلها متسلسله ورا بعض حتى يسهل لمن يريد المتابعه ان يستفيد منها ويرجى الاكتفاء بالاعجاب فقط أما ان وجد ملاحظة او خطا ما او احد يريد استفسار عن شئ ما بيكتبها بموضوع مستقل وانها ساقوم بالرد عليه تقبلوا منى وافر الاحترام والتقدير ************************************************************************************************************* بسم الله الرحمن الرحيم الاخوه الكرام بعد فترة انقطاع عن تقديم سلسلة علمنى كيف اصطاد بسبب الانشغال من الانتهاء ببرنامج EMA بشكله الجديد وبعد ان انتهيت منه بحمد لله أقدم لكم اليوم بمشيئة الله شروحات عن الفورم Form من البدايه حتى الاحتراف بأذن الله الدرس الاول 1- الدخول الى محرر الاكواد ( Visual Basic ) بالضغط على Alt+ f11 سيظهر معك الصوره التاليه 2- لو نظرنا الى الصوره السابقه سنجد كلمة Insert عليها دائره حمرا قم بالضغط على كلمة Insert ستظهر لك الصوره التاليه 3 - اضغط على UserForm كما هو مبين بالصوره اعلاه سيظهر لك الصوره التاليه 4- فى الصوره السابقه لو نظرنا لها سنجد شريط الادوات كما هو موضح بالصوره التاليه 5-صندوق ادوات التحكم ToolBox كما هو موضح بالصوره التاليه كما هو موضح بالصوره عاليه سوف نكتب نبذه صغيره عن كل عنصر من عناصر التحكم (طبعا الكلام هيكون نظرى وانا شخصيا لا اقتنع بالنظرى ) ولكن هى مجرد نبذه صغيره وبعد ذالك سوف نقوم بسرد كل عنصر فى درس مخصص بشرح وافى وكافى وبالصور والامثله العملية والتطبيقيه بأذن الله تعالى اولا :- المؤشر ( Pointer ) *** استعمال هذة الاداة ليتيح لك الانتقال الى مود الاختيار ما بين عناصر التحكم الموجودة على الفورم لتحريكها او التحكم فى حجمها .. هناك بعض اصدارات من الاكسيل عندما تختار ان تضيف زر مثلا ... يبقى المؤشر على الفورم فى وضع الاضافة/ فكلما ضغطت على الفورم بعد ذلك يضيف زر جديد وهكذا .... والحل عندها الضغط على المؤشر للهروب من هذة الدائرة المفرغة ( المرجع الاستاذ /اسامه البراوى ) ثانيا :- العنوان ( Lable ) *** هى أداه تستخدم لكتابه عنوان ثالثا :- صندوق النص ( Text Box ) *** وهى اداه تسمح للمستخدم بكتابة نص او رقم أو اى شئ بداخلها رابعا:- أداة السرد والحوار ( ComboBox) *** وهى أداه يمكن اضافة لها قائمة محدد يسمح للمستخدم الاختيار منها وهى مثل القائمة المنسدله بالاكسيل خامسا :- صندوق القوائم ( ListBox ) *** وهى اداه تشبه وعاء يحتوى على بيانات يمكن اضافه هذا المحتوى من Text Box او ComboBox ثم ترحيل هذا المحتوى الى شيت الاكسيل أو رفع محتوى من شيت الاكسيل وعرضه بـ ListBox سادسا :- صندوق الفحص (Check Box) *** تستخدم لعمل عدة صناديق فحص واختيار واحد او اكثر منهما سابعا:- زر الاختيار (Option Box ) *** تستخدم هذه الاداه فى عرض عدة بدائل امام المستخدم لاختيار احدهما فقط ثامنا:- زر التبديل (Toggle Button) *** هى اداه تشبه المفتاح الكهربائى له خيارين أما on أو Off ولكن بالاكسيل هذه الاداه لها خيارين أما true وأما false تاسعا:-الاطار (Frame) *** ويستخدم لعمل اطار لمجموعه عناصر عاشرا:- زر الامر (Command Button) *** هو زر يتم من خلال تنفيذ الكثير من الاكواد او التعليمات البرمجيه احدى عشر :- شريط التبويب ( Tab Strip) *** تتيح للمستخدم من عرض ادواته على شكل صفحات عرض اثنى عشر :- شريط الصفحات (Multi Page)*** تتيح للمستخدم من عرض ادواته على شكل صفحات عرض ثلاثة عشر :- شريط الانزلاق (Scroll Bar) *** هى اداه لها شكلان شكل عمودى واخر افقى وهى تشبه بحد كبير الاداه Spin Button اربعة عشر :- زر التدوير ( Spin Button) *** هى اداه تستخدم لزياده قيمة معينه او نقصانها ويتم تحديد قيمة عليا وقيمة سلفه ومقدار هذه القيم خامس عشر :- صوره( Image) *** وهى اداه تتيح للمستخدم من ادراج صوره بداخلها وان شاء الله كما قلت سوف نقوم بشرح كل جزء بدرس خاص **************************************************************************************************** 5- خصائص الفورم ( Properties Window) انظر للصوره التاليه هل يمكن اضافة ادوات تحكم جديدة ؟ نعم بالضغط على الزر الايمن فى اى مكان فاضى او مليان فى التول بوكس سيظهر لك Additional Controls كما هو مبين بالصوره التاليه وعند الضغط على Additional Controls ستجد الصوره التاليه فى الصوره السابقه ستجد على اليسار فى الاسفل Show وتحتها مربع به علامه صح لو قمت بحذف علامة صح من المربع ستجد القائمة على اليمين ظاهر بها كل عناصر التحكم انظر للصور التاليه بعد االه علامه الصح فى الصوره السابقه خامس خيار ضع علامه صح Calendar Control 12.0 ثم اضغط اوك ستجد ان عنصر التحكم Calendar Control 12.0 موجود بصندوق عناصر التحكم كم هو موضح بالصوره فى الصوره السابقه لو نظرت الى صندوق التحكم ستجد ان عنصر Calendar Control 12.0 ظاهر كما هو موضح بالدائره الحمراء الصغيره اضغط على هذه الايقونه ثم اذهب الى الفورم وقم بالرسم التقويم ستجده كما هو محاط بالدائره الاحمراء الكبيره فى الصوره السابقه وبكدا يبقى عرفنا ازاى نضيف عنصر تحكم جديد الى صندوق التحكم والى لقاء اخر بأذن الله فى سلسه علمنى كيف اصطاد تقبلوا تحياتى ************************************************************** اليوم بمشيئة الله هنتكلم عن اول عنصر تحكم وهو اللـ Label هنتناول الموضوع على ثلاث مراحل 1-كيفية انشاء وتصميم الـ Label على الفورم 2-كيفية التعامل والتحكم بخصائص الـ Label من شاشة الخصائص فى مرحلة التصميم 3- كيفية التعامل والتحكم بخصائص الـ Label من شاشة الخصائص فى لغة البرمجه وكتابة الاكواد أولاً :- كيفية انشاء وتصميم الـ Label على الفورم بختصار شديد شاهد الصوره والتبع الخطوات اضغط على العلامه A الموجوده فى التول بوكس واذهب بالماوس الى الفورم وقم برسم الـ Label بالابعاد التى تريدها من عرض وارتفاع 2-كيفية التعامل والتحكم بخصائص الـ Label من شاشة الخصائص فى مرحلة التصميم لو نظرنا للصورة السابقه ستجد خصائص الفورم هى رقم 3 على يسار الصورة فعند تحديد الـ Label بالماوس ( يعنى الوقوف عليه وتحديده ) ستجد خصائصه على اليسار كما هو بالصوره عاليه على اليسار وهذه هى الخصائص اللى هنقوم بشرحها اليوم انا رقمت كل الخصائص كما هو مبين بالصوره و هنمسك اهم الخصائص والاكثر شيوعا فى الاستخدام ونبدا نشرح بالتفصيل 1-الخاصيه ( Name) :- Name هو اسم الـ Label المستخدم فى الاكواد عند انشاء اى Label يقوم الفيجوال بيسك بأعطاء اسم افتراضى له Label 1 اذا قمنا بعمل Label ثانى فأن الفيجوال بيسك يعطى له اسم افتراضى Label 2 وانا افضل عدم تغيير اسماء Label الافتراضيه التى عرفها الفيجوال بيسك فعندما نريد كتابه كود خاص بالعنصر Label 1 فى حدث Click على سبيل المثال يكون بداية الكود كالتالى Private Sub Label1_Click() فأذا قمنا بتغيير اسم Label 1 كما عرفه الفيجوال بيسك الى اسم اخر من خاصيه Name وليكن مثلا غيرناه الى (Nomber ) فهنا عند كتابة كود فى حدث Click يكون كالتالى Private Sub Nomber_Click() ففى حال تغيير الاسم وعدم التزامك بالاسم داخل محرر الاكواد وكتابة كود يحدث Error لذالك انصح باستخدام الاسماء الافتراضيه للعناصر كما عرفها الفيجوال بيسك ************************************************************************************************************ 3 - الخاصيه Auto size :- هى خاصيه تحمل خيارين true و False عن اختيارك true فأن عرض الـ Label سوف يكون تلقائى حسب محتوى النص بداخله وعند اختيارك False فأنه يتم توقف خاصيه عمل عرض تلقائى حسب طول النص للـ Label وبالتالى لابد من تحديد العرض اثناء التصميم او من خلال البرمجه كما سنرى لاحقا *********************************************************************************************************** 4- الخاصيه ( Back Color):- هذه الخاصيه تتيح للمستخدم تغيير لون خلفية للـ Label على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك أنظر الصوره التاليه 5- الخاصيه ( Back Style):- هذه الخاصيه تحمل خيارين هما Fm Back Style Opague - 0 ( عند الاختيار سيتوقف عمل الخاصيه Back Color حتى ولو كان تم اختيار لون بها وليكن خلفية حمراء سيظهر الـ Label بخلفية ساده ) Fm Back Style TransParent - 1 ( عند الاختيار سيتم عمل الخاصيه Back Color وهيكون الـ Label بخلفية حسب الاختيارك من Back Color ) لذالك هذه الخاصيه مرتبطه بالخاصيه Back Color ************************************************************************************************************************** 6- الخاصيه ( Border Color):- هذه الخاصيه تتيح للمستخدم تغيير لون حدود اللـ Label على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك 7- الخاصيه ( Border Style):- هذه الخاصيه تحمل خيارين هما Fm BorderStyle none - 0 ( عند الاختيار سيتوقف عمل الخاصيه Border Color حتى ولو كان تم اختيار لون بها وليكن لون حد أحمر سيظهر الـ Label بلون حد ساده ) Fm BorderStyle Single - 1 ( عند الاختيار سيتم عمل الخاصيه Border Color وهيكون حدود الـ Label بخلفية حسب الاختيارك من Border Color) لذالك هذه الخاصيه مرتبطه بالخاصيه Border Color مثال لو اختارنا لون خلفيه للـ Label لون رمادى ولون حدود احمر شاهد الصورة ولاحظ ان الخاصيه Back Color اختيارها 1 وايضا الخاصيه Border Color اختيارها 1 شاهد الصوره ******************************************************************************************************************************************** 8- الخاصيه ( Caption):- هذه الخاصيه تتيح للمستخدم كتابة نص او رقم او اى شئ ليكون هو عنوان الـ Label الظاهر على الفورم وهى من اهم الخصائص على الاطلاق ان لم يكن الوحيده لان الليبل ما هو الا عنوان لعنصر على الفورم والخاصيه Caption هى التى يكتب بها العنوان المراد مثال لو كتبنا بسم الله الرحمن الرحيم ستجد اللـ Label على الفورم عنوانه " بسم الله الرحمن الرحيم شاهد الصوره ******************************************************************************************************************** 9- الخاصيه ( Control Tip Text ):- هذه الخاصيه عند كتابة اى شئ بداخلها فأنها تعرض النص كتلميح عند وقوف الماوس على الـ Label ****************************************************************************************************** 11- الخاصيه ( Font ):- وهذه الخاصيه تتيح للمستخدم التحكم فى نوع وسماكة وحجم الخط للنص داخل اللـ Label الافتراضى فى الفيجوال بيسك نوع الخط هو ( Tahoma ) والسماكه هى (Regular) وحجم الخط هو ( 8) يوجد على يسار الخاصيه مربع صغير به ثلاث نقاط عند الضغط عليه ستجد شاشة الFont كما هو بالصوره عاليه اختر منها نوع وسماكة وحجم الخط للنص ثم اضغط اوك ************************************************************************************************ 12- الخاصيه ( Fore Color ):- وهذه الخاصيه تتيح للمستخدم التحكم فى اختيار لون الخط للنص داخل الـ Label مثال لو اخترنا لون الاخط اصفر شاهد الصورة ************************************************************************************************************ 13- الخاصيه ( Height ) وهذه الخاصيه تتيح للمستخدم التحكم فى ارتفاع الـ Label فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد الارتفاع للـ Label أو كتابة رقم للارتفاع فى الخاصيه Height **************************************************************************************************************************** 15- الخاصيه (Left) :- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ Label عن الضلع الايسر للفورم 25-الخاصيه (Top) :- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ Label عن الضلع الاعلى للفورم مثال لو وضعنا قيمة Left 150 *** وقيمة Top 100 ستجد الصوره التالية ************************************************************************************************************************************************* 27-الخاصيه ( Width) هذه الخاصيه تتيح للمستخدم التحكم فى عرض الـ Label كما يمكن ايضا التحكم فى عرض الـ Label من خلال التصميم على الفورم بالماوس ************************************************************************************************* 24-الخاصيه (Text Align) :- وهذه الخاصيه تتيح للمستخدم التحكم فى اتجاه النص ( محاذاه النص ) داخل الـ Label هل يكون يميناً أو يساراً أو وسط Label لو ذهبت للخصائص وعند الخاصيه Text Align ستجد سهم اضغط عليه ستجد 3 خيارات امامك وهى fm Text Align Left -1 عند الاختيار ستجد ان اتجاه النص داخل Label يبداء من اليسار fm Text Align Center -2 عند الاختيار ستجد ان اتجاه النص داخل Label فى المنتصف fm Text Align Right -3 عند الاختيار ستجد ان اتجاه النص داخل Label يبداء من اليمين مثال عند اختيار رقم 2 شاهد الصورة ************************************************************************************************************************** 26-الخاصيه (Visible ) وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهور Label عند عرض الفورم وعند الضغط على السهم المجاور لها ستجد لها خيارين True و False عندد اختيار True سوف يظهر الـ Label على الفورم عند فتحه ( وهذا هو الخيار الافتراضى من الفيجوال بيسك ) وعند اختيار False ٍسوف يختفى الـ Label على الفورم عند فتحه يعنى هيكون غير ظاهر ومخفى لا يراه المستخدم *********************************************************************************************************** 20- الخاصيه ( ٍِSpecial Effect ) هذه الخاصيه من الخصائص الهامه للـ Label وهى تعطى اشكال مبهره ومميزه للـ Label ولها خمس اشكال شاهد الصوره التاليه *********************************************************************************************************** 3- كيفية التعامل والتحكم بخصائص الـ Label من شاشة الخصائص فى لغة البرمجه وكتابة الاكواد هنجرب بمثال عملى لكيفية التحكم بخصائص اللـ Label فى لغة البرمجه وهنوضع هذه الاكواد فى حدث فتح الفورم اضغط دبل كليك على الفورم وهنعمل كود فى حدث فتح الفورم اتبع الصوره التالية فبعد تنفيذ الخطوات كما هو موضح بالصوره السابقه ستجد التالى شاهد الصوره فى الصوره السابقه المربع الاحمر هو مكان كتابه الاكواد أول شئ عايزين نجعل Label Back color لونه اصفر هنكتب التالى label1.b مجرد كتابة ليبل 1 وبعدها نقطه ( تكتب من خلال جعل لغه الكيبورد انجليزى ثم الضغط على حرف ز ) ستظهر لك قائمة عند كتابة حرف B سوف يتم فلترة القائمه طبقا للحرف المكتوب شاهد الصوره ثم نقوم باختيار BackColor Label1.BackColor = 65535 كتبنا اسم الـ Label1 وبعدها (.) ثم اسم الخاصيه ثم (=) ثم النتيجة المطلوبه 255 تشير الى جعل خلفية الـLabel لونه اصفر اليك صوره بارقام الالوان فى الفيجوال بيسك ------------------------------------------------------------------------------------------------------------------------------------------------------ ولو عايزين نعمل نص للـ Label هيكون كالتالى Label1.Caption = "بسم الله الرحمن الرحيم" لو لاحظنا جعلنا النص بين علامتى تنصيص وتكتب من خلال (shift+حرف ط ) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ولو حابين نحدد حجم الخط هيكون كالتالى Label1.Font = 20 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ولوحابين نحدد سماكة الخط هيكون كالتالى بعد يساوى ستجد خيارين أما True أو False على سبيل المثال هنختار True لجعل سماكه الخط ثخين Label1.Font.Bold = True ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ولو حابين نجعل تاثر للـLabel بشكل خاص ممكن كالتالى Label1.SpecialEffect = fmSpecialEffectRaised ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ولو حابين نخلى النص داخل اللـLabel فى المنتصف كالتالى (تحديد محازاة النص داخل الـ Label ) Label1.TextAlign = fmTextAlignCenter ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ولتحديد ارتفاع الـlabel كالتالى Label1.Height = 50 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ولو حابين نحدد عرض الـ label كالتالى Label1.Width = 150 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- هذا هو الكود بشكله النهائى Private Sub UserForm_Initialize() Label1.BackColor = 65535 Label1.Caption = "بسم الله الرحمن الرحيم" Label1.Font = 20 Label1.Font.Bold = True Label1.SpecialEffect = fmSpecialEffectRaised Label1.TextAlign = fmTextAlignCenter Label1.Height = 50 Label1.Width = 150 End Sub اضغط Run أو اضغط F5 شاهد الفورم وشوف الـ label ازاى شكله ستجده كالتالى هل يوجد طريقه اخرى لكتابه الكود بشكل ابسط نعم يوجد طريقه اخرى من خلال استخدام With شاهد الكود كالتالى Private Sub UserForm_Initialize() With Label1 .BackColor = 65535 .Caption = "بسم الله الرحمن الرحيم" .Font = 20 .Font.Bold = True .SpecialEffect = fmSpecialEffectRaised .TextAlign = fmTextAlignCenter .Height = 50 .Width = 150 End With End Sub هنا استخدمنا with وطبعا لازم نقفل with ب End with ثم تكتب ( . ) وبعدها اسم الخاصيه ثم (=) جرب بنفسك وحاول اكتب الكود واى استفسار انا تحت امرك والى لقاء اخر مع درس جديد من دروس علمنى كيف اصطاد ( TextBox) انتظرونا تقبلوا تحياتى ********************************************* بسم الله الرحمن الرحيم الاخوه الكرام اليوم موعدنا بمشئية الله عن شرح TextBox كما قلنا من قبل ان TextBox هو صندوق ادخال يتم ادخال فيه نص او رقم من المستخدم اثناء العمل على الفورم أن شاء الله هيتم تناول الموضوع على اربع مراحل 1- كيفية انشاء TextBox على الفورم اثناء عملية التصميم 2- التعرف على خصائص الفورم من شاشة الخصائص اثناء عملية التصميم 3-وقت تنفيذ الكود الخاص بالـ TextBox 4-التعامل مع الـ TextBox فى لغة البرمجه 5-كيفية عمل تنسيقات للقيم المدخله نبدأ بسم الله أولا :- كيفية انشاء TextBox على الفورم اثناء عملية التصميم من صندوق التحكم أضغط على الايقونه المشار لها بحرف ِabl ثم اذهب الى الفورم وقم برسم TextBoxعلى الفورم بالابعاد اللى المناسبه لك من عرض وارتفاع شاهد الصوره التاليه توضح لك الامر فى الصوره السابقه يوجد Label1 و textBox1 هذه هى العناصر اللى موجوده على الفورم لو حابين نعمل Label و textBox ممكن يكون من خلال الطريقه السابقه وهى اضغط على العنصر المراد اضافته الى الفورم من صندوق التحكم ثم قم برسمه على الفورم وممكن من خلال الوقوف على العنصر يعنى تحديده ثم كليك يمين ستظهر قائمه اختر منها Copy دلوقتى انا عايز اعمل Label و textBox قم بتحديد Label1 واضغط على زر Ctrl من الكيبورد واستمر بالضغط عليه ثم بالماوس حدد textBox1 ثم اضغط كليك يمين بالماوس ستظهر قائمه اختر Copy ثم اذهب الى اى مكان فاضى فى الفورم واعمل كليك يمين واختر Paste او من خلال الكيبورد الضغط على زر Ctrl +زر حرف V ستجد انه تم انشاء Label2 و textBox2 وطبعا هيكون بنفس تنسيق خصائص Label1 و textBox1 شاهد الصوره --------------------------------------------------------------------------------------------------------------------------------------------- ثانياً :- التعرف على خصائص الـ TextBox من شاشة الخصائص اثناء عملية التصميم شاهد الصوره التالية لخصائص الـ TextBox هنمسك اهم الخصائص والاكثر شيوعا فى الاستخدام ونبدا نشرح بالتفصيل الخاصيه (Name) :- Name هو اسم الـ TextBox المستخدم فى الاكواد وعند انشاء اى TextBox يقوم الفيجوال بيسك بأعطاء اسم افتراضى له TextBox1 واذا قمنا بعمل TextBox ثانى فأن الفيجوال بيسك يعطى له اسم افتراضى TextBox2 وانا افضل عدم تغيير اسماء TextBox الافتراضيه التى عرفها الفيجوال بيسك فعندما نريد كتابه كود خاص بالعنصر TextBox1 فى حدث Change على سبيل المثال يكون بداية الكود كالتالى Private Sub TextBox1_Change() فأذا قمنا بتغيير اسم TextBox1 كما عرفه الفيجوال بيسك الى اسم اخر من خاصيه Name وليكن مثلا غيرناه الى (Nomber ) فهنا عند كتابة كود فى حدث Change يكون كالتالى Private Sub Nomber_Change() ففى حال تغيير الاسم وعدم التزامك بالاسم داخل محرر الاكواد وكتابة كود يحدث Error ------------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه ( Back Color) هذه الخاصيه تتيح للمستخدم تغيير لون خلفية TextBox1 على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك أنظر الصوره التاليه --------------------------------------------------------------------------------------------------------------------------------------------- الخاصيه ( Control Source) وهذه الخاصيه تتيح للمستخدم تحديد خلية محدده تظهر محتواها فى TextBox1 عند عرض الفورم والعكس صحيح بمعنى ان اى ادخال فى TextBox1 يظهر مباشره فى الخليه التى قمت بكتابتها فى الخاصيه Control Source فعلى سبيل المثال لو كتبنا ان Control Source هو محتوى الخليه A1 فعند عرض الفورم ستجد ان محتوى الخليه ظاهر فى الـ TextBox1 ولو قمت بتعديل المحتوى الموجود فى TextBox1 وضغط انتر سوف يتغير مباشره فى الخليه A1 الخلاصه انه يجعل خلية محدده مربوطه بالـ TextBox1 شاهد الصوره --------------------------------------------------------------------------------------------------------------------------------------- الخاصيه ( Enabled ) هذه الخاصيه تحمل خيارين true و False عند اختيار true سوف يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 وعند اختيار False لا يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 شاهد الصوره عند اختيار False ---------------------------------------------------------------------------------------------------------------------------------------- الخاصيه (Font) :- وهذه الخاصيه تتيح للمستخدم التحكم فى نوع وسماكة وحجم الخط للنص داخل الـ TextBox1 الافتراضى فى الفيجوال بيسك نوع الخط هو ( Tahoma ) والسماكه هى (Regular) وحجم الخط هو ( 8) الخاصيه (Font Color) :- وهذه الخاصيه تتيح للمستخدم التحكم فى اختيار لون الخط للنص داخل الـ TextBox1 مثال عند اختيار نوع الخط (Traditional Arabic) والسماكه ( Bold ) وحجم الخط (18) شاهد الصوره ------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه ( Height ) وهذه الخاصيه تتيح للمستخدم التحكم فى ارتفاع الـ TextBox1 فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد الارتفاع للـ TextBox1 أو كتابة رقم للارتفاع فى الخاصيه Height ------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه ( Width) هذه الخاصيه تتيح للمستخدم التحكم فى عرض الـ TextBox1 كما يمكن ايضا التحكم فى عرض الـ TextBox1 من خلال التصميم على الفورم بالماوس ------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه (Left) :- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ TextBox1 عن الضلع الايسر للفورم الخاصيه (Top) :- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ TextBox1 عن الضلع الاعلى للفورم مثال لو وضعنا قيمة Left 126 *** وقيمة Top 90 ستجد الصوره التالية ----------------------------------------------------------------------------------------------------------------------------------------------- الخاصيه ( Locked ) هذه الخاصيه تحمل خيارين true و False عند اختيار False سوف يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 وعند اختيار True لا يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 يعنى هيكون فى حمايه على TextBox1 ---------------------------------------------------------------------------------------------------------------------------------------- الخاصيه ( Maxlenght ) هذه الخاصيه يمكن من خلالها التحكم فى عدد الاحرف او الارقام المدخله بالـ TextBox1 لو حضرتك عايز تجبر المستخدم على ادخال وليكن عدد 8 أحرف فقط اكتب فى خاصيه Maxlenght رقم 8 فلو حب المستخدم يكتب ( محمد خالد ) فأنه لا يستطيع الا كتابة (محمد خال) لماذا لانه تم تحديد عدد الادخال 8 فقط واحد هيقولى محمد خالد عددها 8 حروف هقوله ان الفيجول هيقوم بعد الفاصله اللى بين محمد وبين خالد وبالتالى (محمد 4 حروف + 1 فاصله + خال 3 حروف كدا =8) شاهد الصوره ------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه ( Multiline ) هذه الخاصيه تحمل خيارين true و False عند اختيار False سوف يكون عرض المحتوى اللى بيتم ادخاله او تعديل فى محتوى TextBox1 على سطر واحد فقط وعند اختيار True سوف يكون عرض المحتوى اللى بيتم ادخاله او تعديل فى محتوى TextBox1 على عدة اسطر ويجب مراعاة تعديل ارتفاع TextBox1 ليظهر اكثر من سطر شاهد الصوره ------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه ( Password char ) هذه الخاصيه يمكن من خلالها التحكم فى طريقة أظهار القيم المدخله بالـ TextBox1 لو حضرتك عايز تجعل القيم المدخله فى TextBox1 على شكل ( * ) مثلا شاهد الصوره التالية ------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه ( ScrollBars ) هذه الخاصيه تحمل اربع خيارات ويبدأ العدد من 0 الى 3 0- FMScrollBarsNone ( هذا يعنى الغاء خاصيه ScrollBars ) 1-FMScrollBarsHorizontal ( هذا يعنى عمل ScrollBars للـ TextBox1 بشكل أوفقى ) 2-FMScrollBarsVertical ( هذا يعنى عمل ScrollBars للـ TextBox1 بشكل رأسى ) 3-FMScrollBarsBoth ( هذا يعنى عمل ScrollBars للـ TextBox1 بشكل أفقى و رأسى مع بعض ) *** الاختيار رقم 1 وهو عمل ScrollBars للـ TextBox1 بشكل أوفقى لابد من جعل خاصيه Multiline تكون False يعنى يكون الكتابه على سطر واحد وبكدا يعمل سكرول بار افقى للوصول الى اخر السطر **** الاختيار رقم 2 وهو عمل ScrollBars للـ TextBox1 بشكل رأسى لابد من جعل خاصيه Multiline تكون True يعنى يكون الكتابه على عدة أسطر وبكدا يعمل سكرول بار رأسى للوصول الى اخر السطر **** الاختيار رقم 3 وهو عمل ScrollBars للـ TextBox1 بشكل رأسى واخر افقى بصراحه حاولت استخدمه لكن لم يظهر معى بشكل افقى وراسى وتفسير ذالك هى الخاصيه Multiline لانها تحمل خيارين اما الادخال يكون على سطر واحد وبالتالى فان الاسكرول بار الرأسى لا يوجد له فائده وأما الادخال على عدة اسطر متتاليه وبالتالى ان الاسكرول بار الافقى لي له فائده هذا والله اعلم ( مش عايز افتى فى شئ لا اعلمه واترك الامر للخبراء ) شاهد الصوره -------------------------------------------------------------------------------------------------------------------------- الخاصيه (Visible ) وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهور TextBox1 عند عرض الفورم وعند الضغط على السهم المجاور لها ستجد لها خيارين True و False عندد اختيار True سوف يظهر الـ TextBox1 على الفورم عند فتحه ( وهذا هو الخيار الافتراضى من الفيجوال بيسك ) وعند اختيار False ٍسوف يختفى الـ TextBox1 على الفورم عند فتحه يعنى هيكون غير ظاهر ومخفى لا يراه المستخدم -------------------------------------------------------------------------------------------------------------------------- الخاصيه (Tab index ) وهذه الخاصيه تتيح للمستخدم ترتيب التنقل بين الازرار على الفورم بعد الخروج منها من خلال الزر انتر ويمكن تعطيل هذه الخاصيه من خلال استخدام الخاصيه Tab stop = True الخاصيه (Tab Stop ) وهذه الخاصيه تحمل خيارين True و False عندد اختيار True يتم تعطيل خاصيه Tab index وعند اختيار False ٍسوف تفعل خاصيه Tab index للتنقل بين الازرار حسب الترتيب الذى ترغب فيه ------------------------------------------------------------------------------------------------ الخاصيه (Text Align) :- وهذه الخاصيه تتيح للمستخدم التحكم فى اتجاه بداية النص داخل الـ TextBox1 هل يكون يميناً أو يساراً أو وسط TextBox1 لو ذهبت للخصائص وعند الخاصيه Text Align ستجد سهم اضغط عليه ستجد 3 خيارات امامك وهى fm Text Align Left -1 عند الاختيار ستجد ان اتجاه النص داخل TextBox1 يبداء من اليسار fm Text Align Center -2 عند الاختيار ستجد ان اتجاه النص داخل TextBox1 فى المنتصف fm Text Align Right -3 عند الاختيار ستجد ان اتجاه النص داخل TextBox1 يبداء من اليمين ------------------------------------------------------------------------------------------------------------------------- رقم 20 الخاصيه ( ٍِSpecial Effect ) هذه الخاصيه من الخصائص الهامه للـ TextBox1 وهى تعطى اشكال مبهره ومميزه للـ TextBox1 ولها خمس اشكال شاهد الصوره التاليه كما تشاهدون فى الصوره على اليسار دائره حمرا وبداخلها سهم يمكنك الضغط على السهم سيظهر لك قائمة الخيارات للاشكال اخترمنها الشكل المناسب لك جرب كل الاشكال واطلع علىها واختر ما يناسب زوقك ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- كدا الحمد لله انتهينا من المحور الاول وهو عملية التصميم ورسم TextBox وايضا انتهينا من المحور الثانى وهو اهم خصائص الـ TextBox ان شاء الله المره القادمه نتكلم عن المحور الثالث وهو وقت تنفيذ الكود الخاص بـ TextBox ارجوا من الله ان اكون وفقت بالشرح واى استفسار انا تحت امر الجميع تقبلوا تحياتى ********************************************* ثالثاُ:- وقت تنفيذ الكود الخاص بالـ TextBox قبل أن نتحدث عن وقت تنفيذ الكود لازم نعرف أولا أزاى بيكون كتابة ألاعلان عن الكود للـ TextBox Private Sub TextBox1_Change() هنا يتم كتابة الكود المراد تنفيذه End Sub السطر الاول هو بداية الاعلان عن الكود فنقوم بكتابة Private Sub ستجد لونها بالكود أزرق ( وهو بداية لاى كود خاص لأى عنصر تحكم داخل الفورم ) ثم نقوم بكتابة اسم العنصر المراد عمل الكود له وهو بمثالنا TextBox1 ثم نقوم بكتابة _ ( تكتب من خلال الضغط على Shift+زر الطرح الموجود بالاعلى بجوار زر + ) ثم نقوم بكتابة وقت تنفيذ الكود (اللى هو موضوعنا اليوم) ثم كتابة () قوسين بهذا الشكل وبمجرد الضغط انتر ستجد الكود عمل سطر تانى فيه End sub يوجد طريقه اخرى وهى اتبع الصوره التالية توضح لك قم بالضغط على اى مكان فاضى بالفورم وادخل لمحرر الاكواد الخاص بالفورم دلوقتى هنتكلم عن أهم طرق وقت تنفيذ الكود واكثرها شيوعا فى الاستخدام 1- Afterupdate :- هنا يتم تنفيذ الكود بمجرد الانتهاء من الادخال فى TextBox1 والانتقال الى اى عنصر اخر ( وهو يشبه كثير طريقة Exit) 2-EXit :- هنا يتم تنفيذ الكود بمجرد الخروج من TextBox1 والانتقال الى اى عنصر اخر ( يشبه كثير طريقه Afterupdate ) 3-Change :- هنا يتم تنفيذ الكود عند حدوث اى تغيير فى TextBox1 4-DblClick :- هنا يتم تنفيذ الكود عند الضغط دبل كليك بالماوس داخل TextBox1 5-Enter :- هنا يتم تنفيذ الكود بمجرد وضع مؤشر الماوس داخل صندوق TextBox1 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- كدا الحمد لله انتهينا من المحور الثالث وقت تنفيذ الكود الخاص بالـ TextBox ان شاء الله المره القادمه نتكلم عن المحور الرابع وهو التعامل مع TextBox فى لغة البرمجه ارجوا من الله ان اكون وفقت بالشرح واى استفسار انا تحت امر الجميع تقبلوا تحياتى رابعاً:- التعامل مع خصائص الـ TextBox فى لغة البرمجه فى الدرس قبل السابق عرفنا ازاى نتحكم فى خصائص الفورم من شاشة الخصائص اثناء عملية التصميم فماذا لو حبينا نتحكم فى خصائص الفورم ولكن من خلال الاكواد وليس من شاشة الخصائص فى مرحله التصميم هنبدأ على طول بمثال عملى ونشرح عليه اضغط دبل كليك على اى مكان فاضى فى الفورم وهندخل محرر اكواد الفورم ونعمل كود فى حدث فتح الفورم اتبع الصوره فى المكان المظلل باللون الاحمر هنا موضوع كتابه الاكواد 1-خاصيه BackColor :- الرقم 15849925 لجعل خلفية التكست بوكس لونها سماوى فاتح ( راجع ارقام الالوان فى الدروس الخاصه بالـ Label ) TextBox1.BackColor = 15849925 **************************************************************************************************************************************** 2-خاصيه Enabled :- TextBox1.Enabled = True أو TextBox1.Enabled = False هذه الخاصيه تحمل خيارين true و False عند اختيار False سوف يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 وعند اختيار True لا يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 يعنى هيكون فى حمايه على TextBox1 *************************************************************************************************************************** 3-خاصيه Height :- للتحكم بارتفاع التكست بوكس وليكن جعل الارتفاع 35 TextBox1.Height = 35 ************************************************************************************************************************************ 4-خاصيه Left :- للتحكم فى بعد التكست بوكس عن الضلع الايسر للفورم وليكن جعل البعد 80 TextBox1.Left = 80 ********************************************************************************************************************************************* 5-خاصيه Locked :- هذه الخاصيه تحمل خيارين true و False TextBox1.Locked = False أو TextBox1.Locked = True عند اختيار False سوف يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 وعند اختيار True لا يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 يعنى هيكون فى حمايه على TextBox1 *********************************************************************************************************************** 6-خاصيه MaXLength :- هذه الخاصيه يمكن من خلالها التحكم فى عدد الاحرف او الارقام المدخله بالـ TextBox1 لو حضرتك عايز تجبر المستخدم على ادخال وليكن عدد 8 أحرف فقط اكتب فى خاصيه Maxlenght رقم 8 فلو حب المستخدم يكتب ( محمد خالد ) فأنه لا يستطيع الا كتابة (محمد خال) لماذا لانه تم تحديد عدد الادخال 8 فقط واحد هيقولى محمد خالد عددها 8 حروف هقوله ان الفيجول هيقوم بعد الفاصله اللى بين محمد وبين خالد وبالتالى (محمد 4 حروف + 1 فاصله + خال 3 حروف كدا =8) TextBox1.MaxLength = 8 **************************************************************************************************************************** 7-خاصيه Multline :- هذه الخاصيه تحمل خيارين true و False عند اختيار False سوف يكون عرض المحتوى اللى بيتم ادخاله او تعديل فى محتوى TextBox1 على سطر واحد فقط وعند اختيار True سوف يكون عرض المحتوى اللى بيتم ادخاله او تعديل فى محتوى TextBox1 على عدة اسطر ويجب مراعاة تعديل ارتفاع TextBox1 ليظهر اكثر من سطر TextBox1.MultiLine = False أو TextBox1.MultiLine = True ******************************************************************************************************** 8-خاصيه Passwordchar :- هذه الخاصيه يمكن من خلالها التحكم فى طريقة أظهار القيم المدخله بالـ TextBox1 لو حضرتك عايز تجعل القيم المدخله فى TextBox1 على شكل ( * ) مثلا شاهد الصوره التالية نلاحظ بالكود تم كتابة العلامه * بين اقواس تنصيص " * " ( وهى تكتب من خلال shift+حرف ط ) TextBox1.PasswordChar = "*" **************************************************************************************************************************** 9-خاصيه ScorollBars :- هذه الخاصيه تحمل اربع خيارات ويبدأ العدد من 0 الى 3 0- FMScrollBarsNone ( هذا يعنى الغاء خاصيه ScrollBars ) شاهد الكود التالى -- بمجرد كتابة = ستجد قائمة تظهر لك بالاربع خيارات TextBox1.ScrollBars = fmScrollBarsNone 1-FMScrollBarsHorizontal ( هذا يعنى عمل ScrollBars للـ TextBox1 بشكل أوفقى ) TextBox1.ScrollBars = fmScrollBarsHorizontal 2-FMScrollBarsVertical ( هذا يعنى عمل ScrollBars للـ TextBox1 بشكل رأسى ) TextBox1.ScrollBars = fmScrollBarsVertical 3-FMScrollBarsBoth ( هذا يعنى عمل ScrollBars للـ TextBox1 بشكل أفقى و رأسى مع بعض ) TextBox1.ScrollBars = fmScrollBarsBoth *********************************************************************************************************************** 10-خاصيه Visible :- وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهور TextBox1 عند عرض الفورم عندد اختيار True سوف يظهر الـ TextBox1 على الفورم عند فتحه ( وهذا هو الخيار الافتراضى من الفيجوال بيسك ) TextBox1.Visible = True وعند اختيار False ٍسوف يختفى الـ TextBox1 على الفورم عند فتحه يعنى هيكون غير ظاهر ومخفى لا يراه المستخدم TextBox1.Visible = False *********************************************************************************************************************** 11-خاصيه Top :- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ TextBox1 عن الضلع الاعلى للفورم TextBox1.Top = 90 ************************************************************************************************************************************ 12-خاصيه Width :- هذه الخاصيه تتيح للمستخدم التحكم فى عرض الـ TextBox1 لو فرضنا نريد جعل العرض 100 TextBox1.Width = 100 ******************************************************************************************************************************** 13-خاصيه Text Align :- وهذه الخاصيه تتيح للمستخدم التحكم فى اتجاه بداية النص داخل الـ TextBox1 هل يكون يميناً أو يساراً أو وسط TextBox1 بمجرد كتابة = ستجد الفيجوال بيسك يعرض لك قائمة بها 3 خيارات fm Text Align Left -1 عند الاختيار ستجد ان اتجاه النص داخل TextBox1 يبداء من اليسار TextBox1.TextAlign = fmTextAlignLeft fm Text Align Center -2 عند الاختيار ستجد ان اتجاه النص داخل TextBox1 فى المنتصف TextBox1.TextAlign = fmTextAlignCenter fm Text Align Right -3 عند الاختيار ستجد ان اتجاه النص داخل TextBox1 يبداء من اليمين TextBox1.TextAlign = fmTextAlignRight **************************************************************************************************************************** 14-خاصيه Special Effect :- هذه الخاصيه من الخصائص الهامه للـ TextBox1 وهى تعطى اشكال مبهره ومميزه للـ TextBox1 ولها خمس اشكال بمجرد كتابة = ستجد الفيجوال بيسك يعرض لك قائمه بها 5 خيارات على سبيل المثال منها TextBox1.SpecialEffect = fmSpecialEffectBump جرب كل الخيارات واختار منها ما يناسب زوقك ************************************************************************************************************************************** الكود بشكله النهائى هيكون كدا Private Sub UserForm_Initialize() TextBox1.BackColor = 15849925 TextBox1.Enabled = True TextBox1.Height = 35 TextBox1.Left = 80 TextBox1.Locked = False TextBox1.MaxLength = 8 TextBox1.MultiLine = True TextBox1.PasswordChar = "*" TextBox1.ScrollBars = fmScrollBarsBoth TextBox1.Visible = True TextBox1.Top = 90 TextBox1.Width = 100 TextBox1.TextAlign = fmTextAlignRight TextBox1.SpecialEffect = fmSpecialEffectBump End Sub *************************************************************************************************************** كدا الحمد لله انتهينا من المحور الرابع وهو التعامل مه خصائص ال TextBox فى لغة البرمجه ان شاء الله المره القادمه نتكلم عن المحور الخامس والاخير وهو كيفية عمل تنسيقات للقيم المدخله بـ TextBox ارجوا من الله ان اكون وفقت بالشرح واى استفسار انا تحت امر الجميع تقبلوا تحياتى
    1 point
  9. وجزيت خيراً أخي الغالي أحمد بمثل ما دعوت لي وزيادة وإن شاء الله يضبط معك التعديل تقبل تحياتي
    1 point
  10. أخي الكريم صلاح وجهتك لموضوع الأخ محمد أبو صهيب ولم تلتفت إليه هذا هو رابط الموضوع من هنا ستجد النسخة الأحدث في أول مشاركة بالموضوع .. وإن شاء الله يؤدي الغرض
    1 point
  11. وجزيت خيراً أيها المتعلم المجتهد والأخ الحبيب أحمد بارك الله فيك على مرورك العطر .. وإن شاء الله الصبر عواقبه طيبة وحسنة عايزين نشوف الشغل بعد الدورة دي .. مش مجرد معلومات بتتحفظ وخلاص ..عايزين تطبيقات عملية وحلول تقدم على أعلى مستوى إن شاء المولى تقبل تحياتي
    1 point
  12. توكل على الله يا ابو البراء وان شاء الله ستجدنا من الصابرين للتعلم وجزاك الله عنا كل خير تقبل تحياتى وتقديرى
    1 point
  13. أنا قلت مجرد رأي شخصي يا أخي الغالي سعد .. وقد أكون مخطيء ولكن دعنا من الخطأ والصواب ولنركز على المعلومة التي تقدم لنا .. بالتأكيد طالما أنهم سبقونا إذاً أسلوب التعلم والمنهج الذي يسيرون عليه أفضل منا .. فلتكن البداية منهم والنهاية لنا تقبل تحياتي
    1 point
  14. اخى الحبيب ياسر ابوالبراء عندك حق اكمل ونحن معك بارك الله فيك وجزاك الله خيرا
    1 point
  15. ايه السؤال ده ياراجل ؟!!! بس خليني اقدم لك حاجه او تصبيره في كود البحث Private Sub cmbsearch_Click() On Error Resume Next Me!esano_1.Form.RecordSource = "esano1" esano_1.Requery Me.Refresh End Sub انت تحتاج فقط me.refresh وعودة للسؤال فماهي الحاجة الفعليه او فائدتها بالنسبة لك ؟ او بالتحديد في مثالك ؟ والله المستعان
    1 point
  16. بسم الله الرحمن الرحيم اعضاء المنتدى الكرام السلام عليكم ورحمة الله وبركاتة فى هذا الدرس من درووس اكسيل 2010 سنتعرف على كيفية البحث بين اكثر من ملف اكسل والجداول المختلفة سواء كانت بيانات العملاء او الموردين او المبيعات وذلك با ستخدام دالة من دوال البحث وهى الدالة vlookup بطريقة متقدمة وسهلة باذن الله . لمشاهدة الفيديو من هنا https://youtu.be/RSmF4imHCJM رزيارة موقعنا للتعرف على مزيد من الدرورس من هنا http://etalmfree.blogspot.com.eg/ البحث بين اكثر من ملف.rar
    1 point
  17. شكرا لك استاذنا او البراء باركك الله ونفع بعلمك ولا حرمك من غناه وعافيته وعفوه واصل شرحك ولا تنقطع عنا
    1 point
  18. اخي حامد ايش رايك امشي معاك خطوة خطوة حتى نصل لما تريد ! فمثلا انت تريد الادخال كما بجداول النشر مثل الاكسل ! ممكن ذلك اطرح ماتريد بالضبط وكيفية الادخال كذلك وحنشوف مع بعض وخطوه خطوه كيف يتم ماتريد بالتمام وباستخدام قواعد ونظم قواعد البيانات الصحيحية والسليمة 1 بالتوفيق
    1 point
  19. وهذه طريقة لاستخراج النصوص بلا تشكيل عن طريق الاستعلام اختصرنا الكود السابق ووضعناه في وحدة نمطية عامة واستخدمناه داخل الاستعلام Public Function delTshkeel(tshkeel As String) Dim i As Integer Dim fld As String, wr As String, spa As String wr = "" fld = tshkeel i = 1 Do While i <= Len(fld) spa = Mid(fld, i, 1) If Asc(spa) = 240 Or Asc(spa) = 241 Or Asc(spa) = 242 Or Asc(spa) = 243 Or Asc(spa) = 244 Or Asc(spa) = 245 Or Asc(spa) = 246 Or Asc(spa) = 247 Or Asc(spa) = 248 Or Asc(spa) = 249 Or Asc(spa) = 250 Then Else wr = wr & spa End If i = i + 1 Loop delTshkeel = wr End Function وهذا المرفق استعلام حذف التشكيل.rar
    1 point
  20. جزاك الله كل خير يا ابو البراء جعله الله فى ميزان حسناتك وبارك الله لك فى اهلك ومالك وكل ما تحب ورزقك من حيث لاتحتسب تقبل تحياتى ياغالى
    1 point
  21. في الحقيقة لدي حل ... لكن بما انه لديك 20 ايصال فسيكون حلي معقد ... افتح موضوع جديد ... على امل ايجاد حل اسهل ...
    1 point
  22. شكرا جزيلا يا أستاذ سليم وأسال الله عز وجل أن يجعل هذا العمل في ميزان حسناتك يوم القيامة
    1 point
  23. أستاذ ياسر أنت بتأمر أمر مو معقول - طلب بسيط لشخص أفضاله على كل المنتدى تكرم عيونك يا أخي و شكرا للوقت اللي عم تفقده من أجل تعليمنا
    1 point
  24. أخي الكريم إن شاء الله صحيح توكل على الله وأكمل طالما أن النتائج صحيحة .. وراعي وضع الشروط بشكل صحيح ، وحاول تختبر الدالة بعد كل إضافة لتتلاشى الأخطاء وفقك الله لما يحب ويرضى
    1 point
  25. وعليكم السلام لا أدري إذا كان بالإمكان اختصار الدالة أو لا ..هذا يرجع لعدد الشروط ولكن أقترح أن يتم عمل عمود مساعد تجمع فيه الشروط وتشوف الشروط المتاحة جميعها وتبدأ تتعامل معاها بهذا الشكل الجديد .. العمود المساعد يجمع الخلايا اللي فيها الشروط مرة واحدة .. باستخدام الدالة concatenate
    1 point
  26. استاذي تم عمل اللازم بارك الله فيك ولك ... ولا تستطيع كلماتي ان توفي فيك دمت بحفظ الله وامنه تقديري واحترامي
    1 point
  27. السلام عليكم وجمعة مباركة يإذن الله استاذ ياسر بارك لله بك وجزاك كل خير تستحقه شرح رائع
    1 point
  28. جزيتم خيرا - بارك الله في عمركم - استاذ ياسر - والاخ عبد الباري نسأله تعالى ان يرزقكم ويزدكم من فضله
    1 point
  29. السلام عليكم ورحمة الله وبركاته احبتي اهدي لكم محاولة بسيطة لموضوع إزالة التشكيل في الاكسس طبعا كان هناك مشاركات حول هذا الموضوع هنا http://www.officena.net/ib/index.php?showtopic=59784 حيث يتلخص الحل بفكرتين : 1. انشاء دالة خاصة تقوم بفحص الاحرف والرموز المستثناه من الابعاد عن النص وما غير ذلك سيتم اعتماده ! انظر استعلام 1 والدالة fn 2. باستخدام إمكانيات الورود في ذلك ! انظر نموذج1 ! لاحظ هنا انه لابد من وضع مرجع للورود من خلال نافذة الكود ملاحظة : استخدمت ملف الأخ السائل في الرابط السابق الأخ "محب لله ورسوله" وذلك لاحتوائه على نص مشكل وفضيل ونسأله سبحانه الثواب والاجر لنا وللأخ صاحب الملف ! تحياتي 'رمهان 'اوفيسنا Public Function fn(fld) y = "أبجدهوزحطيكلمنسعفصقرشتثخذضظغـ ىؤءئةاآإ()><.؟}{][1234567890:,/" For i = 1 To Len(fld) If InStr(1, y, Mid(fld, i, 1)) > 0 Then xx = xx & Mid(fld, i, 1) Next i fn = xx End Function Private Sub أمر0_Click() ''رمهان ''اوفيسنا Set objw = CreateObject("Word.application") Set objd = objw.Documents.Add ''هنا تستطيع عمل شرط على السجلات مثلا الفارغة وذلك لتقليل كثرة عملية التعديل Set rs = CurrentDb.OpenRecordset("جدول_الرسائل"): rs.MoveLast: rs.MoveFirst For i = 1 To rs.RecordCount objd.Range.Text = rs(1) objw.Selection.Find.ClearFormatting objw.Selection.Find.Replacement.ClearFormatting With objw.Selection.Find .Text = "[ً-ْ]" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With objw.Selection.Find.Execute Replace:=wdReplaceAll DoCmd.RunSQL "update جدول_الرسائل set حقل1='" & objd.Range.Text & "' where مفتاح_أساسي=" & rs(0) rs.MoveNext Next i Set objd = Nothing objw.Application.Quit SaveChanges:=wdDoNotSaveChanges Set objw = Nothing Set objd = Nothing End Sub التشكيل.rar
    1 point
  30. يمكن عمل ذلك ولكن حسب فهمي قد لاتتطابق جميع خيارات النموذج لجميع الطلاب ! فمثلا صفة ولي الامر قد تختلف من طالب لاخر وكذلك سبب الاتصال ! هذا وان لي ملاحظة على تصميم هذا الجدول حيث افهمت انه تسجل به احداث التواصل مع اولياء الامور ! لهذا وجود الصف والشعبه تكون في جدول اخر وكذلك صفة ولي الامر وجواله ! فما رايك بهذه الملاحظات اخ علي ! وان كنت تريد التنفيذ كما طلبت على طلاب الشعبة المحدده قل لنا كيف نحصل على معلومات صفة ولي الامر وموبايل ولي الامر لانها مختلفة من طالب لاخر ؟ بالتوفيق
    1 point
  31. وجزيت خيراً أخي الغالي أحمد مشكور مرورك العطر بالموضوع
    1 point
  32. حياك الله استاذ علي يمكنك عمل تقريرين احدهما لطالب معين والآخر لشعبة معينة ونضع الشرط في الاستعلام مصدر التقرير هذا مثلا للطالب forms!parent!student وهذا مثلا للشعبة forms!parent!Shoaba بالتوفيق
    1 point
  33. السلام عليكم استخدم الدالة iferror وستفى بالغرض انشاء الله رفع الخطا في المعادلة.rar
    1 point
  34. 1 point
  35. أخي العزيز صلاح الدين تفضل البرنامج Passware Password Recovery Kit Professional 11.1.4 ومعه السيريال ويا رب يساهم في حل مشكلتك .. أخبرنا بالنتائج بعد التجربة كلمة السر لفك الضغط officena حمل البرنامج من هنا
    1 point
  36. أخي الحبيب ياسر العربي شوف سكة للملفات المحمية من برا دي .. جرب برامج الهيكس لربما تنجح في كشف أغوارها الموضوع صعب لما تكون الحماية على المصنف من برا ..لكن أي حماية لأوراق العمل أو محرر الأكواد فدي أمرها بسيط وميسور إن شاء الله تصل لحل يا عربي ..خليك متحدي! زي ما قدرت على الملفات التنفيذية اللي كنا بنقول هي الحماية الأكيدة لملفات الإكسيل فإن شاء الله تجد حلاً لها تقبل وافر تقديري واحترامي
    1 point
  37. السلام عليكم بارك الله فيك علي الملف وهو يعمل بشكل جيد .. لكن كيف احصل علي رقم الهارد وليس رقم البارتشن
    1 point
  38. الطريقه الٍسادسه :- تعبئه الكمبوبوكس باستخدام الحلقه التكراريه For Each (طريقه احترافيه) لو عندى شيت زى كدا وفيه بيانات وعايز اقوم بتعبئة الكمبوبوكس بالبيانات المظلله باللون الاخضر شاهد الصوره مثال :- مطلوب تعبئة الكمبوبوكس 1 بالبيانات المظلله باللون الاخضر هنعمل الكود التالى With ComboBox1 For Each Data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value Next End With نشرح الكود ونمشى وحده وحده ونشوف ازى تم كتابته بالسطر الاول استخدمنا With ComboBox1 يعنى بنقول للكود الشغل بتاعنا هيكون مع الكمبوبوكس 1 ( الكمبوبوكس المطلوب تعبئته ) وطبعا طالما فتحنا With يبقى لازم نقفلها بــ End With زى كدا With ComboBox1 End With السطر التانى استخدمنا الحلقه التكرارية For Each وسميت الحلقه بأسم Data (وممكن تسميها اى اسم او احرف اخرى كما يحلو لك ) Data موجوده فى اى نطاق قلتله موجود فى النطاق من A2 الى اخر خلية بها بيانات فى العمود A ( وطبعا عرفنا ازاى قبل كدا نعرف اخر صف به بيانات فى اى شيت وفى اى عمود ) وكدا الحلقه التكرارية هتبدأ تلف على كل خليه فى النطاق المذكور بدأ من الخلية A2 وطبعا لازم نقفل الحلقه بـ Next For Each Data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) Next فلحلقه لما تبدأ هيكون Data = A2 Next الكود هيروح للخليه اللى بعدها Data = A3 Next الكود هيروح للخليه اللى بعدها Data = A4 Next الكود هيروح للخليه اللى بعدها وهكذا حتى يصل الى اخر خليه بها بيانات بالعمود وهى A11 كدا الحلقه بتلف بدون فائده او بالادق بدون مهمه تنفذها مجرد فقط انه بيلف انا عايز استفيد من الفه بتاعته دى فنعمل ايه هقوله وانت بتلف اعمل حاجتين خلى Data اللى هى فى اول لفه هتكون قيمتها A2 دخلها فى العمود الاول للكمبوبوكس ( ملحوظه العمود الاول فى الكمبوبوكس بيكون رقمه 0 والخليه المجاورة لها بالعمود B اللى هى B2 دخلها بالعمود الثانى بالكمبوبوكس ( ملحوظه العمود الثانى بيكون رقمه 1 ) وهكذا وهو بيمر على كل خليه بالنطاق هيعمل كدا .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value ترتيب الاعمده فى الكمبوبوكس بيدأ من 0 وكذالك ترتيب الصفوف بيدأ من 0 AddItem هى العمود رقم 0 فى الكمبوبوكس والعمود ده يساوى Data اللى هى كل خليه هتمر فيها الحلقه اللى هى اسماء العملاء بالعمود A والعمود رقم 1 فى الكمبوبوكس هو (List(.ListCount - 1, 1. هيظهر فيه كود العميل اللى بالعمود B (رقم العمود , صفوف الكمبوبوكس)List. صفوف الكمبوبوكس بتبدأ من 0 زى ما قلت علشان كدا قلت ان صفوف الكمبوبوكس - 1 **** ListCount - 1. طيب العمود رقم 1 عايزين نظهر فيه الكود اللى بالعمود B بالشيت فنعمل ايه Data.Offset(0, 1).Value= هنا استخدمنا الداله offset فى اول لفه للحلقه هيكون Data = A2 فأنا بقوله انتقل من A2 بمقدار صف 0 والعمود 1 ( يعنى ايه صف 0 يعنى نفس الصف والعمود واحد يعنى تحرك وروح للعمود B اخر شئ طبعا الكود ده وقت تنفيذه انت اللى بتحدده ولكن على سبيل المثال انا عايز اكتبه فى حدث تشغيل الفورم فيكون كالتالى Private Sub UserForm_Initialize() With ComboBox1 For Each Data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value Next End With End Sub والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد وطريقه اخرى من طرق تعبئة الكمبوبوكس الطريقه القادمه هنعرف ازاى نجلب البيانات بالكمبوبوكس دون تكرار انتظرونا تقبلوا تحياتى
    1 point
  39. الطريقه الخامسه :- تعبئه الكمبوبوكس ببيانات محدده فمن خلال هذه الطريقه يمكن تعبئة الكمبوبوكس ببيانات محدد يتم كتابتها بالكود يعنى لا يوجد مرجع لها بالاكسيل فى اى شيت مثال لو انت حضرتك حابب تعمل خيارين فقط للمستخدم مثلا يختار أما سند قبض أو سند صرف هنعمل الكلام ده من خلال مصفوفه شاهد الكود اولا ثم نكمل التوضيح Dim a As Variant a = Array("سند قبض", "سند صرف") ComboBox1.List = a السطر الاول بالكود هو تعريف متغير وسمناه a ( وممكن تسميه اى حرف اخر او حروف اخرى ) وقلنا ان المتغيير ده من النوع Variant Dim a As Variant طيب a اللى هى من النوع Variant عباره عن ايه لازم بقى اديها قيمه وعرفها علشان كدا كتبنا السطر التانى a = Array("سند قبض", "سند صرف") Array دى عباره عن داله من دوال VbA وهى المصفوفه ( عباره كدا عن حصاله بنجمع بها المعلومات اللى عايزينها علشان نستخدمها بعد كدا ) طيب بعد ما عرفنا a وقلنا ان a عباره عن مصفوفه وبعدين قمنا بتخزين القيم اللى عايزينها داخل المصفوفه بعد كدا عملنا فى السطر التالى قلنا ان الكمبوبوكس القائمه بتاعته تساوى العناصر اللى داخل المصفوفه ComboBox1.List = a طيب الكود ده يوضع فى اى حدث ؟ دى بقى حضرتك اللى تجاوب عليها حسب احتياج برنامجك ولكن ممكن نفترض انه يكون فى حدث فتح الفورم مثلا كالتالى Private Sub UserForm_Initialize() Dim a As Variant a = Array("سند قبض", "سند صرف") ComboBox1.List = a End Sub شاهد الصوره التاليه عند فتح الفورم يعنى باختصار كل اللى يهمه بالكود ده هو السطر التالى تقدر من خلاله تحديد البيانات المطلوب عرضها a = Array("سند قبض", "سند صرف") ممكن يكون كدا مثلا a = Array("فاتورة مبيعات", "فاتورة مشتريات", "فاتورة مردود مبيعات", "فاتورة مردود مشتريات") شاهد الصوره عند تغيير العناصر داخل المصفوفه **************************************************************************** وهذه طريقه اخرى لكتابة الكود Private Sub UserForm_Initialize() Dim a As Variant a = Array("سند قبض", "سند صرف") For i = LBound(a) To UBound(a) ComboBox1.AddItem a(i) Next End Sub بدل استعمال الخاصيه List فى تعبئه الكمبوبوكس بالعناصر اللى داخل المصفوفه قمنا باستخدام الحلقه التكراريه For للمرور على كل عناصر المصفوفه وادخالها فى الكمبوبوكس ************************************************************************************** والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد وطريقه اخرى من طرق تعبئة الكمبوبوكس تقبلوا تحياتى
    1 point
  40. الطريقه الرابعه :- استخدام لغة البرمجه هى بنظرى من اهم الطرق واسهلها وهى تكون من خلال البرمجه فقط ولا يمكن تنفيذها من شاشة الخصائص فى مرحله التصميم شاهد الصوره التالية هتعرف ما هى الطريقه الكود هو بشكل مكبر عباره عن سطر واحد فقط ComboBox1.RowSource = "sheet1!a2:b" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row تعالو نفصص كل كلمة فى هذا السطر ونعرف ازاى نكتبه comboBox هو اسم الكمبوبوكس المراد تعبئته بالبيانات . تكتب من خلال جعل الكيبورد انجلش ثم نضغط على حرف ز بالعربى RowSource هى الخاصيه المسئوله عن تعبئة الكمبوبوكس بالبيانات = نكتب علامه = " نفتح قوس تنصيص " ويكتب من خلال شفت+حرف ط بالعربى Sheet1!a2 وهى اول خلية بالجدول المراد عرض بياناته فى الكمبوبوكس (ونلاحظ اننا كتبنا اسم الشيت متبوع بعلامة تعجب ! ثم اسم الخلية) : تعنى الى b اسم اخر عمود بالجدول " قفل قوس التنصيص طالما فتحنا قوس اذن لازم نقفله & علامة و أو بمعنى and Sheet1.Cells(Rows.Count, "a").End(xlUp).Row اخر خليه بها بيانات بالعمود A طيب عرفنا ازاى نكتب الكود فما هو وقت تنفيذ الكود السطر ده هيتم وضعه فى اى حدث ( والله دى بقى حضرتك اللى تحددها حسب برنامجك انت ولكن على سبيل المثال نضع هذا الكود فى حدث فتح الفورم شاهد الكود Private Sub UserForm_Initialize() ComboBox1.RowSource = "sheet1!a2:b" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row End Sub فعند فتح الفورم وتهيئته يتم تعبئة الكمبوبوكس بالبيانات ممكن نكتبه بشكل تانى لو حابب تعرف اكتر من طريقه شوف الكود وبعدين اشرحه لك Private Sub UserForm_Initialize() Lr = Sheet1.Cells(Rows.Count, "a").End(xlUp).Row ComboBox1.RowSource = "sheet1!a2:b" & Lr End Sub قمت بعمل متغير وسميته Lr وممكن تسميها انت بأى اسم كما تحب وقلت ان المتغير ده عباره عن اخر خلية بها بيانات بالعمود A وبالتالى كتبة المصدر بتاع البيانات كالتالى sheet1!a2:b" & Lr" تم الاستعاضه بـ Lr بدلا من السطره ده Sheet1.Cells(Rows.Count, "a").End(xlUp).Row ويمكن كتابة الكود بشكل اخر ( ملحوظه هذا التنوع بالكتابه هو فقط من حيث اسلوب كتابة الكود لكن المضمون واحد) Private Sub UserForm_Initialize() With ComboBox1 .RowSource = "sheet1!a2:b" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row End With End Sub الى هنا انتهى درس اليوم اعتقد انه بسيط وممتع يارب اكون وفقت بالشرح وتستفيدو منه عايز اشوف تجاربكم على الدرس على رابط الردود الخاص بالموضوع اتمنى لكم التوفيق وانتظرونا فى طريقه جديده قريبا بأذن الله
    1 point
  41. رابعاً:- التعامل مع خصائص الـ ComboBox فى لغة البرمجه فى الدرس قبل السابق عرفنا ازاى نتحكم فى خصائص ComboBox من شاشة الخصائص اثناء عملية التصميم فماذا لو حبينا نتحكم فى خصائص ComboBox ولكن من خلال الاكواد وليس من شاشة الخصائص فى مرحله التصميم هنبدأ على طول بمثال عملى ونشرح عليه اضغط دبل كليك على اى مكان فاضى فى الفورم وهندخل محرر اكواد الفورم ونعمل كود فى حدث فتح الفورم اتبع الصوره هتلاقى الصوره دى فى المكان المظلل باللون الاحمر هنا موضوع كتابه الاكواد ولكتابة اى كود خاص بأى عنصر تحكم فى الفورم يكون على الشكل التالى الخاصيه ( Back Color):- زى ما قلنا قبل كدا ان هذه الخاصيه تتيح للمستخدم تغيير لون خلفية للـ ComboBox عايزين نكتب فى المربع الاحمر كود يجعل لون خلفية الكمبوبوكس (سماوى ) عند فتح الفورم لو حضرتك محترف كتابة انجلش كويس على الكيبورد وسريع خلاص لا تهتم بالقائمة المساعده للخصائص اللى بيعرضها الفيجوال بيسك واكتب انت بنفس سطر الكود ناخد مثال اخر عن الخاصيه ( Back Style):- ناخد مثال اخر عن الخاصيه ( Row Source ):- ComboBox1.RowSource = "A1: b5" سطر الكود زى ما هو ظاهر تم كتابة اسم العنصر ثم . ثم اسم الخاصيه ثم = ثم المدى المراد اظهاره فى الكمبوبوكس ( المدى تم كتابته بين اقواس تنصيص " المدى " وهذه الاقواس كما قلنا انها تكتب من خلال الضغط على شيفت + حرف ط بالعربى ) ناخد مثال اخر عن الخاصيه ( Column Heads ):- ComboBox1.ColumnHeads = True سطر الكود زى ما هو ظاهر تم كتابة اسم العنصر ثم . ثم اسم الخاصيه ثم = ثم نوع الخاصيه اما True أو false وكذالك لباقى الخصائص الخاصه باى عنصر تحكم على الفورم هذا هو الكود بشكله النهائى على الاربع خصائص السابقه Private Sub UserForm_Initialize() ComboBox1.BackColor = 15849925 ComboBox1.BackStyle = fmBackStyleOpaque ComboBox1.RowSource = "A1: b5" ComboBox1.ColumnHeads = True End Sub هل يمكن ايضا كتابة الكود بشكل ابسط نعم يوجد طريقه اخرى من خلال استخدام With وطبعا لازم نقفل With بـ End with ويكون بداية سطر الكود هو . ثم اسم الخاصيه ثم = ثم نوع أو قيمة النتيجة شاهد الكود كالتالى Private Sub UserForm_Initialize() With ComboBox1 .BackColor = 15849925 .BackStyle = fmBackStyleOpaque .RowSource = "A1: b5" .ColumnHeads = True End With End Sub أنا عايزك تجرب باقى الخصائص بنفسك ولو صدفك اى مشكله لا تتردد انك تراسلنى تابعونا
    1 point
  42. ثالثا :- وقت تنفيذ الكود الخاص بــ ComboBox دلوقتى هنتكلم عن أهم طرق وقت تنفيذ الكود واكثرها شيوعا فى الاستخدام 1- Afterupdate :- هنا يتم تنفيذ الكود بمجرد الانتهاء من الادخال فى ComboBox والانتقال الى اى عنصر اخر ( وهو يشبه كثير طريقة Exit) 2-EXit :- هنا يتم تنفيذ الكود بمجرد الخروج من ComboBox والانتقال الى اى عنصر اخر ( يشبه كثير طريقه Afterupdate ) 3-Change :- هنا يتم تنفيذ الكود عند حدوث اى تغيير فى ComboBox 4-DblClick :- هنا يتم تنفيذ الكود عند الضغط دبل كليك بالماوس داخل ComboBox 5-Enter :- هنا يتم تنفيذ الكود بمجرد وضع مؤشر الماوس داخل صندوق ComboBox دلوقتى هنعرف ازاى بيكون كتابه الاعلان على الاكواد الخاصه بالـ ComboBox ( وهى نفس الطريقه لكل عناصر التحكم فى الفورم ) مثال على حدث Afterupdate Private Sub ComboBox1_AfterUpdate() 'هنا بيتم كتابه الكود المراد تنفيذه End Sub السطر الاول هو بداية الاعلان عن الكود فنقوم بكتابة Private Sub ستجد لونها بالكود أزرق ( وهو بداية لاى كود خاص لأى عنصر تحكم داخل الفورم ) ثم نقوم بكتابة اسم العنصر المراد عمل الكود له وهو بمثالنا ComboBox ثم نقوم بكتابة _ ( تكتب من خلال الضغط على Shift+زر الطرح الموجود بالاعلى بجوار زر + ) ثم نقوم بكتابة وقت تنفيذ الكود (اللى هو موضوعنا اليوم) ثم كتابة () قوسين بهذا الشكل وبمجرد الضغط انتر ستجد الكود عمل سطر تانى فيه End sub يوجد طريقه اخرى وهى اتبع الصوره التالية توضح لك قم بالضغط على اى مكان فاضى بالفورم وادخل لمحرر الاكواد الخاص بالفورم
    1 point
  43. بسم الله الرحمن الرحيم الاخوه الكرام اليوم بمشيئة الله سنتكلم عن شروحات الكمبوبوكس ( ComboBox) كما قلنا من قبل ان ComboBox هو عباره عن وعاء يتم تعبئته ببيانات محدده لتظهر للمستخدم ليختار منها اثناء العمل على الفورم أن شاء الله هيتم تناول الموضوع على خمس مراحل 1- كيفية انشاء ComboBox على الفورم اثناء عملية التصميم 2- التعرف على خصائص ComboBox من شاشة الخصائص اثناء عملية التصميم 3-وقت تنفيذ الكود الخاص بالـ ComboBox 4-التعامل مع الـ ComboBox فى لغة البرمجه 5-معرفة مهارات تعبئة وتغذية ComboBox باكثر من طريقه التقليديه والاحترافيه منها 6-كيفية اجبار المستخدم على الاختيار من الـ ComboBox نبدأ بسم الله أولا :- كيفية انشاء ComboBox على الفورم اثناء عملية التصميم لأضافه كمبوبوكس جديد على الفورم يوجد طريقتين الطريقه الاولى الطريقه الثانية هذه الطريقه يتم من خلالها نسخ اى عنصر او اكثر من العناصر على الفورم ولصقها لعمل عناصر جديده وسوف يكون لها نفس الخصائص للعناصر الذى تم اخذ النسخ منها وفيما يعد يمكنك تغيير الخصائص للعناصر الجديد كما يحلو لك ******************************************************************************************** ثانيا:- التعرف على خصائص ComboBox من شاشة الخصائص اثناء عملية التصميم فى الصورة قبل السابقه على اليسار يوجد خصائص الكمبوبوكس محاطه بمستطيل احمر وهذه صوره مكبره لخصائص الكمبوبوكس هنمسك اهم الخصائص والاكثر شيوعا فى الاستخدام ونبدا نشرح بالتفصيل 1- الخاصيه (Name) :- Name هو اسم الـ ComboBox المستخدم فى الاكواد وعند انشاء اى ComboBox يقوم الفيجوال بيسك بأعطاء اسم افتراضى له ComboBox1 واذا قمنا بعمل ComboBox ثانى فأن الفيجوال بيسك يعطى له اسم افتراضى ComboBox2 وانا افضل عدم تغيير اسماء ComboBox الافتراضيه التى عرفها الفيجوال بيسك فعندما نريد كتابه كود خاص بالعنصر ComboBox1 فى حدث Change على سبيل المثال يكون بداية الكود كالتالى Private Sub ComboBox1_Change() فأذا قمنا بتغيير اسم ComboBox1 كما عرفه الفيجوال بيسك الى اسم اخر من خاصيه Name وليكن مثلا غيرناه الى (Customers ) فهنا عند كتابة كود فى حدث Change يكون كالتالى Private Sub Customers_Change() ففى حال تغيير الاسم وعدم التزامك بالاسم داخل محرر الاكواد وكتابة كود يحدث Error ------------------------------------------------------------------------------------------------------------------------------------------------ 2- الخاصيه ( Back Color):- هذه الخاصيه تتيح للمستخدم تغيير لون خلفية للـ ComboBox على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك أنظر الصوره التاليه 3- الخاصيه ( Back Style):- هذه الخاصيه تحمل خيارين هما Fm Back Style TransParent - 0 ( عند الاختيار سيتوقف عمل الخاصيه Back Color حتى ولو كان تم اختيار لون بها وليكن خلفية سماوية كما هو بالمثال السابق سيظهر الـ ComboBox بخلفية ساده ) Fm Back Style Opague - 1 ( عند الاختيار سيتم عمل الخاصيه Back Color وهيكون الـ ComboBox بخلفية حسب الاختيارك من Back Color ) لذالك هذه الخاصيه مرتبطه بالخاصيه Back Color ********************************************************************************************************************** 4- الخاصيه ( Border Color):- هذه الخاصيه تتيح للمستخدم تغيير لون حدود اللـ ComboBox على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك 5- الخاصيه ( Border Style):- هذه الخاصيه تحمل خيارين هما Fm BorderStyle none - 0 ( عند الاختيار سيتوقف عمل الخاصيه Border Color حتى ولو كان تم اختيار لون بها وليكن لون حد أحمر سيظهر الـ ComboBox بلون حد ساده ) Fm BorderStyle Single - 1 ( عند الاختيار سيتم عمل الخاصيه Border Color وهيكون حدود الـ ComboBox بخلفية حسب الاختيارك من Border Color) لذالك هذه الخاصيه مرتبطه بالخاصيه Border Color مثال لو اختارنا لون خلفيه للـ ComboBox لون سماوى ولون حدود احمر شاهد الصورة ولاحظ ان الخاصيه Back Color اختيارها 1 وايضا الخاصيه Border Color اختيارها 1 شاهد الصوره التالية ولكن لو كان الخاصيه Back Color اختيارها 0 وايضا الخاصيه Border Color اختيارها 0 سوف يكون لون الخلفية ساده والحدود بدون لون **************************************************************************************************************** 6- الخاصيه ( Bound Column):- هذه الخاصيه تتيح للمستخدم تحديد العمود الذى سيظهر فى عنصر اخر عند الاختيار من الكمبوبوكس سنرى لاحقا مثال عملى ************************************************************************************************* 7- الخاصيه ( Column Count):- هذه الخاصيه تتيح للمستخدم تحديد كم عدد الاعمده التى ستظهر فى اللـ ComboBox بمعنى ادق يمكن عرض اكثر من عمود فى الكمبوبوكس سنرى لاحقا مثال عملى ************************************************************************************************* 8- الخاصيه ( Row Source ):- هذه الخاصيه هى اولى الطرق التقليدية لتعبئة الكمبوبوكس بالبيانات مثال عام على الخاصيه ( Bound Column) و الخاصيه ( Column Count) و الخاصيه ( Row Source ) لدينا شيت به بيانات افتراضيه كما هو ظاهر بالصوره التالية وعندى فورم بصممه شاهد الصورة أنا دلوقتى عايز اظهر اسماء العملاء من الخلية A2 : A5 فى الكمبوبوكس اللى فى الفورم من شاشة الخصائص اروح للخاصيه Row Source واكتب المدى A2:A5 شاهد الصورة شاهد النتيجة عن تشغيل الفورم طيب لو عايزين نظهر عدد 2 عمود بمعنى اظعر عمود اسماء العملاء وايضا عمود كود العميل اذن لازم اغير المدى فى الخاصيه Row Source واكتب المدى A2:B5 وايضا لازم احدد عدد الاعمده فى الكمبوبوكس يكون 2 من الخاصيه Column Count شاهد الصورة ستجد النتيجة عند تشغيل الفورم طبعا عند الاختيار من الكمبوبوكس سيظهر اسم العميل (اللى هى تعتبر العمود رقم واحد فى الكمبوبوكس ) فى الكمبوبوكس وتختفى قائمة العملاء فلو انا عايز عند الاختيار ايضا يظهر كود العميل فى التكست بوكس رقم 1 ( اللى هو باللون الاصفر فوق) اذن لازم نروح للخاصيه Bound Column واكتب 2 ( أى العمود رقم 2 هو القيمة التى ستظهر فى التكست بوكس رقم 1 ) شاهد الصورة باقى خطوة تانية وهى عمل كود فى حدث تغيير الكمبوبوكس كالتالى Private Sub ComboBox1_Change() TextBox1.Value = ComboBox1.Value End Sub هذا الكود كتبنا فيه ان التكست بوكس 1 يساوى الكمبوبوكس ( واحد هيقولى مش الكمبوبوكس فى عمودين اذن التكست بوكس هيكون اى عمود عند الاختيار هقوله ان الخاصيه Bound Column كتبنا فيها العمود رقم 2 اذن القيمة التى ستظهر فى التكست بوكس 1 هى العمود 2 ) وبكدا عند التشغيل الفورم والاختيار من الكمبوبوكس سيظهر قيمة العمود رقم 1 وهو اسم العميل فى الكمبوبوكس وسيظهر قيمة العمود رقم 2 وهو كود العميل فى التكست بوكس 1 ( بناء على تحديد الخاصيه Bound Column كتبنا فيها العمود رقم 2 وايضا الكود بحدث تغيير الكمبوبوكس ) وعند تشغيل الفورم واختيار من الكمبوبوكس شاهد النتيجة كدا اخدنا مثال عملى على الثلاث خصائص وهما الخاصيه ( Bound Column) و الخاصيه ( Column Count) و الخاصيه ( Row Source ) ************************************************************************************************************************** 9- الخاصيه ( Column Heads ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور رؤوس للاعمده او عدم ظهورها وهى تحمل خيارين أما True أو False عندد اختيار False وهو الاختيار الافتراضى بالفيجوال لا يظهر رؤوس للاعمده بـ ComboBox1 على الفورم عند فتحه شاهد الصوره عندد اختيار True يظهر رؤوس للاعمده بـ ComboBox1 على الفورم عند فتحه شاهد الصوره كما هو مبين بالصورة ان رؤوس الاعمده هى الخلية A1 والخلية B1 وذالك لان المدى للكمبوبوكس هو من A2:B5 فالفيجوال بيسك يقوم بشكل تلقائى بقراءة اول خلية تسبق المدى *********************************************************************************** 10- الخاصيه ( Column Widths ):- وهذه الخاصيه تتيح للمستخدم التحكم فى عرض الاعمده التى ستظهر فى الكمبوبوكس فى سبيل المثال عرض العمود رقم 1 هو 200 وعرض العمود رقم 2 هو 100 اذن لازم تتكتب كالتالى 200Pt;100Pt ( بينهم فاصله ; تكتب من خلال جعل لغة الكيبورد انجلش ثم اضغط على حرف ك بالعربى) شاهد الصوره واحد شاطر هيقولى هو لازم علشان اظهر العمود الثانى اتحرك بالاسكرول بار هقوله لا يوجد طريقه حلوة وهى الخاصيه ( List Width ) هنشرحها ونعرف ازاى نخليها تحل لنا المشكله وتظهر الاعمده بدون الاسكرول بار 11- الخاصيه ( List Width ):- عرض List الافتراضى هو عرض الكمبوبوكس مجموع عرض الاعمده كتبنا فى المثال السابق فى الخاصيه Column Widths ان عرض الاعمده هو 200Pt;100Pt اذن لابد من جعل عرض List مجموع عرض الاعمده 200Pt;100Pt يعنى هيساوى 300Pt وبكدا مش هيكون فى اسكرول بار والاعمده كلها ظاهر عند تشغيل الفورم شاهد الصوره ************************************************************************************************************** 12- الخاصيه ( DropButtonStyle ):- هذه الخاصيه تتيح للمستخدم التحكم فى شكل الكمبوبوكس شاهد الصوره اختر أى من الاشكال فى الصورة التى تناسب ذوقك ********************************************************************************** 13- الخاصيه ( Enabled ):- هذه الخاصيه تحمل خيارين true و False عند اختيار true سوف يكون بأمكان المستخدم الاختيارمن محتوى ComboBox وهو الاختيار الافتراضى بالفيجوال وعند اختيار False لا يكون بأمكان المستخدم الاختيارمن محتوى ComboBox ويكون الشكل باهت ********************************************************************************************** 14- الخاصيه ( Locked ):- هذه الخاصيه تحمل خيارين true و False عند اختيار False سوف يكون بأمكان المستخدم الاختيارمن محتوى ComboBox وهو الاختيار الافتراضى بالفيجوال وعند اختيار True لا يكون بأمكان المستخدم الاختيارمن محتوى ComboBox يعنى هيكون فى حمايه على ComboBox وهذه الخاصيه تشبه تماما الخاصيه Enabled الفرق الوحيد بينهم هو فى شكل التنسيق للكمبوبوكس ********************************************************************** 15- الخاصيه ( Font ):- وهذه الخاصيه تتيح للمستخدم التحكم فى نوع وسماكة وحجم الخط للنص داخل الـ ComboBox الافتراضى فى الفيجوال بيسك نوع الخط هو ( Tahoma ) والسماكه هى (Regular) وحجم الخط هو ( 8) ********************************************************************************************************** 16- الخاصيه ( Font Color ):- وهذه الخاصيه تتيح للمستخدم التحكم فى اختيار لون الخط للنص داخل الـ ComboBox ********************************************************************************************* 17- الخاصيه ( Height ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ارتفاع الـ ComboBox فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد الارتفاع للـ ComboBox أو كتابة رقم للارتفاع فى الخاصيه Height ********************************************************************************************* 18- الخاصيه ( Left ):- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ ComboBox عن الضلع الايسر للفورم **************************************************************************** 19- الخاصيه ( Top ):- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ ComboBox عن الضلع الاعلى للفورم مثال لو وضعنا قيمة Left 78 *** وقيمة Top 138 ستجد الصوره التالية *********************************************************************************************************************** 20- الخاصيه ( List Row ):- هذه الخاصيه من الخصائص المهمه لانها تتيح للمستخدم التحكم فى عدد الصفوف التى يتم عرضها عند فتح الـ ComboBox شاهد الصوره لو عايزين اظهار عدد 3 صفوف فقط شاهد الصوره التالية ************************************************************************************************************ 20- الخاصيه ( List Style ):- شاهد الصوره تتضح لك اهميه الاداه فمن خلالها يمكن التحكم فى طريقه عرض البيانات عن فتح الكمبوبوكس **************************************************************************************************************** 21- الخاصيه ( Width ):- وهذه الخاصيه تتيح للمستخدم التحكم فى عرض الـ ComboBox فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد العرض للـ ComboBox أو كتابة رقم للعرض فى الخاصيه Width **************************************************************************************************************** 22- الخاصيه ( Visible ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهور ComboBox عند عرض الفورم وعند الضغط على السهم المجاور لها ستجد لها خيارين True و False عندد اختيار True سوف يظهر الـ ComboBox على الفورم عند فتحه ( وهذا هو الخيار الافتراضى من الفيجوال بيسك ) وعند اختيار False ٍسوف يختفى الـ ComboBox على الفورم عند فتحه يعنى هيكون غير ظاهر ومخفى لا يراه المستخدم ****************************************************************************************************************
    1 point
  44. بسم الله الرحمن الرحيم الاخوه الكرام اليوم بمشيئة الله سنتكلم عن المحور الخامس والاخير كيفية عمل تنسيقات للقيم المدخله فى TextBox عرفنا قبل كدا فى الشروحات السابقه ما هى اوقات تنفيذ الكود هنعمل مراجعه بسيطه لربط شرح اليوم بالشروحات السابقه قبل أن نتحدث عن وقت تنفيذ الكود لازم نعرف أولا أزاى بيكون كتابة ألاعلان عن الكود للـ TextBox Private Sub TextBox1_AfterUpdate() هنا يتم كتابة الكود المراد تنفيذه End Sub السطر الاول هو بداية الاعلان عن الكود فنقوم بكتابة Private Sub ستجد لونها بالكود أزرق ( وهو بداية لاى كود خاص لأى عنصر تحكم داخل الفورم ) ثم نقوم بكتابة اسم العنصر المراد عمل الكود له وهو بمثالنا TextBox1 ثم نقوم بكتابة _ ( تكتب من خلال الضغط على Shift+زر الطرح الموجود بالاعلى بجوار زر + ) ثم نقوم بكتابة وقت تنفيذ الكود (هو هنا على سبيل المثال AfterUpdate ) ثم كتابة () قوسين بهذا الشكل وبمجرد الضغط انتر ستجد الكود عمل سطر تانى فيه End sub يوجد طريقه اخرى وهى اتبع الصوره التالية توضح لك قم بالضغط على اى مكان فاضى بالفورم وادخل لمحرر الاكواد الخاص بالفورم هنبدأ بالامثله العمليه لان بالمثال يتضح لنا المقال وانا راجل عملى مش بحب النظرى 1-التحكم فى تنسيق القيم المدخله فى التكست بوكس بعدد صحيح شاهد الكود Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0") End Sub السطر الاول عرفنا انه الاعلان عن الكود وسوف يتم تنفيذه فى وقت تحديث التكست بوكس أى بعد الانتهاء من الادخال والانتقال او الخروج من التكست الى اى عنصر اخر على الفورم والسطر التانى هو الكود اللى هيتم تنفيذه شرح الكود ( السطر التانى ) شاهد الصوره هنا نوع التنسيق "0" تم وضعه بين علامتين تنصيص وبداخله 0 يعنى تنسيق التكست بوكس بعد الادخال يكون رقم صحيح فلو فرضنا حضرتك كتبت 20.60 وخرجت من التكست بوكس ستجد القيمة اصبحت 20 فقط ولا يوجد علامه عشريه -------------------------------------------------------------------------------------------------------------------------------------------------------- 2-التحكم فى تنسيق القيم المدخله فى التكست بوكس بوضع علامه عشريه Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0.0") End Sub هنا نوع التنسيق "0.0" يكون رقم واحد بعد العلامه العشريه مثال لو حضرتك ادخلت 20 فقط ستجد التكست بوكس اصبح 20.0 ولو حضرتك دخلت 20.2 ستجد التكست بوكس اصبح 20.2 ولو حضرتك دخلت 20.50 ستجد التكست بوكس اصبح 20.5 فقط يعنى سوا دخلت رقم عشري واحد او ادخلت رقمين عشريين او لم تدخل ارقام عشريه ستجد النتيجة بعد رقم عشرى واحد طيب لو احنا عايزين رقمين بعد العلامه العشريه الموضوع بسيط جدا هنخلى التنسيق كالتالى "0.00" شاهد الكود Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0.00") End Sub لاحظتم الفرق طيب لو 3 أرقام عشريه Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0.000") End Sub ------------------------------------------------------------------------------------------------------------------------------------ 3-التحكم فى تنسيق القيم المدخله بوضع علامه العمله $ Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0" & "$") End Sub هنا تم "0" ( وهو تنسيق رقم صحيح) ثم علامه & ( تكتب من خلال الضغط على Shift+رقم 7 فوق الحروف ) ثم ثم وضع علامه العمله "$" بين اقواس تنصيص فلو حضرتك كتبت 20 ستجد $20 واحد هيقولى هو مش ممكن يكون العلامه يسار الرقم وليس يمين الرقم هقوله ممكن وليه لا هنعكس الموضوع بدل "$"&"0" هنخليها "0"&"$" Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "$" & "0") End Sub فلو حضرتك كتبت 20 ستجد النتيجة 20$ طيب ممكن نخلى علامه العمله وكمان وجود ارقام عشريه طبعا ممكن Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "$" & "0.00") End Sub فلو حضرتك كتبت 20.1 ستجد النتيجة 20.10$ ---------------------------------------------------------------------------------------------------------- 4-التحكم فى تنسيق القيم المدخله بوضع نص بجوار الرقم Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0" & "ريال") End Sub هنا تم كتابه النص بين علامتى تنصيص " ريال" فلو حضرتك كتبت 20 ستجد النتجية 20 ريال -------------------------------------------------------------------------------------------------------------------- 5-التحكم فى تنسيق القيم المدخله بوضع علامه % Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "%0") End Sub فلو حضرتك كتبت 20 ستجد النتيجة %20 ( اذا كانت لغة الكتابه بالكيبورد عربى ) أما اذا كانت لغة الكتابة انجليزى وكتبت رقم 20 ستجد النتيجة 20% فمن خلال لغة الكتابه بالكيبورد تقدر تتحكم فى مكان العلامه % هل تكون قبل الرقم أم بعده واحد هيقولى هو ممكن نجعل الرقم بعلامات عشريه مع وجود علامه % هقوله ليه بس الاحراج يا عبدالتواب شوف يا سيدى الكود التالى Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "%0.00") End Sub فلو حضرتك كتب 20.1 ستجد النتيجة 20.10% ---------------------------------------------------------------------------------------------------------------------------------------- 6-التحكم فى القيم المدخله اذا كانت سالبه توضع بين اقواس Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0;(0)") End Sub فلو حضرتك كتبت -50 ستجد النتجية (50) يعنى تحول اى رقم سالب الى بين اقواس طيب لو كان الرقم السالب فيه علامات عشريه شاهد الكود ولاحظ الفرق البسيط Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0;(0.00)") End Sub مثال لو حضرتك كتبت-20.1 ستجد النتيجة (20.10) -------------------------------------------------------------------------------------------------------------------- 7-التحكم فى القيم المدخله اذا كانت تاريخ لو حضرتك عايز تكتب تاريخ وليكن 2015/8/6 وعايز بعد الادخال يظهر فقط اليوم Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "dd") End Sub ستجد ان النتيجه 6 dd تشير الى Day يعنى اليوم **************************************************************************** لو انا عايز النتيجة 6 اللى هى اليوم تظهر فى التكست بوكس 2 ( TextBox2) Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "dd") End Sub فلو حضرتك كتبت التاريخ 2015/8/6 فى التكست بوكس 1 ستجد التكست بوكس 2 مكتوب فيه 6 ************************************************************************************************ لو عايزين نظهر الشهر فقط هنستبدل dd بـ mm وهى اختصار لكلمة (Month) Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "mm") End Sub ستجد النتجية ظاهره فى التكست بوكس 2 وهى 8 ************************************************************************************** لو عايزين نظهر السنه. هنستبدل mm بـ yyyy وهى اختصار Year Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "yyyy") End Sub ستجد النتيجة فى التكست بوكس 2 هى 2015 ***************************************************************************************** لو عايزين نظهر اليوم كتابه 06-08-2015 يطلع فقط الخميس Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "dddd") End Sub ستجد النتيجة فى التكست بوكس 2 هى الخميس ********************************************************************************** لو عايزين نظهر الشهر 06-08-2015 يظهر فقط اغسطس Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "mmmm") End Sub ستجد النتيجة هى اغسطس ********************************************************************** لو عايزين ننسق التاريخ المدخل يكون كالتالى 06/08/2015 Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "dd/mm/yyyy") End Sub ****************************************** لو عايزين ننسق التاريخ المدخل يكون كالتالى2015/08/06 شوف الكود Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "yyyy/mm/dd") End Sub ****************************************** لو عايزين ننسق التاريخ المدخل يكون كالتالى06-08-2015 يعنى يكون العلامه بدل من / تكون - Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "yyyy-mm-dd") End Sub ****************************************** لو عايزين نجعل التاريخ كالتالى 06-08-15 ( يعنى أظهار السنه رقمين فقط Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "yy-mm-dd") End Sub هنا خلينا السنه بدل من yyyy الى yy فقط ****************************************** لو عايزين ننسق التاريخ كدا 06 أغسطس2015 Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "dd mmmm yyyy") End Sub ****************************************** لو عايزين نخلى التاريخ يظهر كالتالى الخميس أغسطس 2015 Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "dddd mmmm yyyy") End Sub ****************************************** لوعايزين نظهر تاريخ اليوم بمجرد وضع مؤشر الماوس فى التكست بوكس Private Sub TextBox1_Enter() TextBox1.Text = Format(Now, "yyyy/mm/dd") End Sub هنا استخدمنا وقت التنفيذ الحدث Enter ****************************************** 8-التحكم فى أجبار المستخدم على ادخال ارقام فقط فى التكست بوكس Private Sub TextBox1_Change() If Not IsNumeric(Me.TextBox1.Value) Then: MsgBox " الرجاء ادخال أرقام فقط ", vbCritical, "خطأ": Me.TextBox1.Value = "": Exit Sub End Sub هنا عملنا كود فى حدث التغيير للتكست بوكس بمجرد كتابة اى حرف وليس رقم ستجد التكست بوكس يرفض الادخال ويقوم بمسح المحتوى اللى تم ادخاله وكمان يظهر رساله استخدمنا فى الكود IF Not IsNumeric ثم التكست المراد ادخال ارقام فقط ووضعه بين قوسين ثم اقفال IF بـ then ****************************************** 9-التحكم فى أجبار المستخدم على ادخال حروف فقط فى التكست بوكس نفس الكود السابق ولكن بدون Not Private Sub TextBox1_Change() If IsNumeric(Me.TextBox1.Value) Then: MsgBox " الرجاء ادخال حروف فقط ", vbCritical, "خطأ": Me.TextBox1.Value = "": Exit Sub End Sub ****************************************** **************************************************************************** ******************************************************** ************************************** الى هنا بحمد الله انتهيت من شرح الخمس محاور المتعلقه بالتكست بوكس والى لقاء اخر من حلقات علمنى كيف اصطاد وسيكون بأذن الله الكمبوبوكس
    1 point
  45. إخوتى الأفاضل بعد أفضل تحية تم دمج الموضوعين فى موضوع واحد خالص تحياتى
    1 point
  46. مرفق ملف لاختنا زهره اطلع عليه بالتوفيق za-NoEmpty.rar
    1 point
  47. السلام عليكم ورحمة الله وبركاته سلسلة الدالة Offset سبق وتم عرضها من قبل مع الملف الذي تم العمل عليه أثناء التسجيل سوف نعيد نشرها لنواكب الأعمال الجديدة لاحقا الدالة Offset الفيديو الأول مشاهدة مفيدة وممتعة الدالة Offset الفيديو الثاني مشاهدة مفيدة وممتعة -f7OtH9YmDsNBA الدالة Offset الفيديو الثالث ملف العمل تعلم الداالة offset.zip
    1 point
  48. شروحات أكسس الصوتية والمرئية دروس الأستاذ عبدالفتاح كيره شرح 3 طرق لفتح نموذج من داخل نموذج آخر الاستفادة من خاصية القيمة الافتراضية للحقول شرح التحقق من عدد أرقام الرقم القومى شرح استخلاص ت الميلاد من الرقم القومى دالة mid-val شرح دالة DateSrial شرح البحث عن اسم يتضمن أى حروف البحث بمعلومية شرطين باستخدام استعلام و كود شرح استعلام إلحاق استعلام الإلحاق بدون تكرار مع تعديل بعض الحقول الملحقة كيف تفتح نموذجا على سجل محدد كيفية التحكم فى حقل بنموذج فرعى من خلال النموذج الرئيسى كيفية البحث عن السجلات و الانتقال إليها التنقل بين السجلات في نموذج أكسيس بخطوات محددة التخطيط لإنشاء قاعدة بيانات ======================================================== تعلم الاكسيس ( باللغه العربيه صوت و صوره ) لــ admiral http://www.officena.net/ib/index.php?s=c6d3bad3a53a5ac634ea791d48f6472c&showtopic=31301 ======================================================== شرح اكسس 2003 فيديو (1)... لقنديل الصياد http://www.officena.net/ib/index.php?showtopic=48569 شرح اكسس 2007 (2) http://www.officena.net/ib/index.php?showtopic=51147 شرح اكسس 2010 (3) http://www.officena.net/ib/index.php?showtopic=51150 ======================================================== تعليم برنامج أكسس 2010 لـــ ALSHAMAL http://www.officena.net/ib/index.php?showtopic=54641 ======================================================== أكسيس 2013 شروحات متنوعة الاستاذ عبداللطيف طراقجي شرح برنامج مايكروسوفت أكسيس 2013 http://www.officena.net/ib/index.php?showtopic=59950&hl= الدرس الأول إنشاء و إدارة قواعد البيانات http://www.officena.net/ib/index.php?showtopic=59961&hl= الدرس الثاني: إدارة العلاقات و المفاتيح في برنامج الأكسيس http://www.officena.net/ib/index.php?showtopic=60073&hl= الدرس الثالث: التنقل من خلال قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=60177&hl= الدرس الرابع: حماية و صيانة قواعد البيانات http://www.officena.net/ib/index.php?showtopic=60261&hl= الدرس الخامس: طباعة و تصدير قاعدة البيانات http://www.officena.net/ib/index.php?showtopic=60376&hl= الدرس السادس: إنشاء الجداول في قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=60468&hl= الدرس السابع: تنسيق الجداول في قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=60584&hl= الدرس الثامن: إدارة السجلات في جداول قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=60681&hl= الدرس التاسع: إنشاء و تعديل الحقول في جداول قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=60809&hl= الدرس العاشر: إنشاء الاستعلامات في قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=60893&hl= الدرس الحادي عشر: إنشاء الاستعلامات الاجرائية في قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=60988&hl= الدرس الثاني عشر: تعديل الاستعلامات في قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=61086&hl= الدرس الثالث عشر: استخدام و تجميع الحقول المحسوبة في الاستعلام http://www.officena.net/ib/index.php?showtopic=61177&hl= الدرس الرابع عشر: إنشاء النماذج في قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=61265&hl= الدرس الخامس عشر: تعيين عناصر تحكم النموذج في قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=61351&hl= الدرس السادس عشر: تنسيق النماذج في قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=61409&hl= الدرس السابع عشر: إنشاء التقارير في قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=61468&hl= الدرس الثامن عشر: تعيين عناصر تحكم التقرير في قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=61561 الدرس التاسع عشر و الأخير: تنسيق التقارير في قاعدة بيانات أكسيس http://www.officena.net/ib/index.php?showtopic=61634
    1 point
×
×
  • اضف...

Important Information