اذهب الي المحتوي
أوفيسنا

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      7

    • Posts

      9,814


  2. Amr Ashraf

    Amr Ashraf

    الخبراء


    • نقاط

      6

    • Posts

      946


  3. Eng.Qassim

    Eng.Qassim

    الخبراء


    • نقاط

      5

    • Posts

      2,302


  4. محمد حسن المحمد

    • نقاط

      4

    • Posts

      2,216


Popular Content

Showing content with the highest reputation on 10 فبر, 2022 in all areas

  1. السلام عليكم .. الاخوة الافاضل الموضوع اليوم بسيط وسريع ويتحدث عن طريقة عمل قوائم مختصرة منبثقة من الازرار مثل الصورة التالية : الفكرة كلها ان عندى نموذج به الكثير من الازرار فبحثت عن طرق لاختصار الاوامر كلها فى زر او اثنين وبالتالى وصلت الى الفكرة التالية. اول خطوة عمل موديول جديد به الكود التالى : Sub MyMenu2() Dim Mnu As CommandBar, Itm As CommandBarControl Set Mnu = CommandBars.Add("", MsoBarPopUp, , True) Set Itm = Mnu.Controls.Add: Itm.Caption = "Export To PDF": Itm.OnAction = "amr3" Set Itm = Mnu.Controls.Add: Itm.Caption = "Export To Excel": Itm.OnAction = "amr4" Mnu.ShowPopup End Sub القائمة السابقة فيها امرين 2 فقط ويمكن زيادتها كما تريد بتكرار السطور وتغيير الاسماء , بالنسبة لAmr1 فى نهاية الجملة هو الامر المطلوب تنفيذه وسيتضح الموضوع من المثال المرفق . الخطوة الثانية : فى النموذج المطلوب تنفيذ الفكرة عليه , خلف زر الامر يتم وضع كود استدعاء للكود السابق كالتالى : Private Sub Command0_Click() MyMenu2 End Sub والنتيجة عند الضغط على الزر تنبثق القائمة كما فى الصورة السابقة . ملاحظات : قمت باضافة خيار آخر لاظهار القائمة وهو عن طريق الضغط على زر الفأرة الايسر مع زر الشفت فى نفس الوقت وستظهر القائمة ايضاً . يمكن تطبيق الطريقة فى التقارير والنماذج مع الاحتفاظ بالقائمة المختصرة الافتراضية الخاصة بزر الفأرة الأيمن وبالتالى سيصبح عند قائمتين مختصرتين اذا اردت الابقاء على الافتراضية . يجب تفعيل المكتبات الموجودة بالصورة حتى لا تواجه مشاكل . اترككم مع المثال لمزيد من التوضيح .. دمتم بخير Amr Magic Button.accdb
    4 points
  2. السلام عليكم ورحمة الله وبركاته أخي الكريم أجريت التعديل التالي على الملف المرفق لتكون الطباعة لديك ديناميكية لتحصل من خلالها مدى الطباعة كاملاً قل أو كثر كما تم تغيير الطباعة من أفقيه إلى عمودية ملاحظة: يرجى الانتباه إلى أنك إذا غيرت بإعدادات الطباعة سيتحول نطاق الطباعة إلى نطاق محدد وقد يكون أكبر مما هو محدد في تحرير الاسم في الصورة أدناه... فإن تغير ووجدت أن النطاق المراد طباعته أصبح أكبر فعليك بنسخ الكود أدناه ووضعه في مربع تحرير الاسم Print_Area Print_Area =OFFSET(الوصل!$C$1;;;COUNT(الوصل!$C$8:$C$200)+8;8) أما في الكود فقد تم وضع Print_Area كمدىً بدلاً من تحديده من خلية إلى أخرى على الشكل التالي: Private Sub CommandButton1_Click() Dim I As Long For I = Range("N8").Value To Range("O8").Value Sheets("البودرة").Range("A1:S8044").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("N1:P2"), CopyToRange:=Range("C6:J6"), Unique:=False Range("N7").Value = I Range("Print_Area").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1 Next I End Sub والله ولي التوفيق والسلام عليكم ورحمة الله وبركاته أخوكم أبو يوسف طبع الوصولات جملة واحدة حسب الارقام المختارة.xlsm
    3 points
  3. حبيبي استاذ قاسم رحم الله والديك على السؤال وربي يحميك بالخدمةاستاذ جعفر
    2 points
  4. تفضلوا .. ولا اعلم ان كان هذا المقصود NEXT.accdb
    2 points
  5. السلام عليكم 🙂 اخي حسام شكرا على قاعدة البيانات 🙂 استعمل الكود التالي في كمعيار في حقل التاريخ ، حتى يأتيك بالسجل كاملا: (Select TOP 1 [XDate] FROM [tbl] AS TN WHERE [ID] = Forms![Form1]![ID] ORDER BY [XDate] desc) . والنتيجة جعفر Root4.zip
    2 points
  6. تم الإصلاح أخي كناري .. وتأكد دائما أنك تعطي الموديول أسماً مختلف عن اسم الدالة .. وإلا فستحصل على رسالة خطأ .. Database1.rar
    2 points
  7. استاذ عامر .. تقريبا كأني مررت في بحثي في موقع غير مجاني على مثل اسم هذه المكتبة اذا كانت العملية مضمونة 100% . لا مشكلة شكرا على مجهودك ومقدر لتعبك .. كتب الله اجرك
    1 point
  8. السلام عليكم 🙂 انا كنت عامل موضوع موسع عن القائمة المختصرة هنا: . ولكن استخدامك القائمة بهذه الطريقة على الازرار ، يجعل موضوعك مميز 🙂 شكرا على هذه الافكار 🙂 جعفر
    1 point
  9. جميل جدا استاذنا بهذه الفكرة يمكن الاستغناء عن الازرار باستخدام عناصر اخرى او صور ، ايضا يمكن تنفيذ الحدث عند تحريك الماوس سلمت اناملك
    1 point
  10. السلام عليكم اتفضل هذا رابط الموضوع اتمنى ان يكون المطلوب تحياتي
    1 point
  11. ممكن تستخدم التالى : Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case 110 ' Press n For new record Docmd.GoToRecord,,acNewRec End Select End Sub عند الضغط على حرف n سيأخذك لسجل جديد , ممكن تغير الحرف ابعتلى انتا عاوز اى زر بالظبط وانا اظبطلك الكود الطريقة غير مألوفة لدى , ممكن مثال يا هندسة ؟ 😄
    1 point
  12. تجعل ال caption لزر الجديد لديك بهذا الشكل New& وحينما تضغط على زر N في الكيبورد يأخذك لصفحة جديدة
    1 point
  13. وعليكم السلام 🙂 سيدي الفاضل ، استعمل الطريقة الابسط والاسهل واللي انت تعرفها ، وهي بتفكيك الامر الى اوامر ابسط ، ثم اجمعها ، هذا: dim mySQL as string mySQL="[TBLibrary]![bookname]=Forms![FLibraryMain]![FLibrarySub].Form![bookname]" mySQL= mySQL & " And " mySQL= mySQL & "[TBLibrary]![Writer]=Forms![FLibraryMain]![FLibrarySub].Form![Writer]" 'اعمل التغيير المطلوب في هذا السطر فقط If DCount("*", "[TBLibrary]", mySQL) >= 1 Then وعلشان تتأكد ان المعادلة تعمل ، اوقف عمل السطر الثاني والثالث من المتغير mySQL بوضع علامة ' امام كل سطر ، وجرب 🙂 جعفر
    1 point
  14. من الطبيعي ان تواجه مشكلة من الطبيعي ان تتوقف الجداول عن اضافة المزيد من الحقول اخي عدد الحقول لكل جدول هو 255 عمود بعد الوصول للحد الاقصى فلن تكون قاعدة البيانات قابلة للتعديل لكي تتجاوز هذه المشكلة فإن ايسر الحلول و اسهلها انشاء جدول جديد من خلاله تستطيع اضافة حقول تتجاوز العشرة آلاف لكن بالطرق السليمة الصحيحة ومن خلال ربط الجدول الجديد مع الحالي تكون قد حققت الهدف بعيد عن التحميل الغير منطقي على قاعدة البيانات و تكون النتيجة بهذا الشكل تم الاستغناء عن 236 حقل و التعويض عنها بعدد 4 حقول مترابطة سليمة حين يكون العمل بالصورة السليمة سوف تجد سهولة في التعامل مع طبق التعديلات تطبيقا منطقيا و اعد رفع الملف ان واجهت مشكلة اخرى التسويات 8-2022.zip
    1 point
  15. السلام عليكم 🙂 كنت اتصفح الانترنت واقرأ عن مستقبل الاكسس ، فوجدت احد محترفي الاكسس عنده صفحة جديدة في اليوتيوب ، وبها رأيت انه هناك محترف آخر عمل ربط بين بيانات الاكسس المحلية ، وكود/شفرة جافا على الانترنت ، وهذه الشفرة متخصصه في عمل رسومات بيانية في صفحات الانترنت ، وهنا تفاصيل الشفرة https://www.chartjs.org/docs/latest/samples/information.html قمت بإنزال الملف واسمه Better-Access_Charts.accdb من موقع https://github.com/team-moeller/better-access-charts وهذه احد الرسومات البيانية اللي فيه: . ونتحكم بنوع الرسومات وتفاصيل المحاور وووو ، من النموذج التالي ، ثم ننقر على الزر الذي عليه السهم الاحمر ، ليعمل تغيير في نموذج الرسومات البيانية . (وهناك ملف آخر هنا https://github.com/team-moeller/better-access-pivottable جميل ان يتم الاطلاع عليه ايضا). تواصلت مع اخي الاستاذ @أبو إبراهيم الغامدي لكي ينظر في الملف وطريقة عمله ، فما شاء الله عليه امدّني بملف اسمه Web Charts.zip وهو برنامج مختصر ومبسّط للملف الآخر ، وهذه احدى صور رسومات البيانات منه: . واتمنى على اخي أبو إبراهيم ان يجعل برنامجه يقبل تغيير انواع الرسومات البيانية كما في البرنامج الآخر 🙂 ميزات الموضوع: فتح باب جديد لطريقة عمل/عرض الاكسس وربطه مع ميزات حديثة من الانترنت . عيوب الموضوع: يجب ان تعرف مكان وجود هذه الشفرات في الانترنت ، وتعرف كيفية استعمالها ، وتتعلم كيف تربطها بالاكسس ، لا تتوقع الحصول على مساعدة من منتدى الاكسس لحل مشكلتك ، فنحن لا نفهم لغة الجافا او HTML . جعفر Better-Access_Charts.accdb.zip Web Charts.zip
    1 point
  16. شكرا جزيلا اخوي أبو إبراهيم في اثراء الموضوع ، وشكرا على المثال الجميل 🙂 صحيح نحن نعرض الرسومات البيانية في النموذج ، ولكن العادة نحتاج لها في التقارير ، وكما تفضلت ، فلو كان زر الاختيار في النموذج يكون افضل للمستخدم ، واسهل للفهم 🙂 جعفر
    1 point
  17. هذا تعديل لكود اخي المهندس قاسم : = iif([الصف]="بنون" or [الصف] = "بنات" ; "" ;NZ([بنات];0) + NZ([بنون];0)) جعفر
    1 point
  18. شنو هاي الغيبة استاذ @husamwahab ارجوا ان تكون بصحة و عافية يارب
    1 point
  19. =IF(ISNUMBER(P6);IF(P6>=85*$P$4/100;"ممتاز";IF(P6>=65*$P$4/100;"جيد جدا";IF(P6>=50*$P$4/100;"جيد";IF(P6<50*$P$4/100;"ضعيف"))));IF(TEXT(P6;"غ")="غ";"غائب";"خطأ")) =IF(ISNUMBER(Q6);IF(Q6>=85*$Q$4/100;"ممتاز";IF(Q6>=65*$Q$4/100;"جيد جدا";IF(Q6>=50*$Q$4/100;"جيد";IF(Q6<50*$Q$4/100;"ضعيف"))));IF(TEXT(Q6;"غ")="غ";"غائب";"خطأ")) =IF(ISNUMBER(R6);IF(R6>=85*$R$4/100;"ممتاز";IF(R6>=65*$R$4/100;"جيد جدا";IF(R6>=50*$R$4/100;"جيد";IF(R6<50*$R$4/100;"ضعيف"))));IF(TEXT(R6;"غ")="غ";"غائب";"خطأ"))
    1 point
  20. مشاركه مع الاستاذ موسى اطلع ايضا ع الرابط التالي مشاركه لاستاذنا العزيز جعفر جزاه الله عنا خيرا بالتوفيق
    1 point
  21. طيب .... جرب المرفق غيرنا الاسلوب الى اسلوبك وطلبك .... جرب ترحيل موظف ثم استرجاعة وايضا اضافة سجل بعد ترحيل موظف حيث يتم اضافة الموظف برقم جديد لا يتكرر حتى مع ارقام الموظفين المرحلين لجدول اخر ... واعلمنا بالنتيجة ... Database266.rar
    1 point
  22. السلام عليكم ورحمة الله وبركاته وبها نبدأ ادخال البيانات مكتوبه بطريقه خاطئه جرب هذا التعديل بصمة.xlsx
    1 point
  23. وعليكم السلام-فقط يمكنك استخدام هذه المعادلة بالتنسيق الشرطى =C$2=$G3 تنسيق 1شرطي.xlsx
    1 point
  24. السلام عليكم يمكنك استخدام هذه المعادلة لإيجاد مجموع الكميات بالعمود D بداية من الخلية D2 سحباً للأسفل =IF(COUNTIF($B$2:B2,B2)=1,SUMIF($B:$B,$B2,$C:$C),"") وهذه معادلة النسبة المئوية بالعمود E =C2/VLOOKUP(B2,$B$2:$D$2000,3,0) تجربة1.xlsx
    1 point
  25. Cap Mohammed استخدم هذا الكود لاستاذ جعفر فهو يعمل بشكل صحيح .
    1 point
  26. وهذه طريقة اخرى مع قهوة الصباح .... انت وعدتني بابريق قهوة .... ههه طبعا استعملنا هذا الكود في حدث عند النقر في الزر DoCmd.OpenReport "Filters", acViewNormal ووضعنا في حدث عند الفتح في التقرير هذا الكود الخاص بالفلتر Reports!Filters.Report.FilterOn = False Reports!Filters.Report.Filter = Forms!frm_Form!Table1.Form.Filter Reports!Filters.Report.FilterOn = True الان بهذه الطريقة يتم طباعة التقرير بدون فتحه عبر الطابعة الافتراضية اليك المرفق ..... Kan_233.accdb
    1 point
×
×
  • اضف...

Important Information