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

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

  1. Amr Ashraf

    Amr Ashraf

    الخبراء


    • نقاط

      19

    • Posts

      946


  2. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      14

    • Posts

      9931


  3. محمد ايمن

    محمد ايمن

    الخبراء


    • نقاط

      11

    • Posts

      1669


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

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

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


    • نقاط

      9

    • Posts

      13165


Popular Content

Showing content with the highest reputation on 05/11/17 in all areas

  1. الفرق بين ByVal و ByRef Byval يقصد بها الاستدعاء بالقيمة ByRef يقصد بها الاستدعاء بالمرجع الكود التالي سيوضح الفكرة أكثر لنفرض لدينا عددين و نريد تطبيق كود معين او معادلة ما على هذين العددين 'نضع هذا الكود خلف زر امر في نموذج dim x as intger dim y as intger dim i as intger x=10 y=5 'استدعاء كود الجمع بالقيمة و اظهار الناتج i=add1(x,y) msgbox i msgbox x 'استدعاء كود الجمع بالمرجع و اظهار الناتج i=add2(x,y) msgbox i msgbox x 'كود الجمع باستخدام Byval private function add1(byval n1, byval n2) as intger add1=n1+n2 n1=3 end function 'كود الجمع باستخدام ByRef private function add2(byref n1, byref n2) as intger add2=n1+n2 n1=3 end function الشرح في المثال انشئت وظيفة بسيطة لجمع عددين هما X Y عرفت متغيرين و وضعت قيم فيها وهي (x=10) و (y=5) الوظيفة Add1 انشئت وظيفة اسمها Add1 تستقبل عددين هما n1 و n2 ( بالقيمة ) Byval تقوم الوظيفة بجمع العددين و ارجاع الناتج ( و هنا الناتج 15 ) من خلال هذا السطر add1=n1+n2 ثم غيرت قيمة العدد الاول من 10 الى 3 من خلال هذا الكود n1=3 هذا يعني ان x يجب ان تصبح قيمتها 3 ولكن ستجد ان قيمة X مازالت 10 !!!!!!!!!!!!!!!! ( لاحظ انه بعد تعديل قيمة X من الوظيفة وضعت رسالة لتعطي قيمة x ) الوظيفة Add2 الوظيفة Add2 في نفس الوظيفة Add1 لكن الفرق ان الوظيفة Add2 تستقبل القيم n1 و n2 ( بالمرجع ) ByRef تقوم الوظيفة بجمع العددين و ارجاع الناتج ثم غيرت قيمة العدد الاول من 10 الى 3 ولكن هنا ستجد ان قيمة X اصبحت 3 !!!!!!!!!!!!!!!! السبب ان Byval تحافظ على القيمة الاصلية للمتغير المرسل لها اما Byref فهي تغير القيم للمتغير المرسل لها ارجو ان اكون قد وفقت في الشرح
    4 points
  2. السلام عليكم ورحمة الله وبركاته أخوتى واساتذتى الكرام لكم منى أجمل تحية ,,, انا عملت الموضوع ده لانى نظرت لوضع قسم الأكسس ولقيت انه اصبح بنسبة 90% قسم للطلبات والاستفسارات وينقصه مواضيع وشروحات جديدة طبعا المنتدى يزخر بكنوز من المعلومات وخبرات أناس تعلمنا على يدهم الكثير وطبعا انا كمبتدئ استفدت كتيير جدا من الاساتذة والخبراء بالمنتدى وبعدها فكرت انا حتى الان لم اقدم اى افادة لهذا الصرح العظيم وأنا كهاوى محب للبحث فى مواضيع الأكسس وتصميماته وأكواده والأدوات المساعدة للتصميم تجولت كثيرا فى المواقع الاجنبية وحصلت على الكثير من الادوات المفيدة جدا لأى مبرمج او حتى المبتدأين فكرت انى ممكن أعمل موضوع يخص الاداوت المساعدة فى التصميم مع شرح لبعض الادوات وذلك لانى لم أجد اى ذكر لهذه الادوات المهمة فى المنتديات العربية ولكون الموضوع سيأخذ الكثير من الجهد بالنسبة لى قلت لازم أخد رأى الاساتذة الاول هل اطرح موضوع به عدد من الادوات المساعدة وشرحها من باب اثراء المنتدى الذى استفدنا منه الكثير أم ان الموضوع ليس بهذا القدر من الأهمية ؟ مستنى أرائكم دمتم فى رعاية الله
    3 points
  3. وعليكم السلام وتوضيحا لجواب اخي شفان = "(" & format([حقل التاريخ],"yyyy/mm/dd") & ")" او = "(" & format([حقل التاريخ],"dd/mm/yyyy") & ")" او = "(" & format([حقل التاريخ],'yyyy/mm/dd') & ")" او = "(" & format([حقل التاريخ],'dd/mm/yyyy') & ")" جعفر
    3 points
  4. السلام وعليكم اساتذتى الاقاضل اثناء تصفحى اليوم لمنتدى اجنبى وجدت اداة مفيدة جدا لحفظ الاكواد وبها الكثير من الامثلة المحفوظة بداخلها وتعمل على 2003 حبيت اشاركها مع الاخوة فقمت بتحويل نسخة منها لتعمل على 2010 حتى يستفيد اكبر عدد ممكن فى صورة فى المرفقات للاداة دمتم فى رعاية الله CodeStore2003.rar CodeStore2010.rar
    2 points
  5. حياالله أخوي رمهان وهذا اللي عملته ، بإستخدام DMax اولا للحصول على القيمة العليا للحقل ID ، اي Order by ID desc ، ثم استخدام قيمة هذا الحقل ، للحصول على الحقول الصحيحة من السجل الصحيح جعفر
    2 points
  6. حبيت انبه هنا الشي معين دوال المجال ومنها dlast خصوصا والتي تعتمد على ترتيب البيانات في المصدر فانه : قد لا تحصل على نتيجة متوقعه اذا كان المصدر جدول لان البيانات في الجدول لايحكمها ترتيب معين في خصوصا اذا الحقل الداخل في الداله ليس مفهرس كما انها ليست عمليه اذا لديك سجلات ضخمة في الجدول هنا اعمل استعلام ثم قم بعمل ترتيب بشكل صريح في الاستعلام ثم اجعل الاستعلام مصدر للدالة . هنا ستاتي اخر قيمة في الاستعلام لاني اعلم ان البيانات مرتبه بالشكل الذي اريده تحياتي
    2 points
  7. وعليكم السلام المنتدى لدعم اي شيء يمكن ان يساعد احدنا في برامجه ، فأهلا وسهلا بفكرتك جعفر
    2 points
  8. اتفضل علي بركة الله ونحن سندعمك ببعض الادوات في مكتبتي لبعض الاساتذة الكبار مثل اداة لربط الجداول اداة للنسخ الاحتياطية للجداول الخلفية اداة لاخفاء خلفية الاكسس ...الخ
    2 points
  9. استأذنك أخى شيفان فى افادة الاخ صاحب الموضوع فيه طريقة اسهل شوف الحقل اللى انتا عاوز تطبق عليه الكود سواء تكست بوكس أو كومبوبوكس فى حدث BeforeUpdate اكتب الكود التالى مع تغيير المسميات If IsNull(Me.Gender) then Cancel = Msgbox ("لا يمكن ترك هذا الحقل فارغ") جرب ووافنا بالنتيجة
    2 points
  10. لم تنفع Thin لكن جربت Sizable ونفعت واعطت النتيجة المطلوبة مشكورين على المرور
    2 points
  11. وعليكم السلام جرب الكود التالي Sub Test() Dim ws As Worksheet Dim sh As Worksheet Dim arr As Variant Dim temp As Variant Dim i As Long Dim j As Long Dim c As Long Dim b As Boolean Dim t As Double Set ws = Sheets("السجل") Set sh = Sheets("وصل") arr = ws.Range("A4:J" & ws.Cells(Rows.Count, 1).End(xlUp).Row).Value ReDim temp(1 To UBound(arr, 1), 1 To 4) sh.Range("A4:D" & Rows.Count).ClearContents For i = LBound(arr, 1) To UBound(arr, 1) If arr(i, 2) = sh.Range("A2").Value Then If b = False Then sh.Range("B2").Value = arr(i, 3) sh.Range("G4").Value = arr(i, 8) b = True End If j = j + 1 For c = 4 To 7 temp(j, c - 3) = arr(i, c) Next c t = Application.WorksheetFunction.Sum(t, arr(i, 9)) End If Next i If j > 0 Then sh.Range("F4").Value = t sh.Range("A4").Resize(j, UBound(temp, 2)).Value = temp End If End Sub
    2 points
  12. استاذي القدير / ابو البـراء جزاك خيراً استاذي الحبيب و كل عام وحضرتك بخير خالص حبي وتقديري لشخصك المحترم
    2 points
  13. وعليكم السلام ورحمة الله وبركاته بارك الله فيك أخي الحبيب خالد الرشيدي .. حل ممتاز ورائع وأفضل من استخدام الأكواد في هذه الحالة جزاك الله خير الجزاء تقبل وافر تقديري واحترامي
    2 points
  14. السلام عليكم حتى تعين اخوانك على مساعدتك ، حاول ان تضع طلبا واحد فقط في كل مرة
    2 points
  15. 1. الحمدلله 2. الاكسس لا يستعمل ملف خارجي مؤقت لحفظ البيانات عند عمل إضافات سجلات في الجدول ، فهو يُدخل البيانات اولا: أ- ثم يسأل اذا المستخدم موافق او لا (هذه رسالة التأكيد التي تظهر لنا قبل الحاق/إضافة السجلات) ، ب- وثم يتأكد من شروط الحقل اذا تنطبق عليه او لا (مثلا يجب ان يكون الرقم في الحقل بين 1-12 مثلا) وعليه ، فكلما اضاف سجل جديد ، فتلقائيا يكون لكل سجل رقم تلقائي جديد ، والرقم التلقائي اللي ينحذف ما يرجع وفي مثل حالتك ، الرقم 2 راح عليك لأنه بين الارقام ، اما اذا اردتي الرقم التلقائي يبدأ من الرقم 4 ويواصل ، فيجب عليك حذف الارقام 34 و35 ، ثم عمل ضغط واصلاح للبرنامج ، ثم ستجدين ان الرقم التلقائي يبدأ من 5 ، الى ان تقومي بعملية الالحاق والالغاء ونرجع لنفس المشكلة في الواقع هذه ليست مشكلة في البرنامج ، وانما مشكلة المبرمج ، حيث قلت مرارأ وهذه الروابط ستفيدك و جعفر
    2 points
  16. السلام عليكم ورحمة الله أستأذن استاذي القدير / ابو البـراء جزاه الله عنا كل خير في عرض حل بطريقة معادلات التنسيق الشرطي ... كطريقة اخرى للحل =IF(SUM($B2:$N2)/COUNTIF($B2:$N2,"<>")=MAX($B2:$N2),0,1) كل عام وحضراتكم بخير تجربة_2.rar
    2 points
  17. السلام عليكم جرب الكود التالي Sub Test() Dim r As Long Dim c As Long Dim t As Variant Dim b As Boolean Application.ScreenUpdating = False For r = 2 To Cells(Rows.Count, 1).End(xlUp).Row b = False For c = 2 To 14 If Not IsEmpty(Cells(r, c)) Then t = Cells(r, c) Next c For c = 2 To 14 If Cells(r, c) <> t And Not IsEmpty(Cells(r, c)) Then b = True If b And Not IsEmpty(Cells(r, c)) Then Cells(r, 1).Interior.Color = vbCyan Cells(r, c).Interior.Color = vbGreen End If Next c Next r Application.ScreenUpdating = True End Sub
    2 points
  18. اهلا بك اخي الكريم private تعني خاص مثال private sub total في السطر السابق قمت بتعريف كود على انه خاص اي ان هذا الكود يستدعى و يعمل ضمن النموذج المكتوب فيه الكود و اذا حاولت استدعائه من غير نموذج لن يجدي ذلك نفعا public تعني عام مثال public sub total في السطر السابق قمت بتعريف كود على انه كود عام اي انك اذا وضعت الكود السابق في نموذج فيمكنك استدعائه من نموذج آخر دون الحاجة لكتابة الكود مرة اخرى global تعني عالمي Global Strcod as String في السطر السابق تم تعريف متغير من نوع نص على انه عالمي و المقصود هنا ان المتغير يمكن استخدامه في اي مكان من قاعدة البيانات مع ملاحظة انه يمكنك ايضا تعريف المتغيرات بكلمة Public Public Strcod as String لكن عندما تريد استخدام المتغيرات لكافة النماذج يجب عليك وضعها ضمن وحدة نمطية كلمة ( Global ) هي كلمة قديمة و حاليا يحل محلها كلمة ( Public ) dim كلمة يقصد بها تعريف متغير Dim ii as Intger في السطر السابق تم تعريف المتغير ii على انه متغير من نوع رقمي set وتعني ضبط dim db as dao.database set db=currentdb في الكود السابق dim ii as intger المتغير في هذه الحالة يملك قيمة افتراضية وهي 0 اما في السطر السابق قمت بتعريف المتغير Db كقاعدة بيانات و لكنه مازال بحاجة الى تعريف قاعدة البيانات التي عرفته بها لذلك تستخدم كلمة Set و في هذا المثال ضبطت المتغير على قاعدة البيانات الحالية يتبع الفرق بين Sub و Function sub تعني موضوع او كود في في هذه الحالة الكود ينفذ دون ارجاع قيمة مثال public sub Amsg msgbox "aa" end sub عرفت الكود ليعطي رسالة مكتوب فيها aa و يستدعى بهذا الشكل call Amsg لاحظ هنا ان الكود لا يعيد قيمة هو فقط يعطي رسالة اما Function فهي وظيفة و هي تعيد قيمة مثال Public Function AdNum (ii as intger,ss as intger) as intger adnum=ii+ss end function في هذا المثال عرفت الوظيفة لتقوم بجمع عددين وتعطي الناتج حيث يمثل Adnum اسم الوظيفة و ii العدد الاول و ss العدد الثاني تستدعى بهذا الشكل call AdNum(10,15) لاحظ هنا ان الوظيفة تعيد قيمة وهي ناتج جمع العددين يتبع
    2 points
  19. 1 point
  20. اولا: شروط المنتدى لا تسمح بهذا ، ثانيا: البرنامج الذي استفيد منه ، اشتريه ، وخصوصا اذا استعماله خلال الفترة التجريبية اثبت جدارته جعفر
    1 point
  21. على بركة الله .. فأمثالي ممن فقدوا جميع بياناتهم بسبب مشكلة في الهارد يحتاجون الى تلك الادوات بشدة ولانها غير متوفرة في المنتدى فاننا نعاني بشدة للوصول اليها .. توكل على الله
    1 point
  22. بصراحة يا استاذ أمير ويشهد الله علي اني لازلت اتذكرك جيداً ودائماً ما اتفرج على اكوادك البرمجية التي كانت لدي واتعلم منها .. اتمنى وجودك المستمر معنا وعدم الانقطاع عن هذا المنتدى الرائع الذي فيه اساتذة محترفين ومحترمين جداً لم اكن اتخيل وجودهم مجتمعين هنا في مكان واحد .. حفظك الله واياهم اجمعين وبارك الله بكم على مجهوداتكم الرائعة . تحياتي
    1 point
  23. السلام عليكم احد اهم الحقول اللي عندك هو حقل الترقيم التلقائي ، والذي دائما سيعطي الرقم المسلسل لإدخالك ، فإستعماله سيحل لك المشكلة: Private Sub ReportHeader_Format(Cancel As Integer, FormatCount As Integer) Dim x() As String MX = DMax("[ID]", "Transactions", "[Qty in]<>0") DL = DLookup("[add_doc] & '|' & [zdate]", "Transactions", "[ID]=" & MX) x = Split(DL, "|") Me.Text53 = x(0) Me.Text48 = x(1) End Sub جعفر
    1 point
  24. بارك الله بك و جزاك الله خيراً اخي ياسر ولكن عندي تساؤل لماذا لم تستعمل الحلقة For Nxet Private Sub CommandButton1_Click() Sheets(1).Activate lrow = Range("d" & Rows.Count).End(xlUp).Row + 1 Range("d" & lrow).Value = ComboBox1.Value For i = 1 To 6 Range("d" & lrow).Offset(0, i).Value = Controls("TextBox" & i).Value Controls("TextBox" & i).Value = "" Next End Sub
    1 point
  25. السلام عليكم الموضوع ظاهرا ليس ببسيط ، فياريت مرفق ، ونجرب عليه جعفر
    1 point
  26. تمام السبب انى سألت انى مهتم بتحصيل المعلومات والخبرات خاصة الجديدة منها بالتوفيق للجميع ان شاء الله
    1 point
  27. وعليك السلام اخي الفاضل : يجب تحديد الارقام الاربعة المراد اخدها وفي اي خلية يتم وضعها ويفضل كتابةالنتائج المتوقعة في الخلية حتى يتضح المطلوب لك خالص تحياتي
    1 point
  28. تمام سأرى تعديلك إن شاء الله بالنسبة لسؤالك : الأفضل أن نستخدم الأرقام للدلالة على الأسماء ويتم تخزينها بالجدول وفي نفس الوقت يمكن ظهور الاسم في الجدول أو الاستعلام بالرغم من وجوده بالجدول كرقم ، مثل التعديل بالمرفق والتعديل : كان أمامي عدة اختيارات : الأول : أن تختار الموقع ثم تختار الفرع استناداً إلى ذلك الموقع الثاني : أن تختار القطاع ثم تختار الموقع استناداً إلى القطاع ثم تختار الفرع استناداً إلى الموقع الثالث : أن تختار القطاع أو الموقع أو كلاهما ثم تختار الفرع استناداً إلى اختيارك لأحدهما أو كليهما الرابع : أن تختار القطاع أو الموقع أو الفرع بأي ترتيب تريد بحيث يتم التصفية تدريجياً حسب اخيتارك. وقد اخترت الخيار الثالث ، لكن القرار لك طبعاً Backup_2.rar
    1 point
  29. العفو أخي عمرو ، كنت بهزّر مع اخونا أوس وهذه طريقتي في طلب معلومات في مشاركاتي لفهم الموضوع ومعرفة المشكلة جعفر
    1 point
  30. استاذي الكبير @jjafferr فهمت جيداً فائدة استخدام قواعد بيانات الاكسس كمرجع وتبين لي ان الفكرة ببساطة تشبه فكرة ربط الواجهات الأمامية مع القاعدة الخلفية التي تحتوي على جداول القاعدة غير ان هذا الموضوع يتطرق الى استخدام النماذج والتقارير ايضاً (في حال احتوت القاعدة الخلفية عليها) فالقاعدة الخلفية ان احتوت على النماذج والتقارير فسوف تعمل كبرنامج مستقل ويتم استدعائها في القاعدة الامامية .. لكني في الحقيقة لم اجرب بعد استخدام هذا الاسلوب بسبب انشغالي بفرمتة الجهاز واسترجاع الملفات التي فقدتها .. لكن ان شاء الله لي عودة لهذا الموضوع لاحقاً
    1 point
  31. ماشاء الله شرح وافى وسهل الفهم بدون تعقيدات جزاك الله خير ووفقك وزاد من علمك
    1 point
  32. مجرد خطأ فى المسميات بين Reqid و Request ID واتفضل قاعدتك بعد التعديل referral.rar
    1 point
  33. السلام عليكم بالنسبة للنموذج فى وضع Maxmize يتم ملئ الشاشة بالكامل مع تغطية شريط المهام عاوز الشريط السفلى دايما ظاهر وليس مغطى بالنموذج فى المرفقات الشكل الحالى للنموذج
    1 point
  34. اعمل كما قال السيد @Rebaz Bahram وانا جربت ذلك ونفعت لكن الايقونة اكسس ما يظهر في شريط
    1 point
  35. مشكور على مرورك ولكن لم تنفع الطريقة
    1 point
  36. تفضل اخى الكريم علة المطلوب =VLOOKUP(DAY($D$3),INDIRECT("'"&C13&"'!C14:Z44"),MONTH($D$3)*2,FALSE) البحث في جداول متعددة.rar
    1 point
  37. نعم اريدها للعرض فقط والتعبيئة من خلال فورم اخر ولكن اريد ان اعرف كيف قمت بذالك لكي اتعلم
    1 point
  38. تمام بس تأكيد على طلبك : القطاع يحتوي أكثر من فرع ثم الفرع يحتوي أكثر من شركة ؟ أم : القطاع يحتوي أكثر من شركة ثم الشركة تحتوي أكثر من فرع ؟ ------------ سؤال آخر للاحتفاظ ببياناتك : الجدول الذي بياناته بها : ( أكتوبر - شل و ABB و ATM ..... ) هو جدول للأفرع أم للشركات ؟ والجدول الذي بياناته بها : (QNB و بنك المشرق ..... ) هو جدول للأفرع أم للشركات ؟ ------------- سؤال آخر : مصطلح الموقع تقصد به : فرع أم شركة أم قطاع ؟
    1 point
  39. 1 point
  40. بارك الله فيك أستاذي الحبيب محمد صالح أخي الكريم زاكي شاهد الفيديو التالي لعله يفيدك في بعض الأساسيات https://youtu.be/59WvTJvdfOQ
    1 point
  41. استأذن من الاستاذ @ابو زاهر اخي حمادة اكتب الكود في اي مكان تريد اذا تريد وضع في زر حقل جديد او عند خروج من احد الحقول لكن من الافضل ان تضع في فورم قبل تحديث هناك ملاحظة : الكود فقط لا يخليك ان يخلي المربع النصي فارغا اما كومبو بوكس و ليست بوكس ما بها علاقة تحياتي
    1 point
  42. الفرق بين Class و module الوحدة النمطية يخزن بها كود يستدعى من اي مكان في قاعدة البيانات وهو يخفف من كتابة الكود و تسهيل تطوير قاعدة البيانات في المثال السابق عندما عرفنا الوظيفة AdNum وهي تقوم بجمع عددين لنفرض انه لدينا 10 نماذج و نحن بحاجة لتطبيق كود الجمع في جميع هذه النماذج من غير المنطقي تكرار كتابة الوظيفة في كل نموذج اي اننا سنكتب الكود السابق 10 مرات و اذا اردنا ان نعدل او نطور الكود ستكون العملية صعبة و مملة و قابلة للخطا لذلك ننشئ وحدة نمطية ونضع الكود داخلها و بذلك يمكن استدعاء الكود من اي مكان class الكلاس هي تقريبا نفس الوحدة النمطية و لكن يوجد بعض الفروق الاساسية بينهما يتم التعامل مع الوحدة النطية باسم الكود المكتوب ضمنها مثال لنفرض لدينا وحدة نمطية اسمها Mod1 وبداخلها عشرة اكواد code 1 code 2 code 3 وهكذا و انا بحاجة الى استخدام الكود الاول في النموذج اقوم باستدعائه بهذا الشكل call code1 اما الكلاس فالموضوع يختلف لنفرض لدينا كلاس اسمها Class1 و بها عشرة اكواد code1 code2 code3 الخ وانا اريد استخدام الكود الثاني لا يمكن ابدا كتابة الاستدعاء هكذا Call Code2 السبب لانه عليك تعريف متغير يحتوي على الكلاس اولا ثم استخدامه ويتم تعريفها بهذا الشكل dim Cl = new class1 cl.code2 يتبع
    1 point
  43. مشكور على مرورك الاداة مش تصميمى اخى الكريم انا شاركتها بس
    1 point
  44. السلام عليكم ارجو ان يكون المطلوب تحياتي Tbl_ResultPrep_xls.rar
    1 point
  45. 1 point
  46. كود ملء الشاشة ، اخفاء شريط الادوات ،اخفاء شريط الصيغة DisplayFullScreen.rar
    1 point
  47. اخواني كيف حالكم التحميل ماشاء الله لكني لا ارى اي تجاوب ومع ذلك نكمل الموضوع هذا الكود لفهرسة الاوراق في الورقة1 فهرس اوراق في الورقة الاولى.rar
    1 point
  48. وهذا لينك الملف الثالث قمت بجمع ملف الرسبيهات مع ملف الجرد المراد ان يتم وضع فية جرد اول المدة وجرد اخر المدة و الاستلامات والهالك http://www.4shared.com/document/gluQvBTV/___.html ليعطينى العجز او الزيادة ويعطينى ايضا تسعير جرد اخر المدة اعلم انى تثاقلت على حضرتك كثيرا ولكن اتمنى ان يفيد هذا العمل كل من هو فى هذا المجال اشكرك اخى الكريم اخوك ايمن وجزاك الله خيرا عنى وعن كل من استفاد بهذا الموضوع
    1 point
×
×
  • اضف...

Important Information