بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 05/01/17 in all areas
-
اخي لا اعتقد ان الاكسس مخصص لمثل هذه الاشياء .. الاكسس مصمم لعمل برامج تحتوي على قواعد بيانات وليس كما تفضلت به الا اذا كان شخص على درجة عالية جداً من الاحترافيه ممكن يصل الى ماتفضلت به تحياتي2 points
-
السلام عليكم جرب الكود التالي في حدث ورقة العمل Private Sub Worksheet_Activate() ActiveSheet.TextBox1.Activate End Sub2 points
-
جرب على جهاز اخر اذا مافي نتيجة احتمال ان يكون هناك خلل في قارئ باركود عندك او في يو اس بي جهازك و سؤال عند ربط هل يشوف جهازك قارئ الباركود2 points
-
أخي ابو عائشه انت لما تكتب الكود ، فهذه النافذة تُسمى نافذة اكواد VBA ، ويمكنك ان تبحث عن اي امر تريده مساعدة فيه ، بطريقتين (لإصدارات الاكسس 2000 الى 2010) : في هذه النافذة حقل في اعلى اليمين تكتب الامر اللي تريد تبحث عنه ، فتخرج لك نافذة فيها معلومات عن الكلمة التي تبحث عنها ، او تكتب اي امر في نافذة الاكواد ، مثلا: msgbox وتضع مؤشر الكتابة على اي جزء من الكلمة ، ثم تضغط على الزر F1 ، فتأتيك النافذة كما في الرقم 1 اعلاه ، بمعلومات عن msgbox. من الرقم ا او 2 ، سترى جميع الاوامر الخاصة بالامر msgbox الآن بالنسبة الى الامر msgbox ، فهناك اوامر تنبيه ، والتي تصدر صوت تنبيه كذلك ، وكل أمر له الشكل/الايقونة الخاص به (وهذا كان سؤال موضوعك)، مثلا: MsgBox "تجربة بصوت", vbYesNo + vbCritical او MsgBox "تجربة بصوت", vbYesNo + vbExclamation او MsgBox "تجربة بصوت", vbYesNo + vbInformation ولتكملة الموضوع ، فان الصوت يأتي من اصوات الوندوز ، ويمكنك ان تغيره من هنا (فالسهم يؤشر على صوت Critical ، والذي تناديه من الكود اعلاه بـ vbCritical): . وطبعا تستطيع استعمال أمر Beep كما قال عنه أخي شفان ، في اي مكان من البرنامج جعفر2 points
-
سوي استعلام واجعله مصدر للنموذج الخاص بالمواعيد الجيديدة وضع في التاريخ شر اكبر من date بالتوفيق2 points
-
1 point
-
ظهرت عندي مصغرة عند الساعة .. نظام تشغيلي ويندوز 8 64bit مع اوفيس 2007 عربي .. وتمت التجربة بنجاح ايضاً على ويندوز 7 32bit مع اوفيس 2003 انجليزي1 point
-
1 point
-
اخي الكريم ما الفائدة من اخفاء الكومبوبوكس ؟؟؟ (طبعا هذا هو سبب رسالة الخطا ) اما بالنسبة الى فتح النموذج الثاني عند النقر على الاسم استخدم هذا الكود DoCmd.OpenForm "frm-general", , , "[surname]'=" & Me.SurName & "'"1 point
-
حسب علمي ، لا يمكن اي طريقة اسرع من الطريقة الاولى "لجمع فى نهاية الصفحة" للأسف ، في ثمن ندفعه للبرنامج ليقوم بعمله وبالذات للتقارير ، وهذا الثمن اسمه البطء جعفر1 point
-
أجل من خصائص شريط الأدوات قم بتعديل خيار ظهور الأيقونة إلى always، أظن هذه طريقتها في Win71 point
-
1 point
-
رجاء اخباري متى تريدين ان احذف هذا المرفق وبقية المرفقات في الموضوع ، لأنها عبارة عن مرفقك المعدل ولكن اختي لوسمحتي في المرات القادمة ، اعملي نسخة من قاعدة بياناتك ، ثم احذفي جميع الكائنات التي لا علاقة لها بالسؤال ، وحذف تقريبا جميع البيانات من الجدول المطلوب إلا بعض السجلات ، ثم ارفقي هذه القاعدة ، حتى لا نحذف مرفقات الموضوع كلها. المنتدى مكان لتبادل الخبرات ، وقد يصادف احد الاعضاء يوما ما نفس مشكلتك ويريد حلا لها ، ويرى موضوعك وفيه الحل ولكن بدون مرفق ، يعني ما لقى الحل جعفر1 point
-
مشكور على مرورك استاذى الفاضل بالنسبة لتحديث الكود ل64 بيت يجب التحديث لان فى رسالة خطأ بتظهر بتطلب تحديث الكود ل64 Declare Function بالنسبة لمثالك هنزل اصلى واجرب واوافيك النتيجة1 point
-
اتفضل اليك طريقة dsum فقط اكتب هذا في مربع في نموذج الرئيسي =DSum("[الدرجة] ";"[جدول_الدرجة]";"[رقم الطالب]=" & [رقم الطالب]) اعمل كوبي باست للكود لان التسلسله مش مضبوط وتقدر تضيف NZ الى الكود هكذا (0;كود الاعلاه)NZ اتفضل اليك قاعدة بياناتك بعد تعديل 623.stu new.rar1 point
-
هناك ملاحظة * انت ما حطيت نموذج الفرعي على نموذج الفرعي , انا عملت ذلك اضفت لنموذج فرعي مربع نصي باسم تيكست 10 و كتتبت فيها اي خليت مصدره هذا =Sum([الدرجة]) وفي مربع نصي Sum_Total لنموذج الرئيسي كتبت هذا اي خليت مصدره هذا =[frm_sub].[Form]![Text10] واذا تريد ان تستخدم DSum من الافضل ان تأخذه البيانت من الجدول او الاستعلام و ليس من النموذج اتفضل قاعدة بياناتك 623.stu new.rar تقبل تحياتي1 point
-
ما تريد اخي ابو عبدالله ما فهمت شيء من قاعدة بيانات المشاركتك الماضية هل تريد شي اخوك شفان ريكاني1 point
-
اعتقد ان الجزئية الثانية ممكن تطبق عن طريق الحلقة Do Until Condition --- Loop لكن امكانياتى لا تسمح بتطبيقها اما التصغير بجوار الساعة تم تطبيقها بالفعل ولكن لا تعمل بالشكل الصحيح وكلها اخطاء تشرفت بمرورك1 point
-
فى حال كان التقرير بالعرض نغير مقاس ارتفاع الورقة إلى 21 و هو عرض ورقة a4 هذا للفائدة1 point
-
وعليكم السلام جرب الكود التالي ..ضع ما تريد من أكواد مكان سطر التعليق في الكود Sub LoopThroughClosedWBs() Dim wbk As Workbook Dim folderPath As String Dim fileName As String Dim founter As Double folderPath = ThisWorkbook.Path & "\" fileName = Dir(folderPath & "*.xl*") Application.ScreenUpdating = False Application.Calculation = xlManual Do While fileName <> "" If fileName <> ThisWorkbook.Name Then Set wbk = Workbooks.Open(folderPath & fileName) With wbk.Sheets("Sheet1") 'Your Stuff End With wbk.Close SaveChanges:=True End If fileName = Dir() Loop Application.Calculation = xlAutomatic Application.ScreenUpdating = True MsgBox "Finished ...", 64 End Sub1 point
-
أخي الكريم عبد الفتاح أعتذر منك على عدم فهمي لما تقصد وكانت اجابتي عن الفكرة التي نطبها و حسب أما بالنسبة لسؤالك فإن حد النجاح وو حد الرسوب تم اضافتهم فقط لعمل مقارنة عند ادخال درجة الطالب مرة أخرى اعتذر منك أخي عبد الفتاح1 point
-
أخى أبو عبد الله هل الإجابة على سؤالى فيه حرج لكم؟ السؤال بعيد عن الأكسيس تماما ما المقصود بحد الرسوب و حد النجاح فى نظامكم التعليميى وفقكم الله1 point
-
أخي عبد الفتاح أشكرك على عودتك و اهتمامك مرة اخرى انظر المرفق لايوجد فيه جمع لأي من الحدود ولكن الجمع يكون للدرجات في النموذج الفرعي واظهاره في نموذج الرئيسي لكل طالب الجمع فقط للدرجات مع كل احترامي وتقديري بانتظارك 623.stu new.rar1 point
-
وعليكم السلام طريقة العمل: عمل استعلام يربط الجدولين ، ثم عمل نموذج يأخذ بياناته من الاستعلام اعلاه ، ثم وقد قمت بعمل برنامج التدقيق المخزني بهذه الطريقة ، بحيث المخازن كانت تُدخل البيانات ، والتدقيق فقط يرى هذه البيانات ، ويُدخل اسعار المواد فقط جعفر1 point
-
هلا والله ، وحياك الله والوحدة النمطية modTextHeightWidth تعمل عمل آخر كذلك ، لذلك اشجعك بإنزال المرفق والذي به نموذجين ، نموذج لكل لتصغير الخط ، ونموذج لتصغير/تكبير حجم الحقل ليتناسب مع حجم الخط (يعني عكس عمل الخط) جعفر1 point
-
الحمد لله تم الحل باستخدام الكوج التالي Total: Nz(DSum("Quantity";"QYR";"[IdProduct]=" & [IdProduct] & " And [Xdate] between#" & Format([forms]![aa]![a];"yyyy/mm/dd") & "#and #" & Format([forms]![aa]![b];"yyyy/mm/dd") & "#")) واكرر الشكر لاخي الفاضل عبدالفتاح كيرة والشكر للجميع تحياتي1 point
-
السلام عليكم ورحمة الله اتمنى ان يكون هذا الكود هو ما تصبو اليه ملحوظة هامة : عند كتابة الاشهر التى تبدأ بحرف " أ " تأكد من الهمزة على حرف الألف Sub ADDToArchive() Dim ws As Worksheet, sh As Worksheet, sm As Worksheet Dim LR As Long, LS As Long, S As Long, x As Integer, cel As Range Dim a As Integer, b As Integer, c As Integer Set ws = ThisWorkbook.Sheets("ArchiveS") Set sm = ThisWorkbook.Sheets("مرايا للكشف") Application.ScreenUpdating = False If sm.Range("E1") = "" Or sm.Range("F1") = "" Then MsgBox "من فضلك اكمل التاريخ اولا" Exit Sub End If LS = ws.Range("A" & Rows.Count).End(xlUp).Row If ws.Cells(LS, "BH") = sm.Range("E1") Then MsgBox " هذا الشهر سبق ادراجه بالفعل " Exit Sub End If a = Month(DateValue("01 " & sm.Range("E1").Value)) If ws.Range("BH" & LS) = "" Then b = 0 Else b = Month(DateValue("01 " & ws.Range("BH" & LS).Value)) End If c = a - b If c > 1 And ws.Range("BH" & LS) <> "" Then MsgBox " تأكد من اسم الشهر مرة اخرى يوجد شهر او اكثر غير مدرج" Exit Sub End If For Each sh In ThisWorkbook.Worksheets If sh.Name <> "ArchiveS" And sh.Name <> "مرايا للكشف" And sh.Name <> "قوائم" Then x = WorksheetFunction.Count(sh.Range("C6:C32")) sh.Range("C6:BI32").Copy LR = ws.Range("A" & Rows.Count).End(xlUp).Row ws.Range("A" & LR + 1).PasteSpecial xlPasteValues ws.Range("BH" & LR).Resize(x + 1) = sm.Range("E1") ws.Range("BI" & LR).Resize(x + 1) = sm.Range("F1") Application.CutCopyMode = False End If Next End Sub1 point
-
رابط جديد https://drive.google.com/open?id=0B5oTVOnhU-rrOXZhZlZLbjFBSFk اخي الفاضل جزاك الله خير ا ماكنت غير اني سبب والكن الشكر كل الشكر للاستاتذه الذين ساهمو معي في هذا البرنامج ويرجع الفضل في هذا البرنامج للمولي عز وجل / ثم لا ستاذي الفاضل sandanet الذ ي بذل مجهود كبير جدا حتي وصلت به الي هذه الدرجه والشكر ايضا لاستاذي الفاضل محمد سلامه / واستاذي الفاضل ابا جودي / ولاستاذنا الكبير ومعلمنا الفاضل jjafferr الذي شرفنا بلمساته الفنيه الجميله الف شكر لكم استاتذتي الافاض لكم مني كل الشكر والتقدير وجعلكم الله عونا لكل محتاج للعلم وبارك الله لكم وعليكم وجراكم خير الجزاء ارجو من كل من يستفيد من هذا البرنامج الدعاء لكل من ساهم في هذا البرنامج في الرابط الجديد وضعت زر امر لفتح الاسكان عن طريق شورت كت علي سطح المكتب واستدعاء المسار من نموذج تغير مسار حفظ البرنامج زر النموذج في الشاشة الرئيسية لكي تستطيع فتح الاسكنر من داخل البرنامج دون الخروج1 point
-
حسب فهمي فقط راح تربط يو اس بي القارئ الباركود بالجهاز وراح تستخدمه بشكل اعتيادي1 point
-
تسلم اخى @صالح حمادي لقد قمت بانزالها وحفظها لدى فى ملف وبرجع اليها دائماً برجاء تكملة باقى الدروس .1 point
-
السلام عليكم ورحمة الله وبركاته الان انا عم اعمل تجربة على القاعدة بيانات و رقم سري له مكونة من 14 رقم والحروف اذا نجحت فيها ساخبرك واقول لك ارسللي لكن صار تقريبا ساعة و ... بعد وصل الى حد 9 بالمائة اي يعنني سيطول الامر لذا انتظرني تقبل تحياتي1 point
-
1 point
-
السلام عليكم أصل هذا الموضوع هنا أحببت أن أفرد الرد فى موضوع مستقل لنستفيد جميعا إن شاء الله و هو يختص بكيفية المحافظة على الترتيب داخل جدول حسب حقل المعرف فى حال حذف أحد السجلات و هذا هو الكود المستخدم Option Compare Database Private Sub Form_Current() If Me.NewRecord Then Dim MySQL As String, MyDB As DAO.Database, rst1 As DAO.Recordset Dim rst2 As DAO.Recordset MySQL = "Select [DashNum] From tblTest Order By DashNum;" Set MyDB = CurrentDb() Set rst1 = MyDB.OpenRecordset(MySQL, dbOpenSnapshot) Set rst2 = rst1.Clone rst1.MoveFirst: rst2.Move 1 'move to the 2nd Record in rst2 Do While Not rst2.EOF 'If the difference between 2 consecutive Dash Numbers is not 1, since 'they are ordered, this would indicate a gap in sequence If rst2![dashnum] <> rst1![dashnum] + 1 Then Me.dashnum = rst1![dashnum] + 1 rst2.Close rst1.Close Set rst2 = Nothing Set rst1 = Nothing Exit Sub End If rst1.MoveNext rst2.MoveNext Loop rst2.Close rst1.Close Set rst2 = Nothing Set rst1 = Nothing End If End Sub المحافظة على الترتيب.rar1 point
-
هذا سريعا وبعدين نسولف استاذ عبدالفتاح SELECT t1.exmid, t1.exmtotal FROM t1 WHERE (((Eval([exmtotal] & DLookUp("[my_parameter]","tbl_parameters","[select_Parameter] =true") & 200))=True)); بالتوفيق1 point
-
السلام عليكم هذا شرح فيديو سجلته اليوم أشرح فيه كيفية فتح تقرير من خلال نموذج لكن مع نقل فلترة النموذج إلى التقرير يعنى أنك فى كل مرة تعمل تصفية للنموذج بأى شكل تفتح التقرير على نفس هذه التصفية مع ملف الشرح أسفل الفيديو وفقكم الله الفيديو جميل جدا هذا بس اجعلوها المتواجدون مراعاة لصحيح النحو وفقكم الله و نثمن هذه التطورات بالمنتدى1 point
-
السلام عليكم اخواني الكرام الفكرة عندي هي 1- انشاء وحدة نمطية لاستدعاء الصورة من مجلد جانب البرنامج اسمه img يتطلب هذا الامر استخدام براميتر لاسم الصورة وبراميتر لامتداد الصورة ندخلهم عند كود الاستدعاء وصلت الى هذه الوحدة النمطية Function selectimage(imageName, typeimage As typeimg) Dim typeimg As String Select Case typeimage Case 1 typeimg = ".png" Case 2 typeimg = ".jpg" Case 3 typeimg = ".bmp" Case 4 typeimg = ".ico" End Select selectimage = Application.CurrentProject.Path & "\img\img\" & imageName & typeimg End Function بحيث استخدمها عند استدعاء اربع انواع من الامتدادات حصرا لكن كما هو واضح من الكود اني استدل على الامتداد برقم وبعد مرور الوقت قد انسى ان الرقم 3 يرجع الى اي امتداد او عدد الامتدادات المسموح استخدامها لذلك استخدمت enum لعرض الامتدادات المسموح بها اثناء كتابة كود الاستدعاء على الشكل التالي بهذه الطريقة عرفت الامتدادات وعددها ولم استخدم الارقام في التعريف عن الامتداد لكن القيم بداخلها هي قيم رقمية احتاج الى الامر select حتى احولها الى نصية الى الان الوضع تمام والكود شغال ممتاز لكن طمعي بكود اقصر واداء افضل بحيث عندما اختار من القائمة تكون القيمة المخزنة فيها نصية واستخدمها مباشرة دون الحاجة الى استخدام select1 point
-
1 point
-
دفعة واحدة عبر الاستعلام وحده لا اعلم ولكن اظن تحقيق ذلك بالاستعانة بالكود بالنسبة ليوم الجمعة انظر التعديل على الاستعلام db3.rar1 point
-
هذا الملف بصيغة 2003 ارجو تحويله لصيغة 2003 او 2007 وشكراً لا تقلق أخي هذا ليس إزعاج نحن نعمل ما نستطيع فعله و لا يمكن أن يزعجنا شخص يطلب العلم تأثيرات 2003.rar و هذا الملف الآخر 2003.rar1 point
-
1 point
-
السلام عليكم هذه المرة مع ملف الشرح لأجل الأخ شيفان حمل ملف الشرح من هنا https://drive.google.com/file/d/0Bw4O...بهذا الملف جلب أسماء و مسارات الملفات لمجلد معين متضمنا المجلدات الفرعية لأعمق مستوى فتح موقع الملف – المجلد الموجود فيه-ز البحث فى أسماء الملفات و المجلدات فتح أى ملف من نفس الموضع داخل أكسيس تخزين أسماء الملفات فى جدول أكسيس يمكن تصديره و استخدامه كود استخلاص مسار المجلد من مسار الملف متضمنا شرحا لدالتى instr و instrrev و الفرق بينهما و كذلك شرح دالة left1 point
-
شكرا لك المزيد موجود بفضل الله تفضل هنا https://www.youtube.com/playlist?list=PL5PD6GA0B7hUkLyg2lxQl0UnLQppmW7QK1 point
-
السلام عليكم عثرت على هذا الكود الرائع لتصدير الاستعلامات من أكسيس إلى إكسيل الكود يعمل بكفاءة مع الاستعلامات بدون معايير أو بمعايير مباشرة داخل الاستعلام كيف يمكن تعديله ليصدر استعلاما يستخدم معيارا فى نموذج علما بأننى فتحت النموذج أثناء تشغيل الكود و اخترت القيمة و مع ذلك لم يفلح و يعطى رسالة خطأ أنه يحتاج لقيمة معلمة وفقنا الله و إياكم لنفع المسلمين هاكم الكود 'Step 1: Declare your variables Dim MyDatabase As DAO.Database Dim MyQueryDef As DAO.QueryDef Dim MyRecordset As DAO.Recordset Dim i As Integer 'Step 2: Identify the database and query Set MyDatabase = CurrentDb Set MyQueryDef = MyDatabase.QueryDefs(Me.allq.Column(1)) 'Query name in the database 'Step 3: Open the query 'DoCmd.OpenQuery Me.allq.Column(1) Set MyRecordset = MyQueryDef.OpenRecordset 'Step 4: Clear previous contents Dim xlApp As Object Set xlApp = CreateObject("Excel.Application") With xlApp .Visible = True .Workbooks.Add .Sheets("ورقة1").Select 'Step 5: Copy the recordset to Excel .ActiveSheet.Range("A1").CopyFromRecordset MyRecordset 'Step 6: Add column heading names to the spreadsheet For i = 1 To MyRecordset.Fields.Count xlApp.ActiveSheet.Cells(1, i).Value = MyRecordset.Fields(i - 1).Name Next i xlApp.Cells.EntireColumn.AutoFit End With MsgBox "تم التصدير بنجاح"1 point
-
مع الحقول التواريخ بيستخدم "#" مع المعيار اي سيكون المعيار الاعلى هكذ واحيانا لازم نستخدم دالة فورمات مع تاريخ لكي يحدد نوع التاريخ [Xdate]<=#" & [Xdate] &"#" تحياتي1 point
-
الفكرة الجديدة هي: خلينا نستعرض كل صفحة ونشوف نتيجة الجمع اسفل الصفحة ، ولما نشوف نتائج كل صفحة ، خلينا نحفظ هذه المعلومة في مكان ما (انا استعملت Array ، ولكن يمكن استعمال جدول مؤقت كذلك) ، وعلشان نستعرض كل صفحة ، فيجب استعراضها يدويا ، او طباعة التقرير ، انا طبعت التقرير بصيغة rtf (فحصلت على مجموع كل صفحة في Array ، ثم حذفت ملف rtf المؤقت ، ثم اعرض التقرير بطريقة عادية ، وتكون النتائج في رأس الصفحة ولكن يجب عليك فتح التقرير عن طريق النموذج علشان هذا العمل ، لازم تكون عندنا وحدة نمطية للإحتفاظ بالقيم ، الرقم 100 معناه 100 صفحة تقرير (يعني انا كتبت رقم كبير ، واذا تقريرك فيه صفحات اكثر ، فرجاء تكبير الرقم): Option Compare Database Public A1(100), B1(100), C1(100) وكود جمع البيانات كما عملناه سابقا ، بالاضافة الى إضافة النتائج الى Array : Option Compare Database Private A, B, C As Integer Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer) If Me.Sec = "الاستقبال" Then A = A + 1 ElseIf Me.Sec = "الصيانه" Then B = B + 1 ElseIf Me.Sec = "المطبعه" Then C = C + 1 End If End Sub Private Sub PageFooterSection_Print(Cancel As Integer, PrintCount As Integer) Me.txt_A = A A1(Me.Page) = A Me.txt_B = B B1(Me.Page) = B Me.txt_C = C C1(Me.Page) = C A = 0 B = 0 C = 0 End Sub Private Sub PageHeaderSection_Print(Cancel As Integer, PrintCount As Integer) On Error GoTo err_PageHeaderSection_Print Me.txt_A1 = A1(Me.Page) Me.txt_B1 = B1(Me.Page) Me.txt_C1 = C1(Me.Page) Exit Sub err_PageHeaderSection_Print: If Err.Number = 9 Then Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 576.الجمع بشرط فى تقرير.accdb.zip1 point
-
جزاك الله خيرا اخي وائل على التوضيح غالبا جهاز قارىء الباركود يمكن برمجته ليقرأ ويكتب ثم يرسل مفتاح انتر او مفتاح تاب ، او يكتب على سطر واحد تصور انك تكتب رقم العميل ثم تنقر انتر لتحدث الحقل فتخرج بياناته ( هذا ما يفعله جهاز الباركود ) كل ما عليك هو وضع جملتك البرمجية في حدث بعد التحديث للحقل1 point
-
1 point
-
كود بسيط لهذا الغرض Sub xx() Columns.Hidden = True Range("a1,c1,e1,j1,o1,z1").EntireColumn.Hidden = False End Sub1 point
-
تفضل آمل ان يحقق مطلبك Private Sub A_AfterUpdate() If (DLookup("B", "tbl1", "B=form!B")) Then MsgBox "هذا السجل مكرر " Undo End If End Sub Private Sub B_AfterUpdate() If Not IsNull(DLookup("A", "tbl1", "A=form!A")) Then MsgBox "هذا السجل مكرر " Undo End If End Sub NoDuplicates.rar1 point
-
السلام عليكم 1) صديقي الغالي استاذ جمال الفار جزاك الله خيراً على التشجيع دائما واسعدني مرورك الكريم 2 ) استاذ جمااااال أ ) بعتذر عن الملف المرفق الذي وضعته في المشاركة رقم 8 حيث اننى وضعت ملف فارغ فيه صفحة النسب فارغة دون الحل والمعادلات التي قمت بشرحها رغم انني كنت انوي ان اضع ملف به حل وتنفيذ ما شرحته في المشاركة ونظراً لاني خارج البيت فعند كتابة اول مشاركة فسوف اضع الملف المرفق. ب ) أخي لو كانت الطريقة هذه مملة فلك ذلك وسيتم تنفيذ المطلوب مباشرةً دون شرح. ج ) في انتظار ردك أخي الكريم...1 point