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

Amr Ashraf

الخبراء
  • Posts

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

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

  • Days Won

    10

كل منشورات العضو Amr Ashraf

  1. السلام عليكم .. ركز معايا 😅 ده النموذج الاساسى اللى هتسجل منه الايجار طريقة العمل : "بحث عن عميل" هنا بتكتب جزء من اسم العميل وهوا بيفلتر اسماء العملاء وبعدين تضغط ضغطة واحدة على اسمه . هيتنقل تلقائى على "المخزن" وهنا القايمة مش بيظهر فيها غير المخازن اللى مكتوب جنبها "Not Renting" فى جدول المخازن Warehouse . كمل البيانات والتواريخ واضغط حفظ . بعد ضغط حفظ المخزن اللى تم اختياره هيتعدل الحالة الخاصة بيه فى الجدول Warehouse تلقائياً الى Renting لأنه اصبح مستخدم و فى حقل الملاحظات هيتكتب الملاحظة "The Current Customer Is " واسم العميل اللى مأجر المخزن فى الوقت الحالى وبالتالى مش هيظهرلك فى قائمة المخازن مرة أخرى الا لو عدلت حالته الى Not Renting . فى الجزء الاسفل من النموذج هتلاقى تاريخ التعامل الخاص بالعميل المختار من البحث ومصدره من الجدول الجديد اللى انا انشأته TblCustomerWh مثل التالى مثلاً : عدد مرات التعامل هى عدد المرات اللى أجر فيها العميل منك مخزن . اضغط على الصورة فى النموذج ليظهر بيانات العميل كاملة الموجودة فى جدول Customer مثل التالى : ملحوظة : الموضوع مبدأى قابل للتعديل بأى شكل ممكن يحسن من اداءه جرب ووافنى بالنتيجة ورجاء بلاش تعدل على حاجة لو محتاج حاجة عرفنى .. وبلاش شكراً ادعيلى دعوة لصلاح الحال وتيسير الامور .. بالتوفيق Renting Prog - Amr Ashraf.accdb
  2. انا مش على جهاز كمبيوتر هشرحهالك نظرى.. افتح الvba هتلاقى قائمة اسمها Debug اختار اول اختيار فيها Compile Database وبالتالى البرنامج هيختبر الاكواد ولو فيه مشكلة هيظهرهالك لو مفيش مشاكل مش هيطلع رسايل تانى وهيشتغل تمام لو نقلته.
  3. الvba محتاج يتفتح وتعمل compile تانى عن تجربة.. طبعا عارف لو مفتوح هيجيبلك رسالة تفصيلية بالخطأ ويدخلك على السطر اللى فيه مشكلة لكنه محمى وبالتالى مش عارف يظهرلك السطر المعيب. واحيان كتير مش هتلاقى مشكلة فقط اعمل compile وهيشتغل عادى بعد كده.
  4. تمام بعد الشغل بإذن الله القى نظرة عليه
  5. انا شايف الطريقة كلها غلط جدا بصراحة , انا حاولت اساعدك وعملت جدول جديد بداية لطريقة جديدة توصلك للمطلوب بشكل افضل بس لقيتك عدلت فيه وبوظت الفكرة ماعلينا لو مستعد تعمل اعادة هيكلة كاملة للموضوع هيكون بالشكل التالى بعيدا عن الاكواد : بالنسبة للجداول : جدول للعملاء فيه كل بياناتهم الاسم التليفون الايميل العنوان وهكذا فقط بدون اى حاجة تخص المخازن اللى بيتم تأجيرها . جدول للمخازن فيه اسم المخزن وعنوانه وحالة المخزن (مؤجر او غير مؤجر) مثلا فقط بدون اى علاقة بالعملاء . جدول الحركات على المخازن يبقى فيه اسم العميل واسم المخزن المؤجر وتاريخ بداية الايجار وتاريخ النهاية فقط بدون اى شئ آخر . ملاحظات : سيتم استخدام الحد الأدنى من الاكواد عشان تعرف تتعامل مع الموضوع وياريت تلتزم باللى شرحتهولك فوق . عند التاجير سيظهر لك فى القائمة المخازن الغير مؤجرة فقط وبالتالى هتوفر عليك وقت بدلا من رسالة التحذير ان المخزن مؤجر مش هيظهرلك فى الاختيارات من الأساس. سيتم عمل نماذج جديدة بدلا من القديمة . لو مستعد تغير منظورك من الاساس انا مستعد اساعدك فى الموضوع بما انه مرتبط بشغل وشكله عاجل بالنسبة ليك , بالتالى هسيبك تأسس الجداول زى ما شرحتلك فوق الباقى هشرحهولك هيتم ازاى والنتيجة هتكون مرضية جدا واسهل كتير من طريقة عملك الحالية . فى انتظارك تخلص الاساسيات لو الموضوع مناسبك .. وعلى فكرة سهل تطبيق اللى انتا محتاجه على الوضع الحالى ولكن القاعدة مستواها ضعيف جدا ولذلك حابب انك تعمل حاجة مستواها افضل وعن فهم وتعملها بايدك .. بالتوفيق
  6. السلام عليكم .. الاخوة الافاضل الموضوع اليوم بسيط وسريع ويتحدث عن طريقة عمل قوائم مختصرة منبثقة من الازرار مثل الصورة التالية : الفكرة كلها ان عندى نموذج به الكثير من الازرار فبحثت عن طرق لاختصار الاوامر كلها فى زر او اثنين وبالتالى وصلت الى الفكرة التالية. اول خطوة عمل موديول جديد به الكود التالى : 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
  7. يمكنك ادخالهم جميعا فى مجلد واحد وسيتم عمل نسخة للجميع هذه الطريقة الاسهل .. الطريقة الاطول برمجية بالتعديل على كود النسخ و النموذج .
  8. السلام عليكم .. استاذنا ما هو الرابط بين الجدولين ؟ ولماذا اذا اضفت جدول جديد لا يتم تسجيل التعديلات عليه فى جدول الحركات ؟ لا يوجد علاقات .. لا يوجد كائنات مخفية .. وسؤل آخر ما هذا الفلتر ؟ ([tbl_x_AuditTrail].[Change_Delete_Insert]="Browse") الحقل ده بيسجل فيه 3 قيم فقط Update,Delete,Insert لماذا معيار الفلتر على "Browse" ? فى انتظار الشرح استاذنا الفاضل
  9. على الرغم من بساطة الفكرة لو قعدت 100 سنة عمرى ما كنت هفكر فى الفكرة دى 😅 جزاكم الله خير يا استاذنا الكبير ودائما نتعلم منكم
  10. فهذا الرقم السري الذي أظهرته هو موجود داخل الاسكربت - هل فكرت فى تحويل الاسكريبت الى Exe؟ وهل جربت تعمل Encode للاسكريبت بkey؟ اظن هيا الخطوة الناقصة لأن لو الاسكريبت محمى استحالة حد يقدر يكسر باسوورد الاكسس الا عن طريق bruteforce وهى لا تنفع الا فى حالة الباسوردات البسيطة وتحتاج الى جهاز ذو امكانيات جبارة لتقليل الوقت المستخدم فى التخمين.. نحاول تحسين الموضوع باقصى قدر ممكن
  11. حقيقة هو الوحيد الذى يقدم هذه الخدمة وبسعر باهظ للغاية 450$ تقريبا
  12. جهد يحترم استاذنا جزاك الله خير و خلينا نتفق على نقطتين : الاكسس غير محمى كما يظن البعض بل ويمكن استرجاع القاعدة الاصلية من ACCDE حتى , وهذه للأسف من أهم نقط الضعف فى الاكسس , ولكن نجتهد قدر المستطاع لحمايته . كمستخدم عادى او كعميل لن تستطيع الوصول لهذه النتيجة الا لو كان عندك خلفية عن هذه الامور.
  13. عن طريق هذا البرنامج مثلا : https://github.com/Bioruebe/UniExtract2#download والنتيجة فى المرفقات وأثناء التثبيت يظهر ايضا الفولدر ويمكن أخذ كوبى من محتوياته بس فى النهاية كمستخدم عادى او كعميل لن تستطيع الوصول لهذه النتيجة الا لو كان عندك خلفية عن هذه الامور. SetupExtracted.rar
  14. هذا هو التطبيق الذى تتحدث عنه استاذنا..
  15. السلام عليكم.. لا اعتقد ان اى شخص يطلب من مبرمج تصميم برنامج معين يكون عنده الامكانيات الكافية انه يتخطى جميع الخطوات المذكورة بالموضوع وكمان يوصل انه يعمل Extract لمحتويات الملف الExe ويتعامل مع الهاشات وطرق التشفير؟ 😂 كان الاولى يصمم لنفسه برنامج على كده.. ولو بعد كل ده قدر ياخد البرنامج يبقى حلال عليه لاجتهاده 😂. عامة هناك مبدأ ثابت وهو "لا يوجد حماية مثالية والحماية وجدت ليتم اختراقها". اختلف معكى فى صياغتك و اسلوبك فى النقطة دى.. يمكن قصدك توضيح نقطة لتعليم المبتدئين امثالى شئ جديد ولكن الاسلوب ده مع استاذ من الاساتذة يجب ان يكون افضل. تشرفت بمرورك وشكرا على المعلومات القيمة.
  16. افتح موضوع جديد اخى الكريم واشرح المشكلة بالتفصيل وباذن الله نقدر نساعدك
  17. ده الاستعلام قبل اضافة مخزن الى عميل فى الجدول الجديد : هضيف المخزن المحدد Y10 الى عميل فى الجدول الجديد كالتالى : النتيجة : لا يوجد Y10 الآن اختفى من الاستعلام لأنه اصبح مربوط بعميل اين المشكلة ؟ بخصوص النموذج لم اقربه يمكن تحتاج تعمل نموذج جديد لمواكبة التغييرات . بالتوفيق
  18. الجداول دى اخى الكريم هى جداول خاصة بالنظام ولا علاقة لنا بها يمكنك اخفاءها من شاشة العلاقات.. بالنسبة لاضافة مخزن انا جربت بالفعل اضافة مخزن فى الجدول الجديد واختفى من الاستعلام.. لا علاقة لى بالنموذج
  19. جديدة عليا 😂 شكرا استاذى على المعلومة.
  20. انا اضفت جدول واحد اسمه TblCustomerWH وقمت بتسجيل المخازن الخاصة بالعملاء فيه .. وقمت بربطه بعلاقة بجدول العملاء حتى لا يمكن اضافة عميل غير موجود بجدول العملاء بالفعل او عند تحديث اسم عميل يحدثه هنا تلقائى . بالنسبة للاستعلام الجديد هو استعلام مقارنة بين جدول المخازن و الجدول الجديد يقوم بمقارنة قائمة المخازن المتوفرة بقائمة المخازن المستخدمة فى الجدول الجديد الذى انشأته ,, وبالتالى عند وجود مخزن فى جدول المخازن غير مذكور فى الجدول الجديد فسيقوم الاستعلام بذكر اسمه . هل الفورم مربوط بالجدول الجديد ؟ اذا تم اضافة المخزن مقابل العميل فى الجدول الجديد سيتم اخفاء المخزن فى الاستعلام لأنه اصبح مستخدم
×
×
  • اضف...

Important Information