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

Amr Ashraf

الخبراء
  • Posts

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

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

  • Days Won

    10

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

  1. من المفترض نعم , وذلك بدون اكواد فقط ضبط خاصية Vertical Anchor و Horizontal Anchor لتمديد العناصر اذا قمت بتكبير النموذج , واعتقد ان هناك امثلة على جعل النموذج يستجيب لحجم الشاشة بالاكواد ابحث فى المنتدى .
  2. بارك الله فيك اخى موسى مجهود اكثر من رائع , سأجربها فى اقرب وقت ممكن سلمت يداك ولا تحرمنا من الافكار القيمة
  3. بارك الله فيك استاذ موسى وشرفنى مرورك يمكنك تنزيل النسخة ال32 بيت من الموقع اخى الكريم لم اجرب النسخة ال32 اخى الكريم اللى معى 64 وتعمل بكفاءة وهذه طريقة عملها اضغط Alt+x او يمكنك تغيير الاختصار من الاعدادات وتجرب , ثم نسخ القيمة سواء يدويا كما بالصورة او اضغط على Copy Value بعد تحديد اللون من القائمة المسجلة . هناك تحذير فى الموقع انك لا تضع الاداة فى مجلد محمى مثل Program Files لأن الاداة تحتاج لانشاء 2 ملف بجانبها ولذلك تأكد انك واضعها فى مكان مناسب يمكن يكون ده السبب فى عدم عملها معك.
  4. بارك الله فيك اخى الكريم جزاكم الله خير جزاك الله خير اخى الكريم , الاداة لا تحتاج تسجيل لتنزيلها فقط Download ومع ذلك مرفق الاداة jcpicker.zip
  5. السلام عليكم , الاخوة الكرام كل عام وانتم بخير بمناسبة شهر رمضان وعيد الفطر المبارك اعادهم الله علينا بالخير والبركة موضوعنا اليوم بعد غياب كما بالعنوان كيف تنفذ شاشة متطورة حتى النتيجة بالمثال افتح فورم جديد ثم قم بعمل 2 Rectangle فى الجانب والاعلى , الجانب للقائمة والاعلى كشريط للعنوان , بالنسبة للون الخلفية الخاصة بهم يمكنك عمل اللون الذى تفضله , بالنسبة للون المثال هو لون قوائم Microsoft Outlook قمت بسحبه وتطبيقه هنا , السؤال كيف تسحب لون تريده ولا تعرف درجته بالضبط ؟ يمكنك تطبيق هذه الفكرة الجديدة , هناك اداة يستخدمها مطورين الويب و المصممين لسحب الألوان بدرجاتها بدقة عالية وهذه الأداة اسمها Just color picker انظر لشكلها وللصورة قم بتنزيلها من الموقع الرسمى من هنا https://annystudio.com/software/colorpicker/ وصورتها قم بفتح الاداة وقم بالاشارة على أى لون تريده ثم اضغط على Alt+x لحفظ درجة اللون بالطريقة التى تحبها HTML او RGB وفى المثال سنستخدم الطريقتين , بالنسبة للHTML يمكنك سحب اللون بالاداة واضغط على Copy Value مع التأشير على HTML كما بالصورة قم بنسخ القيمة وفى الاكسس فى الخصائص الخاصة بأى عنصر ستجد Back Color قم باضافة رمز # قبل درجة اللون من الاداة وضعها فى الاكسس وستجد ان اللون تم تطبيقه وبالتالى قمت بأخذ لونك المفضل ويمكنك محاكاة اى تصميم لاى برنامج تحبه . ننتقل للتصميم بداية التصميم من فكرتى وتطبيقى واكوادى من البداية اللى النهاية وأتمنى دعوة بظهر الغيب بصلاح الحال , فى التصميم ستجد ان عند تحديد زر من ازرار القائمة ستقوم الايقونة بالتحرك والخط يختلف و تصبح ايقونة الزر هى الايقونة الرئيسية بالأعلى , لعمل ذلك قم بفتح الفاجيوال بيزيك وضع الاكواد التالية : Sub ReFormat(Sender As CommandButton) Me.PictureBox.Picture = Sender.Picture Me.lbl.Caption = Sender.Caption Sender.PictureCaptionArrangement = acRight Sender.FontUnderline = True End Sub شرح الكود :: المطلوب معرفة اولا الزر الذى تم ضغطه ولذلك قمت بعمل الكود السابق مع التحكم فى الزر الذى تم ضغطه كمحازاة النص والايقونة وهكذا , يمكنك زيادة حجم الخط او أي تنسيق تريده. يتم استدعاء الكود بالشكل التالى من أى زر امر : ReFormat ActiveControl تمام , طيب فى هذه الحالة التنسيق سيستمر اذا ضغطت على زر آخر وستظل الايقونة والخط بالتنسيق الذى قام الكود السابق بعمله , وبالتالى محتاجين نلغى ما قام به الكود السابق عن كل الازرار الا الزر الحالى سيحتفظ بالتنسيق الجديد . عملت الكود التالى Sub Restore() Dim ctrl As Control For Each ctrl In Me.Controls If TypeName(ctrl) = "CommandButton" Then If ctrl.Name <> ActiveControl.Name Then ctrl.PictureCaptionArrangement = acLeft ctrl.FontUnderline = False End If End If Next End Sub شرح الكود :: يقوم بالمرور على كل عناصر التحكم واذا وجدها زر سيقارن اسمها مع اسم الزر الحالى فى حالة اختلافهما يقوم بارجاع التنسيق الاصلى للزر قبل تطبيق كود التنسيق عليه , وبالتالى مع كل زر امر سيتم وضع الكود التالى Restore ReFormat ActiveControl ستجد ان هناك خط يتغير لونه مع كل ضغطة زر , هنا سنستخدم طريقة الالوان الاخرى RGB قم بسحب اللون الذى تريده بالاداة وقم بوضع اللون مثل المثال التالى : Me.Line51.BorderColor = RGB(35, 204, 183) حيث ان قيمة اللون بين الاقواس الاحمر,الاخضر,الازرق RGB . باقى TabControl متعدد الصفحات قم بانشاءه ولا تنسى بعد الانتهاء منه تحديد Style = None الخطوة الاخيرة الانتقال الى صفحات هذا الTabControl عن طريق الكود وهناك طريقتين : اذا اردت تحديد الصفحة المطلوبة والوقوف عليها يمكنك استخدام : Me.MyTabs.Pages(0).SetFocus حيث ان 0 هو رقم Index او ترتيب الصفحة فى المستعرض , وستجد عند فتح النموذج ان الصفحة 0 يتم فتحها وعند الضغط ايضاً على ايقونة المنزل سينتقل اليها . اذا اردت فتح الصفحة بدون الوقوف فيها يمكنك استخدام : Me.MyTabs.Value = 0 وستجد الطريقتين فى المثال المرفق . لا تنسى ضبط خاصية Anchor لتثبيت العناصر او مدها مع تكبير او تصغير النموذج كما فى المثال . اعتذر عن الشرح قليل التفاصيل الى حد ما ولكنى معتمد على خبرتكم . مرفق مثال به كل ما تم شرحه , دمتم بخير ستجد المثال فى اول مشاركة لأن المنتدى لم يسمح لى ان تتعدى المرفقات 4.8 ميجا . المثال مرفق Modern UI Access - Amr Ashraf.accdb قمت باضافة صغيرة لم تظهر فى الصورة المتحركة لأنها سجلت مسبقاً , عند الضغط على صورة المنزل ستعود كافة الايقونات الى مكانها الطبيعى .
  6. عليكم السلام ورحمة الله وبركاته ,, أخى الكريم الرد على سؤالك انه لا يمكن تغيير شكل الكمبوبوكس من حيث التصميم ولكن يمكنك التخصيص مثلا تغير لون الخط ونوعه ولون الخلفية الخ... حتى فى الفيجوال ستوديو ولغات .Net ستجد ان الكومبوبوكس له ثلاثة اشكال فقط Simple , DropdownList , Dropdown الأول مثل Listbox فى الاكسس جميع القيم ظاهرة فى نفس الوقت والنوعين الأخرين مثل الكومبوبوكس فى الاكسس تمام ولكن منهم نوع مثل الزر لا يمكن الكتابة فيه ولكن يمكن الضغط عليه فقط .. اتمنى انى افدتك .
  7. السلام عليكم , الأخوة الكرام فى بعض الاحيان قد تحتاج الى عمل آلية لتنفيذ اوامر بخطوات ذات ترتيب محدد , وقد تحتاج الى الزام المستخدم باتباع هذه الخطوات .. طبعاً الطرق كثيرة واليوم لدينا طريقة المعالج Wizard فكرة بسيطة كالتالى : تعتمد الطريقة على نموذج متعدد الصفحات Tab Control والتنقل الى صفحات معينة بالكود , الطريقة يمكن استخدامها لأهداف كثيرة قد تستخدمها كمعالج اعداد لبرنامجك لأول مرة وقد تستخدمها فى شرح آلية عمل برنامجك بطريقة مصورة مثلا الخ ... المثال به ثلاث صفحات ويمكن زيادتها كما تريد ولكن يلزم ترتيبها وذلك حتى اذا ضغطت على Next او Back يلتزم بالترتيب المطلوب اولا اذا اردت اضافة صفحة اضغط على Tab Control بالزر الأيمن للماوس ثم Insert Page .. ثم لتعديل الترتيب كما تريد دمتم سالمين ت Wizard With Steps.accdb
  8. وعليكم السلام ورحمة الله وبركاته ,, فكرة مطلوبة وتصميم جيد كما تعودنا , بارك الله فيك
  9. السلام عليكم .. مبارك عليكم أخى موسى @Moosak تستاهل كل خير .. زادك الله من علمه ونفع بكم
  10. فى الموديول اضف الكود التالى : Dim picPicture As IPictureDisp Set picPicture = stdole.StdFunctions.LoadPicture("D:\1.bmp") وفى القائمة اللى انتا عاوز ليها الايقونة الكود هيكون بالشكل التالى ... With cbObjectCtrl .Caption = rsForms!Name .Tag = rsForms!Name .OnAction = "OpenForm" .Picture = picPicture ' هذه هى الصورة الخارجية ومرفق الصورة المستخدمة فى المثال نزلها و عدل المسار فى الكود . ملاحظات : يجب ان تكون الصورة امتداد Bmp وحجمها مقارب للصورة المرفقة . 1.bmp 1783766372_AmrMultiLevelMenu-AllObjects.accdb
  11. السلام عليكم .. اضافة جديدة على التطبيق الثالث صلاحيات المستخدمين .. قمت بالتعديل على الكود قليلا الآن اذا لم يكن للمستخد الحالى صلاحية عرض التقارير مثلا لن تظهر القائمة الفرعية فارغة كما فى السابق ولكن قائمة التقارير الاساسية لن تظهر من الاساس وستظهر فقط اذا كان عدد العناصر فى القائمة الفرعية اكبر من صفر ,, مرفق التعديل Amr Multi Level Menu-Some Objects - Users - V3.0.accdb
  12. السلام عليكم .. مبدأيا يجب عليك معرفة انواع البيانات فى الجداول وطريقة استخدامها انتا عامل حقول بها ارقام نوعها Short Text الخاص بالنصوص وبالتالى عند الجمع هيكتب الرقمين بجوار بعض على انهم حروف وليس ارقام .. ولذلك اولا يجب تغيير انواع الحقول فى الجدول الى Number . ثانيا : يمكن عمل الحقل الثالث Calculated او حقل محسوب يقوم بالجمع فى الجدول بدون الحاجة الى العملية الحسابية فى النموذج . ثالثاً : طلبك من اساسيات الاكسيس وكونك لا تعرف هذه الطريقة معناها انك لم يتم تأسيسك جيداً - وهذا ليس بعيب فيك - ولذلك يجب عليك الرجوع للأساسيات والبداية من الصفر. رابعاً : قلت لك ذلك لمصلحتك وليس لشيئ آخر فأرجو تقبل مداخلتى . خامساً :ستجد طلبك فى المرفق بعد تحديث اى حقل من AAA او BBB سيتم الاحتساب كما تريد , ولكن هذه الطريقة لن توصلك لأى مكان نفذت طلبك فقط . بالتوفيق Example.accdb
  13. قصدك الطريقة دى ؟ ممكن كده جرب Set menultems1 = .Controls.Add(Type:=msoControlButton): menultems1.Caption = "عن البرنامج1": menultems1.OnAction = "TestAbout1": menultems1.FaceID=2188 وركز فى موضوع الاستاذ جعفر فيه كل المعلومات بس محتاج تركيز وتشغيل دماغ شوية 😅
  14. السلام عليكم .. الاخوة الأعزاء موضوعنا اليوم عن القائمة المختصرة مجددا ولكن بتطبيقات اكثر تقدما مثل جعلها متعددة المستويات وتتغير ديناميكياً طبقاً لشروط تضعها بيدك .. نبدأ بسم الله بداية يجب ان يكون هذا الموضوع مرجعك فى اى موضوع يتعلق بالقائمة المختصرة .. هذا الموضوع بقلم أستاذنا المبدع @jjafferr ويمكنك ايضا استعراض هذا الموضوع لتطبيقات مختلفة على القائمة المختصرة نبدأ الموضوع الجديد : بداية لن استفيض فى شرح الكيفية لأن بعد استعراضك للموضوعين السابقين سنفترض انك فهمت كافة التفاصيل المتعلقة بالقائمة المختصرة . التطبيق الاول : كيف يتم ربط القائمة المختصرة بالكائنات Objects الموجودة بقاعدتك ( نماذج - تقارير- استعلامات - ماكروهات ) مثال : الطريقة هنا تعتمد على مجموعة استعلامات تقوم باستخلاص انواع الكائنات من جداول النظام وتقوم الموديول الخاص بالقائمة المختصرة بعرض هذه الكائنات فى القائمة . المثال الخاص بها مرفق بإسم Amr Multi Level Menu-All Objects . عيوب الطريقة : انها ستعرض لك الكثير من الكائنات التى لن تحتاجها فى القاعدة مثل النماذج الفرعية و ماكروهات الالحاق والتحديث والحذف Append,Update,Delete , مما يأخذنا للتطبيق الثاني . التطبيق الثانى : فى هذا التطبيق سنقوم بوضع نوع و اسماء الكائنات المطلوب عرضها فى القائمة المختصرة فى جدول اسميته TblConditions . مثال: المثال الخاص بها مرفق بإسم Amr Multi Level Menu-Some Objects . التطبيق الثالث : يعتمد هذا التطبيق بربط التطبيق الثانى بصلاحيات المستخدمين, افترضت فى المثال ان عندى 3 مجموعات رئيسية للمستخدمين اول مجموعة Admins او المدراء ولهم كافة الصلاحيات , المجموعة الثانية المستخدم العادى ولهم بعض الصلاحيات , المجموعة الثالثة الضيوف ولهم صلاحية واحدة فقط وهو عرض الشاشة الرئيسية او نموذج واحد مثلا , ويتم تحديد المجموعات التى لها صلاحية استعراض الكائنات فى سجل بجانب اسم الكائن ونوعه فى الجدول TblConditions . مثال : ملاحظة : القائمة الأخيرة " صنعت خصيصاً " جعلتها حصراً على الAdmins فقط وبالتالى لن تظهر لباقى المجموعات . ستجد المثال الخاص بهذا التطبيق باسم Amr Multi Level Menu-Some Objects - Users - V2.0 . وبهذا انتهى الموضوع . ملاحظات عامة : استوحيت فكرة القائمة المتعددة المستويات من شخص اجنبى اسمه MaJip وقمت ببناء افكارى عليها . يمكن استدعاء القائمة عند فتح النموذج او عند النقر على الصورة الموجودة فى الامثلة ومرفق الطريقتين استخدم ما يناسبك . القوائم التى تنحدر منها قوائم اخرى لا يمكن تخصيص ايقونة لها ولكن القوائم الفرعية يمكن تخصيص ايقونة لها سواء عن طريق خاصية Face ID او عن طريقة خاصية Picture لارفاق صورة خارجية . فكرة صلاحيات المستخدمين طلبها الأخ @عمر ضاحى وبالتالى صممتها وارفقتها للموضوع . أستاذنا @jjafferr يرجى مراجعة الموضوع وتصحيح ما أخطأت به ان وجد 😅 جزاكم الله خير الأخ العزيز @ابو جودي اعتذر عن استخدام مثالك لأنى كنت قد جهزت الامثلة المستخدمة بالفعل .. جزاك الله خير دمتم بخير Amr Multi Level Menu -All Objects.accdb Amr Multi Level Menu-Some Objects - Users - V2.0.accdb Amr Multi Level Menu-Some Objects.accdb
  15. يومين ان شاء الله وانزل الموضوع لأن فيه تفاصيل كتير
  16. فكرة جيدة اعتقد ممكن نربطها بصلاحيات المستخدمين بدون مشكلة.
  17. ظروف عندى تخلص بإذن الله واعمل الموضوع
  18. ربنا يبارك فيك يا استاذنا ويرزقك التوفيق والسداد
  19. ايه ياعم بنبيع فجل , كده كده هيبقى بأذن الله بعد الموضوع اللى قلتلك عليه نخلص ونفوق بقى
  20. السلام عليكم .. الاخوة الاعزاء ما رأيكم أن نأخذ القائمة المختصرة الى المستوى التالى ؟ بدأ استاذنا جعفر @jjafferr السلسلة بهذا الموضوع الشامل الوافى ثم قمت بعمل تطبيقات عليه فى هذا الموضوع : المستوى التالى الذى اتكلم عنه هو كيف تجعل القائمة المختصرة تعمل بطريقة ديناميكية و أن تكون متعددة المستويات مثل التالى : اذا كان الموضوع هيضيف جديد لما قد قيل اتركوا تعليقكم وان شاء الله ابدأ تجهيز الموضوع فى اقرب وقت متاح . فى انتظار آرائكم .. دمتم بخير
  21. بس فكرة جيدة فعلا مطبقتهاش قبل كده بس سؤال لولبى لو المجلد ده اصبح Read Only لو بداخله قاعدة الجداول BE والواجهة مربوطة بيه مش هيشتغل على ما اتذكر لازم المجلد اللى فيه الجداول يبقى RW
×
×
  • اضف...

Important Information