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

AbuuAhmed

الخبراء
  • Posts

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

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

  • Days Won

    17

كل منشورات العضو AbuuAhmed

  1. لها علاقة بالنطاقات والكسور ومساحة التخزين ، فإذا أنت تريد تخزين أرقام موجبة فقط ولا تتجاوز 255 فاختيارك يفضل أن يكون Byte فهو أصغر نوع للأرقام. تستطيع أن تبحث لو أردت أن تقرأ بتفصيل وأحيانا يكفيك أن تنظر إلى جدول.
  2. في الموقع مدرستين مدرسة تناصر الجدول الواحد ولها أسبابها. وأخرى تناصر تعدد الجداول ولها أسبابها. أنا من أنصار الجدول الواحد وقد مررنا بتجربة أنت وأنا ونجحت التجربة بشكل ممتاز ، وهذا باعتقادي كاف. لن أخوض في جدال ونصيحتي لك "خلك على مجنونك لا يجيك اللي أجن منه" ، هذا مثل شعبي عندنا بمعنى إذا الذي بين يديك يعمل بدون مشكلات فلماذا التفكير في التغيير فضلا عن التغيير نفسه وبه من ضياع الجهود والوقت الكثير وفي النهاية لن تجد أي إضافات جوهرية فضلا أنك لا تضمن حصولك على مشكلات جديدة مع التقسيم. قد تكون هناك فوائد أنا لم ألمسها ولكن من مساوئها "مثلا" برامج المحاسبة وشجرة العائلة لا يمكن تحديدها بعدد من المستويات وتحتاج إلى نطاق مستويات مفتوح وهذا لن ينجح مع التقسيم وإن نجح فلا ضمانة من العواقب ، لم أدخل أي تجربة في التقسيم ولن أدخل. طبعا أنت مشروعك محدود المستويات ولن يحتاج إلى مستويات مفتوحة. وأعتقد لن ترى أي عون من معارضي أي مدرسة، فـ "احسبها صح" قبل قيامك بالتغيير ، والله الموفق. سامحني هذه آخر مشاركة لي في هذا الموضوع.
  3. أخي إذا هذه المشكلة حسب العنوان والوصف "حلت" فاخبرنا واختر أفضل إجابة ، ويمكنكم فتح موضوع آخر لأي مشكلة ليس لها علاقة بالعنوان.
  4. حياك الله أحينا العزيز ملاحظاتك ليس لها علاقة بالموضوع ولا بالذي قمت أنا بتنفيذه. ومع ذلك أن أطلعت على الكود مرة أخرى وكتبت فيه ملاحظاتي ، أرجو الاطلاع. وأعتذر أخي ، هذه آخر مشاركة لي في هذا الموضوع. موفق. ارسال_04.rar
  5. نحتاج إلى "موصل" حتى نستطيع أن نفهم على بعضنا عموما أنا راجعت الكود وقمت بالتعديل حسب فهمي ارسال_03.rar
  6. أخي أنا لم أرفع لك نسخة جديدة لتجربها 🙂 أنا سألتك سؤالا حتى أعمل التعديل الجديد.
  7. أنا تلخبطت 🙂 هل: Yes = T No = R ؟
  8. أخي يفترض أن تشرح أكثر وخصوصا ربط حقلين في التعديل. كذلك أنا لم أفهم سلوك مربع نص اضطررت أن أزيحه وأبدله بآخر، الآن إذا أحببت أن ترجع مربعك فيمكنك ذلك ولكني لا أنصح باستخدام مثل هالصندوق المزعج. ارسال_02.rar
  9. اكتشفت اخفاق في تلوين صندوق اللون عن طريق نموذج الألوان الخاص بالأستاذ أبو جودي علما أن الكود أنا من كتبه ، يعني الإخفاق أنا سببه 🙂 . تم التصحيح تطبيق لون_10.accdb
  10. وعليكم السلام طمنتني ، شكرا لك أستاذ محمد ، توقعت هكر داخل باسمي بطريقة غير شرعية ، وكنت خائف من العواقب 🙂 . بالتوفيق.
  11. تم تنفيذ المطلوب وزيادة تطبيق لون_09.accdb
  12. نسخة تضم تعديلي وتعديلك. MZ_SUB 10.rar
  13. إذن احذف مرفقك الأخير وأنا أحذف مرفقي الأخير وسأرفع مرفق جديد به تعديلك وتعديلي.
  14. بما أن الكود يفحص نفسه بنفسه ، وبما أنك جربته بعد التعديل ولم يفشل في إضافة أي سجل ولم يفشل في الترتيب فهذا يكفي ، توكل على الله واعتمده ، فأنت أدرى بخفايا برنامجك. موفق أخي. إذا أردت معرفة فائدة الـ Tag فابحث عنه في الكود ، سترى في البداية وضعنا به قيمة المستوى ، وفي النهاية استخدمناه لعرض الشجرة للمستوى الأول فقط حسب رغبتك.
  15. بس اكتشفت خلل 🙂 ، سأرجع لكم بنسخة أخرى وبعد المراجعة لم يكن خللا بل مجرد شك 🙂
  16. كنت ناسيها ، تم الاستفادة من خاصية Tag
  17. وهذه مساهمة إضافية مني awad77_03.xlsm
  18. نبارك لكم الترقية وإلى المزيد من الصولات والجولات القادمة
  19. تم التعديل ، وهذه المرة انسخ الكود كاملا لأنه حصل أكثر من تعديل. وقد يكون غير جيد لتحميل الشجرة. لا أعرف لماذا ثلاثة معرفات ID و Code و TNO؟ حاليا أرى أن لاحاجة لحقل ID وإذا أردت ربطه بجدول آخر فاربطه بحقل Code كذلك حقل TNO لماذا هو "كسري" إن صح التعبير أي Double لماذا لا يكون Integer أو Long Integer؟ MZ_SUB 07.rar
  20. جرب الآن والتعديل في الآتي: 'rst.Sort = "LVLno,Parent,Code" 'ترتيب نصي rst.Sort = "LVLno,CLng(Parent),CLng(Code)" 'ترتيب رقمي وهنا أيضا: For Each nodX In TreeView6.Nodes nodX.EnsureVisible nodX.Expanded = False 'nodX.Sorted = True 'لا تستخدم هذا السطر لأنه سيخرب الترتيب السابق nodX.Bold = True nodX.Selected = False Next MZ_SUB 05.rar
  21. تم التعديل على جدول الموضوعات بتبديل اسم حقلين No1 ، No2 وتم إضافة حقل Error لمعرفة السجلات التي فشلت في الإضافة. التعديل على الأسماء لتساعدني في التركيز ، وأنصح دائما باستخدام اسماء تدل على معناها. كذلك قمت بتقليص طول الحقلين أعلاه إلى 50 رمز وأنصح بتقليصه من طرفكم بعد التأكد من أقصى طول مطلوب. جدول TAB_Subject_X يجب تبديل حقل ID من AutoNumber إلى Number العلاقات بين الجداول تحتاج إلى إعادة دراسة استعن بغيري 🙂 . تم تصحيح الكود ليصبح كالتالي: Set rst = dbs.OpenRecordset("TAB_Subject", dbOpenDynaset) rst.Sort = "LVLno,Parent,Code" 'جديد Set rst = rst.OpenRecordset 'جديد Set nodX = TreeView6.Nodes.Add(, , "A", "الموضوعات") With rst Do While Not .EOF Err.Clear Set nodX = TreeView6.Nodes.Add("A" & CStr(Nz(!Parent, "")), _ tvwChild, "A" & CStr(!Code), _ CStr(!Code) & ":" & !Sname) 'مؤقتا حتى يتم التأكد من سلامة كل البيانات ------------ .Edit !Error = Err.Number <> 0 .Update '----------------------------------------------------- 'If Err.Number = 0 Then nodX.EnsureVisible 'هذا السطر يسبب بطء شديد .MoveNext Loop 'مؤقتا حتى يتم التأكد من سلامة كل البيانات ------------ MsgBox "إجمالي السجلات: " & .RecordCount & vbCrLf & _ "السجلات المضافة: " & TreeView6.Nodes.Count & vbCrLf & _ "السجلات الفاشلة: " & .RecordCount - TreeView6.Nodes.Count _ & vbCrLf & vbCrLf & _ "راجع جدول الموضوعات حقل Error" '----------------------------------------------------- End With rst.Close MZ_SUB 04b.rar
  22. وأكثر من ربع ساعة وأنا أعمل تحديث للصفحة وأقطع النت وأشبك من جديد وأقفل المستعرض وأفتحه من جديد والاسم عالق أسفل الشاشة لا أخفيكم سرا أنا غير مطمئن من هذه "الشغلة"
  23. هذا الكود قبل أن ينشأ موقع أوفيسنا أو مع بدايته 🙂 وكثير يسيئ استخدامه لأن البيانات تحتاج إلى ترتيب أولا ، فلا بد من إضافة الأب قبل الإبن حتى يتم تحميل الإبن وإلا ستفشل عملية تحميل الإبن. رجعت لقاعدة البيانات خاصتك وفي جدول الموضوعات ولم أعرف أحدد الأب من الإبن "ضاعت الأنساب" 🙂 ، فهل تستطيع توضح لي مثال/سطر واحد وكيفية ربط الإبن بالأب؟. كذلك إذا الشجرة فقط للعرض ليس بها إضافة ولا تعديل ولا حذف فيفضل عدم استخدام النوع dbOpenDynaset بل يستخدم dbOpenSnapshot
  24. لقد قمت بالبحث عن أصل الكود ووجدته على أحد المواقع الأجنبية ووجدت دالة GetTickCount التي لو كانت موجودة ضمن مثال السائل لانتهى الموضوع من "زمان" وانتهت معه هذه المعاناة. حتى لا يتوه السائل أضفت صناديق بنفس الأسماء وبدلت أسماء باقي المكونات أيضا. أعتقد الآن الموضوع منتهي ولا حاجة لانتظار الإجابة. نسخة مع التحية للأستاذ @jjafferr StopwatchTimer_01.rar
  25. الفلكيون لهم تقسيمات أخرى: فبعد الدقيقة: - ثانية وهي جزء من 60 من الدقيقة - ثالثة وهي جزء من 60 من الثانية وهكذا لو أراد أحد التوسع يمكنه استخدام رابعة وخامسة أيضا وكلها أجزاء من 60. فأنت بمثالك لك ثلاث خيارات: - ميلي أو ميللي ثانية وهي جزء من 1000 من الثانية وهي الأفضل. - ثالثة وهي جزء من 60 من الثانية. - كسر من 100 من الثانية أي للقيمة ثانية ونصف تظهر هكذا "01.50" ثانية
×
×
  • اضف...

Important Information