بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 04/01/16 in all areas
-
السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله أعتقد أن الوقت الذي انقضى على الحلقة الأولى من هذه الدورة الخاصة بالمصفوفات يكفي وزيادة ، وأعتذر عن التأخر في مواصلة الدورة ، فأنتم تعرفون مشاغل الحياة .. رابط الحلقة الأولى نبدأ على بركة الله الحلقة الثانية من حلقات "دورة كاملة في المصفوفات" ، ويا ريت اللي لسه أول مرة يشوف الموضوع ، إنه يقرا الحلقة الأولى عشان يقدر يتواصل معانا .. مش عايزين نكرر المعلومة إلا للضرورة ، وعشان يقدر يتابع الجديد (دا لو فيه متابعين من الأساس) هنبدأ نتكلم عن أنواع المصفوفات : فيه نوعين النوع الأول وهو المصفوفة الثابتة يعني لها أبعاد ثابتة مش بتتغير والنوع الثاني وهو المصفوفة الديناميكية يعني غير الثابتة ودي بيتم تحديد أبعادها أثناء عمل الكود ، وممكن تتحدد في أول الكود بأبعاد محددة ، وممكن تغيرها أثناء الكود إذا لزم الأمر ... الإعلان عن المصفوفة الثابتة -------------------------------- دا مثال لأكثر من طريقة للإعلان عن المصفوفة الثابتة المحددة الأبعاد ..نشوف الكود ونضع مؤشر الماوس داخل الكود ومن لوحة المفاتيح زي ما اتعلمنا نضغط 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
-
هدية لاحبتي في الله للحاجة الملحة في تسهيل وتيسير عمليات البحث داخل النصوص وخاصة النصوص الكريمة في القرآن والسنة كان لزاما عند اجراء عملية البحث اهمال حركات التشكيل الموجودة في هذه النصوص وبعد البحث وجدت التالي : 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 في المرفقات يتم من خلال هذا الكود حذف التشكيل ونقل النتيجة الى عمود جديد وطبعا هذا حسب طلب اخونا المحب علما انه يمكن اخراج النتيجة داخل الاستعلام وهو برأيي افضل .. وللهدية بقية ... ازالة التشكيل.rar3 points
-
ايش رايك اعطيك طريقة لطلبك وتنفع لترقيم الاقساط كذلك ضعي لحدث بعد التحديث للمدفوع ويصبح الكود بالشكل التالي Private Sub المدفوع_AfterUpdate() Me.رقم_القسط = Parent![عدد الاقساط] & "/" & CurrentRecord End Sub وللترقيم فقط Private Sub المدفوع_AfterUpdate() Me.رقم_القسط = CurrentRecord End Sub هذه الفكره اخذتها من الاستاذ والمحاسب كمال النحال من زمان وما نسيتهاش ! بالتوفيق3 points
-
جرب هذا الملف مطلوب تصفية مع ترحيل بيانات مع دمج البيانات macro.rar3 points
-
إخواني وأحبابي في الله بارك الله فيكم وجزاكم الله خير الجزاء على دعواتكم الطيبة وشعوركم الطيب تجاهي هذا أقل واجب تجاه إخواني أن أقوم بتقديم ما تعلمته لكم بخصوص الأمثلة التطبيقية لا أعلم لما العجلة أخي الحبيب سعد ..كل شيء بأوان !! عايزين نتعلم إزاي نتعلم صح ..انا ببحث في مواقع أجنبية وبعضها بيقدم الشرح بالشكل ده ..بتسلسل علمي ومنطقي .. عشان يكون الأساس صح ..مش مجرد موضوعات شرح نظري وفقط .. وبعدين طبق الأمثلة الموجودة وحاول تدرسها كويس وتفهم الأسطر اللي اتكتبت ومع الوقت والمتابعة هتلاقي نفسك فاهم كل شيء أو على الأقل معظم الأكواد المكتوبة .. وبعدها لما تشوف كود هتقدر تفهمه وتعدل عليه وتستفيد منه ، والتطبيق بيكون من خلال أسئلة الأعضاء والمشاكل اللي بتقابلهم أنا أطمح لبناء قاعدة صحيحة من التعلم التي يمكن السير على أساسها مش مجرد إضافة لموضوع جديد وخلاص ... فالرجاء الصبر .. بعد ما نخلص الأساسيات المفروض إننا نتعلمها الأول ..إن شاء الله هنواصل ونبدأ في طرح أمثلة وتدريبات عشان الموضوع يثبت ، وصدقوني باب المصفوفات هيفتح لك أبواب كثيرة مغلقة وهتحس بالفرق في التعامل خصوصاً إذا كانت البيانات كبيرة .. أرجو عدم الاستعجال ..خلينا نستوعب الموضوع واحدة واحدة ، وأنا بتعلم معاكم ، يعني مش أعلى من حد منكم ، كلنا المفروض بنفيد ونستفيد .. تقبلوا وافر تقديري واحترامي2 points
-
السلام عليكم ... معلومة جديدة استاذ رمهان ... مع تغيير نوع البيانات للحقل رقم القسط من الجدول f من رقم الى نص ...2 points
-
وعليكم السلام ورحمة الله وبركاته .. اتفضل يا حاج بس هات لنا معاك جبنة تركي وإنت جاي (محدش يترجم له الجملة دي عشان ميزعلش )2 points
-
وجزيت خيراً أخي الغالي أحمد بمثل ما دعوت لي وزيادة وإن شاء الله يضبط معك التعديل تقبل تحياتي1 point
-
جزاك الله كل خير يا ابو البراء سوف اعدل واعود اليك بالنتيجه ياغالى تقبل تحياتى لو فاضى رن او كلمنى على الفيس تمام يا ابو البراء هكمل بقا اضافة باقى البيانات لانتهى منه لتسليمه لزمايلى بالشغل لتسهيل العمل جزاك الله كل خير ياغالى1 point
-
وجزيت خيراً أيها المتعلم المجتهد والأخ الحبيب أحمد بارك الله فيك على مرورك العطر .. وإن شاء الله الصبر عواقبه طيبة وحسنة عايزين نشوف الشغل بعد الدورة دي .. مش مجرد معلومات بتتحفظ وخلاص ..عايزين تطبيقات عملية وحلول تقدم على أعلى مستوى إن شاء المولى تقبل تحياتي1 point
-
أخي الغالي أحمد جرب التعديل على الدالة بهذا الشكل Function Reswm(salary, shahr) As Variant If IsEmpty(salary) And IsEmpty(shahr) Then Reswm = "" ElseIf shahr = "يناير" And salary < 1000 Then Reswm = 5.25 ElseIf shahr = "يناير" And (salary >= 1000 And salary < 5000) Then Reswm = 17.5 End If End Function وفي حدث الفورم جرب الكود بهذا الشكل لعله يكون المطلوب Private Sub CommandButton1_Click() If Not IsEmpty(ComboBox1.Value) And Not IsEmpty(TextBox1.Value) Then TextBox2.Value = Reswm(TextBox1.Value, ComboBox1.Value) End If End Sub تقبل تحياتي1 point
-
توكل على الله يا ابو البراء وان شاء الله ستجدنا من الصابرين للتعلم وجزاك الله عنا كل خير تقبل تحياتى وتقديرى1 point
-
أنا قلت مجرد رأي شخصي يا أخي الغالي سعد .. وقد أكون مخطيء ولكن دعنا من الخطأ والصواب ولنركز على المعلومة التي تقدم لنا .. بالتأكيد طالما أنهم سبقونا إذاً أسلوب التعلم والمنهج الذي يسيرون عليه أفضل منا .. فلتكن البداية منهم والنهاية لنا تقبل تحياتي1 point
-
بسم الله الرحمن الرحيم اعضاء المنتدى الكرام السلام عليكم ورحمة الله وبركاتة فى هذا الدرس من درووس اكسيل 2010 سنتعرف على كيفية البحث بين اكثر من ملف اكسل والجداول المختلفة سواء كانت بيانات العملاء او الموردين او المبيعات وذلك با ستخدام دالة من دوال البحث وهى الدالة vlookup بطريقة متقدمة وسهلة باذن الله . لمشاهدة الفيديو من هنا https://youtu.be/RSmF4imHCJM رزيارة موقعنا للتعرف على مزيد من الدرورس من هنا http://etalmfree.blogspot.com.eg/ البحث بين اكثر من ملف.rar1 point
-
جزاك الله كل خير يا ابو البراء جعله الله فى ميزان حسناتك وبارك الله لك فى اهلك ومالك وكل ما تحب ورزقك من حيث لاتحتسب تقبل تحياتى ياغالى1 point
-
1 point
-
تسلسل نتائج البحث حسب طريقة البحث ... لا بالعكس الكل هنا يحب المساعدة لكن بما يسمح به وقته ... و اقترح عليك ان تجزأ الموضوع , فلكل مشكلة موضوع خاص , وبد ان تحل المشكلة افتح موضوع جديد و هكذا ...1 point
-
شكرا جزيلا يا أستاذ سليم وأسال الله عز وجل أن يجعل هذا العمل في ميزان حسناتك يوم القيامة1 point
-
استاذ ياسر ابوالبراء السلام عليكم ورحمة الله مهما كتبنا شكرا لك فان ما تقدمه لنا اكثر بكثير حلول وشروحات مفيده للغاية اعزكم الله نصركم الله بارك الله لك في مالك وولدك جزاكم الله خيرا بنجمع الدروس ونريد في نهاية الدروس احنا طمعين شوية المصفوفات بالذات ليس لها شروحات واضحة في المنتديات العربيه وانت تعلم انها الخطوه المهمه للبرمجه حيث تتعامل مع البيانات الكبيره والمصفوفه ليست داله كما اعلم وانما هى متغيرات كثيره تحت متغير واحد فنرجو طرح امثله عملية ثم ثم تشرح لنا كيف فكر في المثال ابوالبراء للوصول للهدف اتمنى ان يكون وصل المطلوب1 point
-
أستاذ ياسر أنت بتأمر أمر مو معقول - طلب بسيط لشخص أفضاله على كل المنتدى تكرم عيونك يا أخي و شكرا للوقت اللي عم تفقده من أجل تعليمنا1 point
-
السلام عليكم وجمعة مباركة يإذن الله استاذ ياسر بارك لله بك وجزاك كل خير تستحقه شرح رائع1 point
-
جزيتم خيرا - بارك الله في عمركم - استاذ ياسر - والاخ عبد الباري نسأله تعالى ان يرزقكم ويزدكم من فضله1 point
-
السلام عليكم ورحمة الله وبركاته احبتي اهدي لكم محاولة بسيطة لموضوع إزالة التشكيل في الاكسس طبعا كان هناك مشاركات حول هذا الموضوع هنا 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 التشكيل.rar1 point
-
طبعا لايمكن ! والاكثر طبعا هذا غير منطقي او مقبول في علم قواعد البيانات تخيل ان الجدول علميا سيحتوي على ثلاثة اعمدة فقط ! وهذا مبدئيا اسم الطالب - اسم المادة - الدرجة وتكرر اسم الطالب لكل مادة ودرجتها هكذا قواعد البيانات ! ولتصميم افضل جدول طلاب جدول مواد جدول درجات ولكن مع ذلك يمكن عمل ماتريد بالتمام وبعمل جدولين والعلاقة بينهم راس براس ولكن مهما حاولنا تخيل التطبيق الفعلي لمثل هذا فلن نجده واقعيا ويضل خيالا وغير منطقي بالتوفيق1 point
-
يمكن عمل ذلك ولكن حسب فهمي قد لاتتطابق جميع خيارات النموذج لجميع الطلاب ! فمثلا صفة ولي الامر قد تختلف من طالب لاخر وكذلك سبب الاتصال ! هذا وان لي ملاحظة على تصميم هذا الجدول حيث افهمت انه تسجل به احداث التواصل مع اولياء الامور ! لهذا وجود الصف والشعبه تكون في جدول اخر وكذلك صفة ولي الامر وجواله ! فما رايك بهذه الملاحظات اخ علي ! وان كنت تريد التنفيذ كما طلبت على طلاب الشعبة المحدده قل لنا كيف نحصل على معلومات صفة ولي الامر وموبايل ولي الامر لانها مختلفة من طالب لاخر ؟ بالتوفيق1 point
-
1 point
-
أخي الكريم شامل المشكلة في الدالة أنك حددت نوع المتغير من النوع نصي وفي الشروط وضعت الصفر كما هو بدون أقواس تنصيص أفضل حتى تتلافى الأخطاء أن تغير الجزء الأول بهذا الشكل Function CalTh(a, x, y, d, e) As Variant بمعنى خلي الإعلان عن المتغيرات من النوع Variant لكل المتغيرات ..يا إما تخلي بالك وإنت بتكتب الشروط تضع الصفر بين أقواس تنصيص تقبل تحياتي1 point
-
1 point
-
السلام عليكم استخدم الدالة iferror وستفى بالغرض انشاء الله رفع الخطا في المعادلة.rar1 point
-
1 point
-
ربنا يبارك لك يا استاذ الاساتذه سليم1 point
-
تفضل يا سيدي الفاضل الكود: Private Sub TreeView1_NodeClick(ByVal Node As Object) On Error GoTo err_TreeView1_NodeClick 'lblItemCode.Caption = "" 'If Node.Key <> "Root" Then ' lblItemCode.Caption = Mid(Node.Key, InStr(Node.Key, "_") + 1) 'End If 'lblPath.Caption = Node.FullPath ' Dim colon As Integer ' colon = InStr(Node.Text, ":") ' Me.txt3 = Mid(Node.Text, 1, colon - 1) ' Me.Txt4 = Mid(Node.Text, colon + 1) ' colon = InStr(Node.Child, ":") ' If colon = 0 Then ' Me.txt1 = Val(Mid(Node.Child, 1, colon - 1)) + Node.Children ' Me.txt1 = "" ' Else ' Me.txt1 = Val(Mid(Node.Child, 1, colon - 1)) + Node.Children ' End If If Node.Text = "فتح نموذج frm1" Then DoCmd.OpenForm "frm1" ElseIf Node.Text = "فتح نموذج frm2" Then DoCmd.OpenForm "frm2" End If On Error Resume Next Debug.Print "node.Child; " & Node.Child Debug.Print "node.Children; " & Node.Children Debug.Print "node.Expanded; " & Node.Expanded Debug.Print "node.FirstSibling; " & Node.FirstSibling Debug.Print "node.FullPath; " & Node.FullPath Debug.Print "node.Index; " & Node.Index Debug.Print "node.Key; " & Node.Key Debug.Print "node.LastSibling; " & Node.LastSibling Debug.Print "node.Next; " & Node.Next Debug.Print "node.Parent; " & Node.Parent Debug.Print "node.Previous; " & Node.Previous Debug.Print "node.Root; " & Node.Root Debug.Print "node.Selected; " & Node.Selected Debug.Print "node.Sorted; " & Node.Sorted Debug.Print "node.Tag; " & Node.Tag Debug.Print "node.Text; " & Node.Text Debug.Print "----------------------" Exit Sub err_TreeView1_NodeClick: If Err.Number = 91 Then colon = Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 342.AZ_TreeView_ListBox.accdb.zip1 point
-
أخي الكريم ناصر سعيد المشكلة في ملفك وجود الخلايا المدمجة في رأس العمود في أوراق العمل مما يسبب مشاكل مع الكود .. الرجاء محاولة بناء الملف بدون خلايا مدمجة لأنها تتعارض مع الأكواد ..لأنه من المعروف أن الدمج عدو الأكواد .. ولاحظ الملفات التي قمت بإرفاقها لا يوجد فيها دمج ...أو كحل آخر يمكن إدراج صف تحت الخلايا المدمجة ثم تخفيه فيما بعد .. ويكون هذا الصف هو الأساس .. وسؤال هل هناك أوراق عمل أخرى غير الموجودة في ملفك المرفق أم لا ؟؟ ولما تريد تطبيق الكود على كل أوراق العمل مرة واحدة ؟هل هذا سييسر عليك العمل ؟؟؟ لأنه يمكن التعامل مع الكود بورقة عمل واحدة .. والمشكلةا لأخرى ان الصف المراد نسخه غير ثابت أي متغير .. وهذا مما يصعب الوصول لحل ..1 point
-
أخي العزيز صلاح الدين تفضل البرنامج Passware Password Recovery Kit Professional 11.1.4 ومعه السيريال ويا رب يساهم في حل مشكلتك .. أخبرنا بالنتائج بعد التجربة كلمة السر لفك الضغط officena حمل البرنامج من هنا1 point
-
أخي الحبيب ياسر العربي شوف سكة للملفات المحمية من برا دي .. جرب برامج الهيكس لربما تنجح في كشف أغوارها الموضوع صعب لما تكون الحماية على المصنف من برا ..لكن أي حماية لأوراق العمل أو محرر الأكواد فدي أمرها بسيط وميسور إن شاء الله تصل لحل يا عربي ..خليك متحدي! زي ما قدرت على الملفات التنفيذية اللي كنا بنقول هي الحماية الأكيدة لملفات الإكسيل فإن شاء الله تجد حلاً لها تقبل وافر تقديري واحترامي1 point
-
الطريقه الٍسادسه :- تعبئه الكمبوبوكس باستخدام الحلقه التكراريه 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
-
الطريقه الخامسه :- تعبئه الكمبوبوكس ببيانات محدده فمن خلال هذه الطريقه يمكن تعبئة الكمبوبوكس ببيانات محدد يتم كتابتها بالكود يعنى لا يوجد مرجع لها بالاكسيل فى اى شيت مثال لو انت حضرتك حابب تعمل خيارين فقط للمستخدم مثلا يختار أما سند قبض أو سند صرف هنعمل الكلام ده من خلال مصفوفه شاهد الكود اولا ثم نكمل التوضيح 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
-
الطريقه الرابعه :- استخدام لغة البرمجه هى بنظرى من اهم الطرق واسهلها وهى تكون من خلال البرمجه فقط ولا يمكن تنفيذها من شاشة الخصائص فى مرحله التصميم شاهد الصوره التالية هتعرف ما هى الطريقه الكود هو بشكل مكبر عباره عن سطر واحد فقط 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
-
الطريقه الثالثه :- استخدام النطاقات المعرفه بدالة Offset فى عمل نطاق ديناميكى متغير اليكم الرابط التالى للقدير واستاذى الفاضل / محمد نصرى يشرح فيه الداله offset بطريقه رائعه http://www.officena.net/ib/topic/56588-سلسلة-تعلم-اكسل-معي-بالصوت-والصورة/?do=findComment&comment=358921 تحديدا الفيديو الثانى هو اللى مرتبط بموضوعنا وبعد ما تشاهد الفيديو ارجع لشرحى المتواضع وهتعرف ليه قلتلك افهم الداله Offset وهذا شرحى المتواضع عن الداله offset الداله Offset هى من اهم الدوال فى الاكسيل انا شخصيا لما بتعامل معها بحس انى مهندس مساحه دلوقتى هنعرف ما هى داله offset وازاى نستفيد بيها فى عمل نطاق ديناميكى معرف يتم استخدامه فى تعبئة الكمبوبوكس بالبيانات هقولك ما هى الداله offset بلغة المصطبه واحنا قاعدين كدا نشرب كوباية شاى فى الخمسينه ازاى بقى نطبق الكلام ده فى الاكسيل شوف الصوره دى الاول وبعدين نكمل زى ما شايفين بالصوره وقفت بالخلية G8 وعملت الداله offset فهى مكونه من خمس اقسام 1- reference : - وهو مرجع العمل يعنى تحديد مركز انطلاق العمل وهو كما بالصوره A2 لانها اول خلية بالجدول المظلل باللون الاخضر فأنا حدد A2 لتكون مركز انطلاق العمل 2- rows : - وهى تعنى الصفوف ومن خلالها يتم تحديد صف بداية العمل يعنى اتحرك كم صف من نقطة المركز اللى هى A2 ( هنا بالمعادله كتبت 0 يعنى لا تتحرك اى صف من الخلية A2 3- Cols: - وهى اختصار كلمة Colmuns تعنى العمود ومن خلالها يتم تحديد عمود بدابة العمل يعنى اتحرك كم عمود من نقطة المركز اللى هى A2 ( هنا بالمعادله كتبت 0 يعنى لا تتحرك اى عمود من الخلية A2 ) 2 و 3 يتم من خلالهم تحديد نقطة بداية العمل 4- height: - وهى تعنى ارتفاع ومن خلالها يتم تحديد كم صف نريده للاستخدام ( هنا بالمعادله كتبت 6 يعنى اجلب لى 6 صفوف بدأ من الخلية A2 ) 5- width: - وهى تعنى عرض ومن خلالها يتم تحديد كم عمود نريده للاستخدام ( هنا بالمعادله كتبت 1يعنى اجلب لى عمود واحد بدأ من الخلية A2 ) 4 و 5 يتم من خلالهم تحديد كم صف وكم عمود نريده للاستخدام الكلام ده هيتضح لك اكتر لانه اذا عرف السبب بطل العجب انسخ المعادله اللى كتبناه بالخلية G8 واتبع التعليمات اللى بالصوره وبكدا عرفنا نطاق شوف الخطوه اللى بعد كدا شاهد الصوره وبكدا عند عرض الفورم شاهد النتيجة واحد هيقولى وليه يا عم اللفه الطويله دى انا مش شايف فرق بينها وبين الطريقه التانية اللى شرحتها قبل كدا هى نفس الفكره فى تعريف النطاق ومن ثم كتابته فى Rowsource يعنى دلوقتى لو حبينا نضيف اسم جديد فى الخلية A8 مش هيظهر فى الكمبوبوكس وانت قلتلى انه نطاق ديناميكى يكبر ويصغر حسب الادخالات فى العمود A هقوله برافو عليك انك صاحى معايا تعالى بقى اقولك ايه الفرق بينها وبين الطريقه التانية هو انى بدل ما انا محدد عدد 6 صفوف فى المعادله offset هستعين بداله Count A وهى تعمل على عد الخلايا اللى بها كتابه فى نطاق معين =COUNTA(A2:A10000) لو عملنا المعادله دى فى اى خليه هيقوم بعد الخلايا اللى بها بيانات فى النطاق من A2 الى الخلية A10000 مثلا طبعا النتيجة طبقا للصوره السابقه هتكون 6 ولكن لو قمت باضافه اسم جديد هتكون النتيجة 7 أذن اروح للداله Offset واتحكم فى عدد الصفوف من خلال Count A هتكون المعادله كدا =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);1) لاحظ الفرق بينها وبين المعادله السابقه استبدلنا رقم 6 بالمعادله هننسخ المعادله دى ونروح نعدل النطاق اللى عرفناه قبل كدا وبكدا ضيف اى اسماء عملاء جديده او احذف اى اسماء موجوده وشاهد الكمبوبوكس سوف يتم عرض الاسماء الموجوده فقط دون زياده او نقصان شاهد الصوره واحد هيقولى انت كدا علمتنى ازاى اتحكم فى عدد الصفوف لتكون تلقائيه حسب عددها بالشيت طيب ازاى اتحكم فى عدد الاعمده انا شايف الكمبوبوكس بيظهر عمود 1 انا عايزه يظهر عمودين ازاى التحكم فى المعادله دى المعادله اللى موجوده دلوقتى =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);1) وعلشان تتحكم فى عدد الاعمده غيرها الى =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);2) اللى مركز معايا هيلاحظ الفرق بين المعادلتين فى اخر جزء من المعادله وهو عدد الاعمده غيرت بدل من عرض عمود 1 الى عمودين 2 طبعا علشان تغيرها لازم تروح الى قائمة Name Manager وتعمل تحرير للنطاق وتغير المعادله بدل من عمود واحد الى عمودين وطالما عايز تعرض عمودين متنساش زى ما قلنا قبل كدا تكتب 2 فى الخاصيه Column Count شاهد الصوره عند تغيير المعادله علشان تثبت المعلومه فى راسك لازم تجرب الكلام ده عملى بنفسك اتمنى يارب اكون وفقت بالشرح واتمنى لكم التوفيق والى لقاء اخر فى طريقه جديده من طرق تعبئة الكمبوبوكس بالبيانات1 point
-
الطريقه الثانيه :- استخدام النطاقات المعرفه هنشوف دلوقتى من خلال الصورتين التاليتين ازاى بنعرف مدى ونسميه باسم محدد شاهد الصور ازاى بقى نستخدم هذه الاسم فى تعبئة الكمبوبوكس يوجد طريقتين 1- من شاشة الخصائص اثناء التصميم شاهد الصوره 2- من خلال كتابة الاكواد فى البرمجه مثلا فى حدث فتح الفورم Private Sub UserForm_Initialize() ComboBox1.RowSource = "اوفيسنا" End Sub كما تشاهدون اننا كتبنا اوفيسنا اللى هو اسم النطاق ولكن بين علامتى تنصيص " اوفيسنا " يالا يا شباب جربوا الدرس وابعتو الاجابه على موضوع الردود " اتمنى لكم التوفيق " ********************************************************************************************************** والى لقاء اخر مع الطريقه الثالثه انتظرونا يوجد مفاجأت1 point
-
خامسا :- مهارات تعبئه وتغذية الكمبوبوكس بالبيانات بأكثر من طريقه تقليديه واحترافيه الطريقه الاولى :- الخاصيه ( Row Source ) اتكلمنا عليها قبل كدا ولكن هنذكركم بيها مره تانيه لانها ضمن سياق الموضوع لدينا شيت به بيانات افتراضيه كما هو ظاهر بالصوره التالية وعندى فورم بصممه شاهد الصورة أنا دلوقتى عايز اظهر اسماء العملاء من الخلية A2 : A5 فى الكمبوبوكس اللى فى الفورم من شاشة الخصائص اروح للخاصيه Row Source واكتب المدى A2:A5 شاهد الصورة شاهد النتيجة عن تشغيل الفورم طيب لو عايزين نظهر عدد 2 عمود بمعنى اظعر عمود اسماء العملاء وايضا عمود كود العميل اذن لازم اغير المدى فى الخاصيه Row Source واكتب المدى A2:B5 وايضا لازم احدد عدد الاعمده فى الكمبوبوكس يكون 2 من الخاصيه Column Count شاهد الصورة ستجد النتيجة عند تشغيل الفورم ولكن هنا فى مشكله وهى ان الفورم القائمه بتاعته هتكون على حسب الشيت النشط اسم الشيت بمعنى لو انتى فى الشيت رقم 1 هيظهر النطاق اللى بالشيت من A2:B5 شاهد الصوره ولو انت فى الشيت رقم 2 هيظهر النطاق اللى بالشيت من A2:B5 شاهد الصوره وهذه مشكله فلو انت عايز وين ما تكون واقف فى اى شيت ويفتح الفورم يظهر فقط النطاق اللى بالشيت رقم 1 المدى من A2:B5 فى هذه الحاله لازم احدد فى خاصيه Row Sourceاسم الشيت شاهد الصوره أو من خلال الاكواد فى البرمجه كالتالى ComboBox1.RowSource = "sheet1!a2:b5" زى ما احنا شايفين سطر الكود تم وضعه بين علامتى تنصيص " " " المدى ! اسم الشيت " وبكدا لو انت فى اى شيت نشط والفورم اشتغل فيه هيعرض فقط النطاق اللى بالشيت رقم 1 المدى من A2:B51 point
-
رابعاً:- التعامل مع خصائص الـ 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
-
بسم الله الرحمن الرحيم الاخوه الكرام اليوم بمشيئة الله سنتكلم عن شروحات الكمبوبوكس ( 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
-
السلام عليكم ورحمة الله وبركاته سوف نقوم بإذن الله تعالى بعمل سلسة من الفيديوهات التعليمية سيكون قسم منها على شكل دروس متلاحقة أجزاء ومنها مواضيع مختلفة متنوعة في فيديو واحد سيتم بعون الله تعالى نشرها بشكل منظم مرفقة بملفات العمل الخاصة بها أسأل الله أن أكون قد أسهمت في تقديم شيء أحتسبه عنده سبحانه بما أن التثبيت للمشاركة بدأ بعد نشر عدة فيديوهات سوف نتبع سياسة فيديو جديد + فيديو قديم الى تغطية الفيديوهات السابقة في نفس المشاركة هذه وبعدها يبدأ كل جديد **************************** فيديو اليوم الجديد اسخراج كشف حساب الفيديو الثالث مشاهدة مفيدة وممتعة1 point
-
إخوتى الأفاضل بعد أفضل تحية تم دمج الموضوعين فى موضوع واحد خالص تحياتى1 point
-
السلام عليكم ورحمة الله وبركاته ختام سلسلة استخراج كشف حساب استخراج كشف حساب الفيديو الرابع مشاهدة مفيدة وممتعة1 point
-
وعليكم السلام ورحمة الله الله يسلمك ويبارك فيك كشف الحساب لم تنتهي السلسلة بعد متبقي جزء اعمل على تسجيله الان ليتم رفعه لاحقا ان شاء الله1 point
-
السلام عليكم ورحمة الله وبركاته سلسلة الدالة Offset سبق وتم عرضها من قبل مع الملف الذي تم العمل عليه أثناء التسجيل سوف نعيد نشرها لنواكب الأعمال الجديدة لاحقا الدالة Offset الفيديو الأول مشاهدة مفيدة وممتعة الدالة Offset الفيديو الثاني مشاهدة مفيدة وممتعة -f7OtH9YmDsNBA الدالة Offset الفيديو الثالث ملف العمل تعلم الداالة offset.zip1 point
-
شروحات أكسس الصوتية والمرئية دروس الأستاذ عبدالفتاح كيره شرح 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=616341 point
-
السلام عليكم اخى عادل ممكن اختصار الكود بالاتى Private Sub TextBox1_Change() If Not IsNumeric(Me.TextBox1) Then Me.TextBox1 = "" End Sub لكن في حال تم كتابه ارقام ثم احرف يمسح كل محتويات التكست بوكس1 point