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

شايب

03 عضو مميز
  • Posts

    380
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    3

كل منشورات العضو شايب

  1. لا اتفق معكم يا ابل خليل لان تكرار تسجيل نفس المخالفة وارد وبدل من ذلك يكون هناك حقل تفصيل للمخالفة لسهولة ضبط التكرار وجهة نظر
  2. مشاركة مع الاستاذ سامي المتألق دائما باستخدام dcount بشرطي رقم العامل وتاريخ المخالفة Dim x As Integer x = DCount("*", "المخالفات", " [رقم_العامل]=" & [رقم_العامل] & "and [تاريخ_المخالفة] =" & Format([تاريخ_المخالفة], "\#mm\/dd\/yyyy\#")) If x > 0 Then MsgBox "عدد المخالفات = " & x Else End If للحصول على رسالة بالعدد انقر مزدوج على حقل المعرف وممكن الاستغناء عن الرسالة عن طريق حقل نصي الملف مرفق باستخدام الطريقتين الرسالة والحقل اخونا الشايب Database2.accdb
  3. جرب في حدث الحالي للنموذج Dim ctl As Control For Each ctl In Me.Controls If ctl.ControlType = 109 Then If ctl.Value = "الكلمة" Then ctl.Locked = True Else ctl.Locked = False End If End If Next ctl ممكن تعديل السطر الثالث عن طريق استخدام خاصية التاج اذا اردنا استثناء حقول معينة اخونا شايب
  4. لا مشكلة في حدث قبل التحديث للكمبو0 نضع الامر If Application.CurrentProject.AllReports("sos").IsLoaded = True Then DoCmd.Close ObjectType:=acReport, ObjectName:="sos", Save:=acSavePrompt Else End If الملف مرفق اخونا الشايب Database110(1).accdb
  5. وعليكم السلام بداية اجريت بعض التغيير على القوائم بحيث عند فتح قائمة الدول تكون القائمة الثانية باسماء المسجلين للدولة المختار ثم وضع الشرط لفتح التقرير بمعيارين الملف مرفق Database110.accdb
  6. والله يا اباخليل اني احبك في الله وانت استاذي اولا واخرا
  7. اما اذا اردنا استخدام متغير كما اشار الاستاذ الكبير في الوحدة النمطية نعدل في المتغير الى Public myNumId(1) As Variant غيرنا المتغير ليكون يقبل قيمتين وغيرنا نوعة من رقم الى غير محدد ليقبل اي نوع من الحقول ثم في النموذج الاول نضع الامر myNumId(0) = Me.ID myNumId(1) = Me.Discount DoCmd.OpenForm "frm2", acNormal وفي النموذج الثاني في حدث عند التحميل نضع Me.ID = myNumId(0) Me.Discount = myNumId(1) لم نحتاج الى دالة التقسيم في حال كنت مبتدي وليس لديك معرفة لمعالجة رسائل الخطا فان طريقة الاستاذ الكبير اسهل الملف مرفق db1(2).rar
  8. نعم ممكن حقلين وثلاثة وعشرة وهذا الامر للطريقة التي اشار اليها الاخ شايب وايضا لطريقة الاستاذ الكبير ولكن الاخ شايب سوف يشرح ذلك في الطريقة التي اشار اليها في زر الامر نضع الامر التالي DoCmd.OpenForm "frm2", acNormal, , , acFormAdd, , [ID] & "|" & [Discount] هنا لدينا حقلي المعرف والحسم وفصلنا بينهما بـ & "|" & والهدف من ذلك ان نستخدم دالة التقسيم في النموذج الثاني لفصل قيمة المعرف عن قيمة الحسم ثم في نموذج الوجهة اي النموذج الثاني وضعنا الامر التالي Dim a As Variant a = Split(Me.OpenArgs, "|") Me.ID = a(0) Me.Discount = a(1) الملف مرفق اخونا الفاضل شايب db1.rar
  9. مشاركة مع استاذنا طريقة اخرى بدون استخدام متغير عام تحميل القيمة مباشرة في امر فتح النموذج باستخدام الامر التالي DoCmd.OpenForm "frm2", acNormal, , , acFormAdd, , ID وفي النموذج الثاني في حدث عند التحميل نضع الامر Me.ID = Me.OpenArgs اخير في تعديل الاستاذ الكبير وكذلك في تعديل اخونا شايب يفضل ان تضع امر معالجة الخطأ في حالة كون حقل id في النموذج الاول فارغ والله الموفق
  10. نفس الفكرة والاختلاف في الحدث واستخدامه لحدث الحالي افضل العود قدها الكبير الله والمقصد ان اخونا الفاضل شايب كبير سن وهو لا يدعي انه كبير في العلم ولا يمكن ان يضع نفسه في مصافكم انتم الاساتذة فهو انسان بسيط يشارك بما يعتقد انه مفيد ويتقبل النقد بصدر رحب وخصوصا اذا كان من منصف لا يتبع الاهواء او يكيل الاتهامات بدون دليل تحياتي وتقديري اخونا الشايب 🌹
  11. وعليكم السلام ممكن عملها عن طريق التنسيق الشرطي ومن اسهل الطرق تضليل جقول النموذج المستمر ثم تنسيق شرطي ثم قاعدة جديدة ثم تعبير ونكتب tx2=id tx2 حقل نصي غير منضم ومخفي id هو حقل المعرف ثم في حدث عند النقر او عند التركيز للحقل id نضع الامر tx2=id مرفق مثال اخونا الكبير شايب Database28.accdb
  12. للاسف ياعمنا الاصدار لدي 64
  13. مع اطيب تحية وتقدير لاستاذنا ومعلمنا @ابوخليل عمل جميل وتصميم جذاب ونصائح استفدنا منها كثيرا مع ذلك الطريقة المستخدمة سبق ان حذر منها الاخ شايب وخصوصا ان البرنامج يتعلق بجمع تبرعات واموال تصرف في مواردها الشرعية ولكن هذه الثغرة كبيرة وتعطي لمن يدخل صلاحيات كاملة وامور اخرى تتمثل في امكانية تنفيذ اوامر من خارج القاعدة مثل استعراض بيانات وخذف واضافة وتخريب لبنية البرنامج وهنا سبق الحديث عن هذه الثغرة وطريقة علاجها بشكل مرضي ايضا توجد ثغرة اخرى تسمح بتجاوز فورم تسجيل الدخول من خلال امر من قاعدة اخرى اخيرا الاخ شايب ينبه لما يجد انه يمثل خطورة على البيانات وفقا لعلمه القاصر ويود ان يشير الى الموضوع السابق الذي تحدثنا فيه عن الثغرات ان احد المشرفين والذي لا اتذكره وضع مرفق عالج فيه الثغرتين الاستعلام والامر الخارجي اعتقد هذا الموضوع ان لم تخني الذاكرة ⬇️ والله الموفق مع اطيب الامنيات اخونا الشايب 🌹
  14. لحاجة في نفس يعقوب وامور اخرى الشكر لله اخي مع اطيب امنياتي لك بالتوفيق اخونا الفاضل شايب 🌹
  15. وعليكم السلام اخونا العزيز شايب يجزم ان هذا الكود من عملنا الاخ متقاعد وعلى الرغم من عدم الاقتناع بعمل متقاعد الا انه يمكن تنفيذ ماتريد باضافة السطر التالي rs!feah = fld.Properties("Caption") بعد rs.AddNew الملف مرفق مع عدم الاقتناع اخونا الشايب test2023(1).accdb
  16. الاخ العزيز شايب سبق ان شاهد اكثر من مشاركة تتحدث عن مثل ذلك احداها كانت عن طريق اخونا صاحب معرف متقاعد وقد اشار حينها غفر الله لنا وله الى طريقتين عن طريق الكود والاخرى باستعلام توحيد وان لم يحقق المطلوب فقد تجد في الموقع مشاركات افضل فاستخدم خاصية البحث وخصوصا ان الاخ متقاعد ليس حجة ومشاركاته يشوبها ما يشوبها وَقَد يَخطِئُ الرَأيَ اِمرُؤٌِ وَهُوَ حازِمٌ .. كَما اِختَلَّ في وَزنِ القَريضِ عَبيدُ اخونا الشايب 🌹
  17. رب شيخ ظل يهديه إلى .. سبل الحق غلام ما احتلم الشكر لله استاذ اخونا الفاضل شايب 🌹
  18. Me.ActiveControl.Dropdown او ممكن تكتب اسم القائمة Me.اسم القائمة.Dropdown ونختار الحدث الذي تضع فيه الامر عند التركيز او عند النقر حسب احتياجك
  19. DoCmd.Restore اخونا الفاضل شايب 🌹
  20. الشايب يرفع الراية البيضاء ويقول لكم العين لا تعلو على الحاجب وانتم اساتذتنا 🌹
  21. اهم شي ثغر مبتسم اها الاخ العزيز شايب يقول توجد افكار جميلة في المثال ولكن يمكن اختراقة عن طريق ارسال امر من قاعدة بيانات اخرى وبدون الدخول في التفاصيل شاهد الصورة المرفقة اخونا شايب 🌹
  22. المثال من البداية يحتوي على ثغرة تسمح بالدخول باي اسم كما يمكن اختيار اي مستخدم موجود وتوليف كلمة سر وبالتالي يمكن بسهولة الدخول على نموذج المستخدمين كل المطلوب اختيار المستخدم bassam وتوليف كلم مرور بطريقة معينة الاخ الفاضل شايب لا يهدف الى انتقاد العمل بقدر ما ينبه على وجود ثغرة في المثال حتى بعد تعديل الاستاذ الكبير اخونا شايب 🌹
  23. مع عدم اقتناع اخونا شايب بفكرة الفلترة عند التغيير بداية في حدث عند التغيير نضع الامر On Error Resume Next Dim strWhere As String Dim strtxt As String If Me.X1.Text <> "" Then strtxt = Me.X1.Text strWhere = "[FATHER_NAME]&[NUM_PAID]&[DATE_PAID]&[INSTALLMENTS] like '*" & strtxt & "*'" Me.Filter = strWhere Me.FilterOn = True Else Me.Filter = "" Me.FilterOn = False End If Me.X1.SetFocus Me.X1.SelStart = Len(Me.X1.Text) وفي حدث عند مفتاح اعلى نضع الامر If KeyCode = 32 Then Me.X1.Value = Me.X1.Text & Chr$(32) Me.X1.SelStart = Len(X1.Text) End If وخطوة اضافية ليست مهمة في حدث عند النقر المزدوج نضع Me.X1 = "" Me.Filter = "" Me.FilterOn = False Me.X1.SetFocus الملف مرفق مع عدم الاقتناع والافضل من وجهة نظر الاخ شايب استخدام الفلترة في حدث بعد التحديث لكون الامر ينفذ مرة واحد ولكن للناس فيما يعشقون مذاهب اخيرا الاخ شايب ليس خبير ولا من اساتذة الموقع ومشاركاته تخطئ وتصيب وتخطئ اكثر مما تصيب والنقد مرحب به وخصوصا باني لم اراجع الملف بشكل جيد لكون مشاركتي بداية كانت تتعلق بجزئية عدم تكرار المعيار اخونا العزيز شايب 🌹 Aziz5_03.accdb
  24. يا هلا باستاذنا ابو احمد الحقيقة ان الاخ شايب لم يدخل في التفاصيل وقد اشار الى ذلك بشكل واضح وكان اعتقادة لكون صاحب المشاركة حديث عهد بالاكسس انه ربما بدون قصد غير نوع الصلة في الاستعلام وبالتالي لم يعتبر مشاركته لتقديم الحل وانما توقع لسبب وجود الحقل الفارغ وبالتالي لم يرفق تعديل على الملف واكتفي بالاشارة لتوقعة اخير اتفق معك في ولو اني تفحصت الملف بامعان لتغيرت القناعة اخيرا الاخ العزيز شايب يشد على يديك استاذنا الغالي ويتفق معكم اننا نحتاج الى التمعن اكثر وتقديم المقترحات المبنية على تراكم الخبرات ولا نكتفي بتقديم حل سريع لمجرد الظهور او لزيادة عدد المشاركات اخونا الشايب 🌹
×
×
  • اضف...

Important Information