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

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

  1. صالح حمادي

    صالح حمادي

    أوفيسنا


    • نقاط

      5

    • Posts

      1,745


  2. Ali Sadiq

    Ali Sadiq

    02 الأعضاء


    • نقاط

      5

    • Posts

      53


  3. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      5

    • Posts

      8,723


  4. ابو البشر

    ابو البشر

    الخبراء


    • نقاط

      5

    • Posts

      630


Popular Content

Showing content with the highest reputation on 07 ينا, 2020 in all areas

  1. السلام عليكم بالمرفق طريقة التحديث والإضافة من جدولين باستخدام أكود Recordset كود التحديث : Dim i As Integer Dim ii As Integer Dim RC As Integer Dim RC1 As Integer Dim A2 As Variant Set rs = CurrentDb.OpenRecordset("Select * From Temp3") rs.MoveLast: rs.MoveFirst RC = rs.RecordCount For i = 1 To RC A2 = rs!f2 ' يجب أن يكون نوع الحقل المربط بين الجدولين رقم Set rst = CurrentDb.OpenRecordset("SELECT * From Temp4 WHERE ID =" & rs.ID & "") rst.Edit rst.ID = rs.ID rst.f1 = rs.f1 rst.f2 = rs.f2 rst.F3 = rs.F3 rst.F4 = rs.F4 rst.F5 = rs.F5 If Len(A2 & "") <> 0 Then rst!F6 = "******" & Right(rs.f2, 4) rst.Update rs.MoveNext Next i Set rst = Nothing Set rs = Nothing MsgBox "OK" كود الإضافة : Dim i As Integer Dim ii As Integer Dim RC As Integer Dim RC1 As Integer Set rs = CurrentDb.OpenRecordset("Select * From Temp4") rs.MoveLast: rs.MoveFirst RC = rs.RecordCount For i = 1 To RC ' يجب أن يكون نوع الحقل المربط بين الجدولين رقم Set rst = CurrentDb.OpenRecordset("SELECT * From Temp5 WHERE ID =" & rs.ID & "") rst.AddNew rst.ID = rs.ID rst.f1 = rs.f1 rst.f2 = rs.f2 rst.F3 = rs.F3 rst.F4 = rs.F4 rst.F5 = rs.F5 rst.F6 = rs.F6 rst.Update rs.MoveNext Next i Set rst = Nothing Set rs = Nothing MsgBox "OK" وبالتوفيق Recordset.mdb
    5 points
  2. السلام عليكم نعم اخي شوف الصورة بالتوفيق
    4 points
  3. شاهد هذا لفيديو https://www.youtube.com/watch?v=hElkHVLg7a4
    3 points
  4. الحلقة السادسة: تابع لدرس التعامل مع الجداول في صفحة ويب في الدرس الماضي قمنا بالتعامل مع جدول له خاصية id و في هذا الجدول سوف نتعلم كيفية التعامل مع الجداول التي ليس لها خاصية id أو name سوف نعتمد في هذا الدرس على خاصية Tagname التطبيق سوف يكون على صفحة ويكيبيديا: https://mawdoo3.com/جميع_دول_العالم_وعواصمها 1- كود حساب عدد الجدول في الصفحة: MsgBox WebBrowser3.Document.getElementsByTagName("table").Length 2- كود حساب عدد الخلايا في الجدول: MsgBox WebBrowser3.Document.getElementsByTagName("table").Item(0).cells.Length 3- كود حساب عدد الصفوف في الجدول: MsgBox WebBrowser3.Document.getElementsByTagName("table").Item(0).rows.Length 4- كود استخراج بيانات خلية في الجدول: MsgBox WebBrowser3.Document.getElementsByTagName("table").Item(0).rows(1).cells(1).innerText 5- كود ارسال بيانات إلى خلية في الجدول: WebBrowser3.Document.getElementsByTagName("table").Item(0).rows(5).cells(0).innerText = "salah" ملاحظة: المقصود بـ item(0) i هو الجدول الأول الأزرار داخل الإطار الأحمر هي الخاصة بأكواد هذا الدرس قبل البدئ إضغط على زر فتح صفحة التجربة لفتح الصفحة أمامك webbroser.rar
    2 points
  5. لي الشرف استاذي الفاضل ان احصل على هذا الشرف
    2 points
  6. ههههه الله يحفظك يا ابو البشر لقد وضعت يدك على الجرح تماما هذا هو بيت القصيد و الهدف الأسمى من هذه الدروس نستطيع إدخال و إستخراج العلامات من هذه الصفحة و كذلك نستطيع نسخ الأرقام و الأسماء إلى جدول أكسس أو أكسل كما نريد بالأمس كنت أبحث عن صفحة ويب مناسبة كي أضع عليها مثال للدرس القادم الخاص بالتعامل مع الجداول. يعني وضعت المرفق في وقته راح أوظف هذا المرفق في الدرس القادم إن شاء الله تستفيد منه أنت و نستفيد كلنا بإذن الله.
    2 points
  7. لان طلبك كان على اساس معيار رقم الفاتورة وما حددت ان المطلوب معيار رقم الفاتورة وكود العميل على كل حال جرب المرفق Database22.accdb
    2 points
  8. استاذي الفاضل ابو البشر ممنون منك وجزاك الله خيرا جزيل الشكر يا طيب
    2 points
  9. DoCmd.TransferDatabase acImport, "Microsoft Access", مسار قاعدة البيانات المستورد منه, acQuery, "اسم الاستعلام في الملف المستورد منه", "اسم الاستعلام بعد الاستيراد", False تفضل ....
    2 points
  10. 2 points
  11. عليك السلام ورحمة الله وبركاته جرب هذا لعله يفي الغرض اعمال سنة بالحروف تربية اعدادى رياضيةطبقا للقرار 311 لسنة 2019.xlsx
    2 points
  12. ممكن استدعاء اسم القارة وأيضًا عاصمة الدولة بمجرد كتابة اسم الدولة عن طريق الدالة vlookup بشرط وضع جدول به اسم الدولة واسم العاصمة واسم القارة بنفس الترتيب كما بالمرفق ممكن أن تكمل الجدول المرفق حتى 2000 اسم الدول والعواصم1.xls
    2 points
  13. تفضل لك اكثر مما طلبت نظاما - 1.xlsm
    2 points
  14. السلام عليكم 🙂 هناك الكثير من الميزات/الاوامر التي يعطينا برنامج الاكسس ، والتي يمكن ان نعمل لها بديل ، ولكن يكون هناك فرق في سرعة تنفيذ كودنا مقارنة مع الكود الاصل من الاكسس !! مثل القائمة المختصرة التي تظهر لنا بالنقر على زر الفأرة الايمن ، والتي بها يمكننا ان نستغني عن الكثير الاوامر ، مثل الفرز والتصفية بأنواعه ، ولكن وللأسف الشديد ، فأنا ارى ان 99.99% من البرامج ، يتم حذف هذه القائمة وعدم تفعيلها ، والسبب ان المستخدم يستطيع ان يدخل في تصميم النموذج من خلال هذه الاوامر(في الدائرة الحمراء) : و . ويضطر المبرمج ان يعوض بقية الاوامر في القائمة ، بمجموعة من الازرار ، او بطرق مختلفة !! ----------------------------------------------------------------------------------------------- الاكسس يسمح لنا ان نعمل قوائم مختصرة Shortcut Menu والتابعة لمجموعة CommandBars ، حسب احتياجنا ، ونختار ما نضعه فيها 🙂 هناك 3 انواع من هذه القوائم : الثابته ، والمؤقته ، والمؤقته التي تحتاج الى كود. الثابته: وهي التي عندما نعملها ، تصبح مستقله عن الكود ، وتُحفظ وتبقى في قاعدة البيانات بعد إغلاقها ، ويمكننا ان نستوردها في قاعدة بيانات اخرى عندما نستورد احد/جميع كائنات قاعدة البيانات الآخرى ، بإستخدام : . ونختارها في النموذج : . او التقرير : . هذا مثال لعمل الكود الاساس لعمل قائمة قطع/نسخ/لصق : Option Compare Database Option Explicit Dim cmb As Object Dim cmbCtrl As Object Dim cmbName As String ' ' ' to use: ' Dim cbr As Commandbar ' Dim cbrButton as CommandbarControl ' ' we have to select in the References: ' Microsoft Office xx.x Object Library ' Public Function SCM_Copy(Optional DeleteMe As Boolean = False) On Error Resume Next 'If menu with same name exists delete cmbName = "cmb_Copy" CommandBars(cmbName).Delete If DeleteMe = True Then Exit Function If Err.Number <> 0 Then Err.Clear Set cmb = CommandBars.Add(cmbName, msoBarPopup, False, False) With cmb .Controls.Add msoControlButton, 21, , , False ' Cut .Controls.Add msoControlButton, 19, , , False ' Copy .Controls.Add msoControlButton, 22, , , False ' Paste End With Set cmb = Nothing End Function . وشرح الكود : 1. اسم القائمة المختصرة ، والتي سوف نختارها في النموذج او التقرير ، 2. هذه المجموعة الاساس منبثقة Popup ، 3. بينما هذه المجموعات عبارة عن ازرار Buttons ، وقد تكون قائمة منسدلة Combobox ، او نص Edit نُدخل فيه قيمة معينة للتصفية مثلا ، 4. هل هذه القائمة مؤقته ؟ False معناها ثابته وتُحفظ في قاعدة البيانات ، بينما True معناها انها مؤقته وتعمل لما ننادي الوحدة النمطية/الكود ، 5. هذه ارقام كل امر ، وملف الاكسل المرفق من مايكروسوفت فيه جدول يضم جميع ارقام الاوامر للاكسس 2010 () ، 6. اذا اردنا ان نحذف هذه القائمة ، فننادي الوحدة النمطية بضم True في امر المناداة المؤقته: ونستعمل True في مكان الرقم 4 اعلاه. وهي التي عندما نعملها ، لا تصبح مستقله عن الكود ، ولا تبقى في قاعدة البيانات بعد إغلاقها ، ولا يمكننا ان نستوردها في قاعدة بيانات اخرى عندما نستورد احد/جميع كائنات قاعدة البيانات الآخرى (كما هو الحال مع القائمة الثابته) ، ويجب ان نستخدم "حدث فتح" النموذج/التقرير لعملها واستخدامها في النموذج/التقرير ، و "حدث اغلاق" النموذج/التقرير لحذفها ، طيب ، خلونا نعمل هذه القائمة : Public Function SCM_Copy_Sort(Optional DeleteMe As Boolean = False) On Error Resume Next 'If menu with same name exists delete cmbName = "cmb_Copy_Sort" CommandBars(cmbName).Delete If Err.Number <> 0 Then Err.Clear Set cmb = CommandBars.Add(cmbName, msoBarPopup, False, False) With cmb Set cmbCtrl = .Controls.Add(msoControlButton, 21, , , False) ' Cut cmbCtrl.Caption = "Cut..." cmbCtrl.FaceId = 21 Set cmbCtrl = .Controls.Add(msoControlButton, 19, , , False) ' Copy cmbCtrl.Caption = "Copy..." cmbCtrl.FaceId = 19 Set cmbCtrl = .Controls.Add(msoControlButton, 22, , , False) ' Paste cmbCtrl.Caption = "Paste..." cmbCtrl.FaceId = 22 Set cmbCtrl = .Controls.Add(msoControlButton, 210, , , False) 'Sort Ascending cmbCtrl.BeginGroup = True cmbCtrl.Caption = "فرز تصاعدي..." cmbCtrl.FaceId = 210 Set cmbCtrl = .Controls.Add(msoControlButton, 211, , , False) 'Sort Decending cmbCtrl.Caption = "فرز تنازلي..." cmbCtrl.FaceId = 211 End With Set cmb = Nothing End Function . وشرح الكود: احنا توسعنا في الكود الاساسي ، واضفنا له : 1. تسمية اختيارية غير الافتراضية ، لاحظ في الصورة اعلاه اني استعملت الانجليزي والعربي ، 3. وهو لعمل خط فاصل في الصورة بين مجموعة قطع/نسخ/لصق ومجموعة فرز تصاعدي/تنازلي ، . 2. ممكن ان نبدل الصورة الافتراضية التي تيجي مع الرقم ، بتبديل هذا الرقم (لاحظ صورة الاسهم للتصاعدي/التنازلي) : . ومرفق ارقام جميع الصور الموجودة في الاكسس : . . . . . . . . . . . في قاعدة البيانات المرفقة myRight_Click.mdb ، بالاضافة الى القوائم الثابته اعلاه ، تم اضافة هذه القائمة ايضا : . والتقرير يحتوي على القائمة المؤقته التالية : . - ملف الاكسل myList.xlsx ، اخترت فيه اهم القوائم في وجهة نظري ، - ملف الاكسل AccessControls_2010.xlsx ، من مايكروسوفت ، يحتوي على جميع الاوامر 🙂 جعفر المصادر: http://dev-soln.com/access-shortcut-right-click-tool/ https://www.experts-exchange.com/articles/12904/Understanding-and-using-CommandBars-Part-II-Creating-your-own.html https://filedb.experts-exchange.com/incoming/2014/02_w06/833359/CommandBars-II.mdb https://www.experts-exchange.com/articles/18341/CommandBars-Part-III-Using-Built-in-Shortcut-Menus.html http://www.skrol29.com/us/vtools.php AccessControls_2010.xlsx myList.xlsx myRight_Click.zip
    1 point
  15. رسالة تقدير ومحبة وتقدير واعتزاز للقائمين على هذا الموقع ولكافة الاخوة الخبراء والأعضاء انا تخصصي برمجة وتحليل نظم لكن يشهد الله انني استفدت من هذا الموقع أكثر مما استفدته في دراستي والان ولله الحمد والشكر استطيع تصميم أي برنامج وقد اكرمني الله عز وجل بفتح باب رزق حيث وصل عدد البرامج التي صممتها وبعتها 22 برنامج في البداية كانت هواية والان اصبحت باب رزق من واجبي ان اشكر الادارة على مجهودهم وتعبهم وتوفير هذا الموقع الخدماتي التعليمي واشكر الخبراء بدون ذكر اسماء خوفا ان انسى احدهم ويزعل مني ونعاهدكم ان نبقى اوفياء لهذا الموقع ونضع خبرتنا تحت امركم ونساعد كل من يطلب المساعدة حسب قدرتنا وتفضلوا بقبول فائق الاحترام
    1 point
  16. https://youtu.be/GEWA0QKZJ7A ملفات الدرس الخامس.rar
    1 point
  17. الحلقة الخامسة: التعامل مع الجداول في صفحة ويب سوف نتطرق في هذه الحلقة إلى الأكواد التي تمكننا من التحكم في الجداول داخل صفحة ويب و سوف نستخدم مرفق أخي ابو البشر في هذا الدرس و هي عبارة عن صفحة ويب محفوظة خاصية id للجدول اسمها: ctl00_PlaceHolderMain_gvCourseSectionExamsGrades عند فتح المرفق يجب تحديد صفحة الويب المرفقة كمصدر للأداة و ذلك بإتباع الخطوات التالية: 1- كود استخراج عدد الخلايا في الجدول: MsgBox Me.WebBrowser3.Document.getElementById("ctl00_PlaceHolderMain_gvCourseSectionExamsGrades").cells.Length 2- كود استخراج عدد الصفوف في الجدول: MsgBox Me.WebBrowser3.Document.getElementById("ctl00_PlaceHolderMain_gvCourseSectionExamsGrades").rows.Length 3- كود استخراج بيانات العمود الأول في الجدول: في هذا الكود نقوم بعرض الأرقام الموجودة في العمود الأول For i = 2 To Me.WebBrowser3.Document.getElementById("ctl00_PlaceHolderMain_gvCourseSectionExamsGrades").rows.Length MsgBox Me.WebBrowser3.Document.getElementById("ctl00_PlaceHolderMain_gvCourseSectionExamsGrades").rows(i - 1).cells(0).innerText Next i 4- كود استخراج بيانات العمود الثاني في الجدول: في هذا الكود نقوم بعرض الأسماء الموجودة في العمود الثاني For i = 2 To Me.WebBrowser3.Document.getElementById("ctl00_PlaceHolderMain_gvCourseSectionExamsGrades").rows.Length MsgBox Me.WebBrowser3.Document.getElementById("ctl00_PlaceHolderMain_gvCourseSectionExamsGrades").rows(i - 1).cells(1).innerText Next i 5- كود ارسال بيانات إلى الجدول: في هذا الكود سوف نرسل بيانات للعمود الرابع الخاص بمادة البحوث و المشروعات For i = 2 To Me.WebBrowser3.Document.getElementById("ctl00_PlaceHolderMain_gvCourseSectionExamsGrades").rows.Length Me.WebBrowser3.Document.getElementById("ctl00_PlaceHolderMain_gvCourseSectionExamsGrades").rows(i - 1).cells(3).innerText = i - 1 Next i و هذا هو المرفق به جميع الدوال. webbroser.rar
    1 point
  18. هى محاوله على قد حالى واكيد فى حلول افضل من كده بس مازلت مبتدء واحاول معكم لاتعلم بس يجب تحديد تاريخ الشهر التالى فالنموذج الاول لانى فارز الشهر بناء عليه جرب ووافنا بالنتيجه تقبل تحياتى وتمنياتى بالتوفيق Database22.rar
    1 point
  19. السلام عليكم اخي العزيز يوجد بالموقع الكثير من برامج الصادر والوارد / استخدم خاصية البحث هذا برنامج صادر ووارد للاخ / محمد علي الطيب وهو برنامج جميل جدا مفتوح المصدر تحياتي برنامج_الصادر_والوارد.rar
    1 point
  20. Private Sub mdate_BeforeUpdate(Cancel As Integer) Dim myletter As String myletter = "غير مسموح بتاريخ غير تاريخ اليوم" If Me.mdate < Date Then MsgBox myletter Cancel = True End If End Sub هل هناك حقل للشهر؟
    1 point
  21. الشكر لله اخي العزيز بالتوفيق ان شاءالله
    1 point
  22. جرب هذا الكود Option Explicit Sub TEST() Dim myvalu$, lr%, x1$, x2$ x1 = """" & Me.TextBox1 & """": x2 = """" & Me.TextBox2 & """" lr = Cells(Rows.Count, 1).End(3).Row myvalu = "=SUMPRODUCT((O6:O" & lr & "=" & x1 & ")*(P6:P" & lr & "=" & x2 & "))" 'for hide the formula Cells(1, "N") = Evaluate(myvalu) 'Or for show the formula Cells(2, "N").Formula = myvalu End Sub
    1 point
  23. أخي @صالح حمادي بارك الله فيك وفي جهدك وكتب الله أجرك صفحة الانترنت المرفقة هل يمكن سحب الاسم والرقم الى جدول في الاكسس .... كيف يمكن ذلك؟؟ أشكرك أستاذ. صالح على طرح هذا الموضوع المميز والمفيد ..... Desktop.rar
    1 point
  24. بارك الله فيك وجزاك الله كل خير
    1 point
  25. لا تعليق علي مدي مجهود اسبوع ب 6 مداخلات اذا اردت عدم ظهور اللوجو For Each Shp In ActiveSheet.Shapes If Shp.Type <> msoPicture Then Shp.Delete End If Next Shp اخذف السطر الثاني والسطر الرابع من هذا الجزء من الكود شاهد المرفق !_Omar_5.rar
    1 point
  26. جزاك الله خيرا اخى صالح سوف اطبق للتعلم واوفيك بالرد بالتوفيق اخوتى
    1 point
  27. 1 point
  28. اشكرك اخي العزيز خالد سيسكو على مجهوداتك الكبيرة التي بذلتها معي جلعل الله هذا العمل في ميزان حسناتك
    1 point
  29. لا تنتظر المساعدة من احد بدون رفع الملف !!!!
    1 point
  30. في هذه المشاركة سوف نتعرف على دالة الجمع الشرطي بشرط SUMIF Function SumIF.xlsx
    1 point
  31. أ.AhmedEmam جرب المرفق عسى أن يكون المطلوب بالتوفيق Increase TextBox.accdb
    1 point
  32. جرب هذا الكود Option Explicit Sub find_medicament() Dim Rep As Worksheet Dim sh As Worksheet Dim Med_Name$ Dim r, m%: m = 6 Set Rep = Sheets("Repport") Rep.Range("a6:H25").ClearContents If Rep.Range("H5") = vbNullString Then Exit Sub Med_Name = Rep.Range("H5") For Each sh In Sheets If sh.Name <> Rep.Name Then If sh.Range("B:B").Find(Med_Name, lookat:=1) Is Nothing Then GoTo next_sh r = sh.Range("B:B").Find(Med_Name, lookat:=1).Row With Rep .Cells(m, 1) = sh.Name .Cells(m, 2) = sh.Range("A4") .Cells(m, 3) = sh.Range("D4") .Cells(m, 4) = sh.Range("F" & r) .Cells(m, 6) = sh.Range("G" & r) m = m + 1 End With End If next_sh: Next End Sub '+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= Sub fil_dataval() Dim Rep As Worksheet Dim sh As Worksheet, my_rg As Range Dim dic As Object Dim i%: i = 6 Set Rep = Sheets("Repport") Set dic = CreateObject("Scripting.dictionary") For Each sh In Sheets i = 6 If sh.Name <> Rep.Name Then Do Until sh.Range("b" & i) = vbNullString dic(sh.Range("b" & i).Value) = "" i = i + 1 Loop End If Next With Rep.Range("H5").Validation .Delete .Add 3, Formula1:=Join(dic.keys, ",") End With End Sub الملف مرفق Hospital_sal.xlsm
    1 point
  33. بعد اذن اخي محمد جرب المرفق مره باستخدام Do والاخرى باستخدام for Database761.accdb
    1 point
  34. بارك الله فيك وزادك الله من فضله
    1 point
  35. بارك الله فيك استاذ ابو اشرف وهذا من شيم الرجال العطاء دائما بمقدار ما تعلموا وتلقوا من العلم وعدم نكران الجميل لهذا المنتدى دائما وابدا وفى اعلى الدرجات والرقى والسمو لمنتدانا الكريم ولنا جميعا فقد تعلمنا واستفدنا منه كثيرا جزاك الله خير الثواب وزادك الله من فضله ووسع الله فى رزقك ورحم الله والدين واكرم الله واحسن اليك والى ابنائك
    1 point
  36. اتفضل انا اسف انا غلط فى الكود تم اعادة الرفع مرة اخرى 3 (1).accdb
    1 point
  37. الاستاذ الفاضل ازهر عبد العزيز شوف كدا وجرب وقولي هل هذا المطلوب بالتوفيق وفي انتظار ابداعات الاستاذ / محمد عصام 33.accdb
    1 point
  38. السلام عليكم استاذنا العزيز ممكن تشرح مقطع فديو وان شاء الله سوف يكون رائج جدا لقناتكم الرائعة . وهو طريقة عمل برنامج الصادر والوارد من الاول الى الاخير ويكون فيها نظام ادخال مجموعة بيانات كتاب او وثيقة مثلا رقم وتاريخ وموضوع وجهة مصدرة للكتاب ويتكون الكتاب من عدة صور عن طريق ايعاز في الواجهة بعد ادخال البيانات يذهب الايعاز مباشرتا" الى جهاز سكنر كانون مثلا 100 او جهاز سكنر فيدر كانون 2020 ويتم خزن هذه الصورة برقم وتاريخ وموضوع حسب المدخلات ويتم استدعائها في وقت اخر عند الحاجة وتحديد مسار للخزن في بارتشن وليكن مثلا D ارجو الرد ...
    1 point
  39. هذا كان فى بدايات الانتقال من الإكسيل إلى الأكسيس والحمد لله مازلنا نتعلم كل يوم فى منتدانا الغالى شكرا لك أخى شيفان
    1 point
  40. المشاركة لاستاذنا و خبيرنا @عبد الفتاح كيرة يرجع ل 21 مايو في سنة 2011 اي يعني كان قبل 6 سنوات
    1 point
  41. السلام عليكم يحتاج البعض الى طريقة توزيع رقم طويل موجود في خلية او مربع نص الى مجموعة خلايا او مربعات نصوص مثل أرقام التأمينات أو الرقم القومي الذي ربما يحتوي على 14 رقم يمكن توزيعها في 14 خلية ارفقت مثالا على ذلك لتعم الفائدة تقسيم.xls
    1 point
  42. أخى الحبيب جزاكم الله خيرا على هذا العمل الرائع . ولكن لى طلب أريد خطوات توزيع الرقم القومى على الخلايا ( شرح مبسط عن كيفية تنفيذها على ورقة اكسيل فارغة )
    1 point
×
×
  • اضف...

Important Information