nssj قام بنشر نوفمبر 26, 2022 قام بنشر نوفمبر 26, 2022 الإخوة الكرام .. الجدول الرئيسي (TAB) مكون من أحاديث وهي مرتبة على المسانيد وأريد أن أبدأ بترتيبها على الموضوعات وقائمة الموضوعات بمستوياتها الأربعة (LVL1 – LVL2 – LVL3 – LVL4) في جدول (TAB_Subject) وقد صممته قبل فترة بناء على نصيحة أحد الإخوة ، ويمكن التعديل والإضافة والنقل في شجرة العناوين بلا مشاكل وفي نموذج (FRM7) تم عرض هذه العناوين على شكل قوائم مع إظهار أحاديثها وحديثاً اطلعت على عدة مواضيع بخصوص شجرة الحسابات وما يشبهها، منها هذا الموضوع في هذا الملتقى شجرة الحسابات وبناء على الملف الذي رفعه الأخ @jjafferr وبعد عدة تجارب تمكنت من عمل شجرة عناوين في نموذج (TREE)، لكن توجد مشكلتان * المشكلة الأولى والأهم: هي عدم عرض الأحاديث عند تحديد الموضوع، فبالمقارنة مع الصورة السابقة حيث كانت العناوين على شكل قوائم، فالنتيجة التي توصلت إليها في شجرة العناوين (TREE) هي كما في الصورة .. لم يتم عرض الأحاديث فأين الخطأ *المشكلة الثانية: وهي أنه عندما قمت بالتعديل على جدول العناوين (TAB_Subject) بحذف بعض العناوين ونقل أخرى حصل خلل في ترتيب شجرة العناوين كما في الصورة والترتيب الصحيح هو كما في نموذج (FRM7) والسبب أنه في هذا الأخير فإن ترتيب عرض العناوين يكون بناء على (TNO)، لأن هذا الرقم يبقى على التسلسل الصحيح مهما أجري على العناوين من تعديلات، بخلاف ترقيم المستويات (LVL1 .. .. ..) فلابد من تصحيحه ليعود للتسلسل أما في شجرة العناوين (TREE) فلم أتمكن من جعل الترتيب بناء على (TNO) مع أني حاولت استخدام (order by [TAB_Subject.TNO]) فهل يمكن أن يكون الترتيب فيها بناء على (TNO) فهو أيسر من إعادة تسلسل ترتيب المستويات في كل مرة يحدث فيها تعديل MZ_SUB 01.rar
nssj قام بنشر نوفمبر 27, 2022 الكاتب قام بنشر نوفمبر 27, 2022 (معدل) 1 ساعه مضت, rockjone33 said: لا يوجد رد!.. 🙂 معذرة أخي الكريم .. تأخر الرد لأني أردت أن أضع في الرد آخر ما توصلت إليه تجاربي وإذا كانت شجرة العناوين سيكون إخراجها كما في الصورة التي أرفقتها فستكون شجرة جميلة 🙂 ولكن ما الذي تقصده أخي الكريم من إرفاق رموز في الشجرة وما الغاية منها ؟ * واعذرني أخر الكريم لم أفهم قصدك في الفقرة 4 هذا وأحب أن أذكر أني جربت عمل شجرة عناوين بناء على كود آخر وجدته على النت Dim dbs As Database, rst As Recordset Dim nodX As Node Set dbs = CurrentDb Set rst = dbs.OpenRecordset("TAB_Subject", dbOpenDynaset) ' Set rst = dbs.OpenRecordset("SELECT * FROM TAB_Subject ORDER BY TAB_Subject.Tno;") Set nodX = TreeView6.Nodes.Add(, , "A", "الموضوعات") With rst Do While Not .EOF Set nodX = TreeView6.Nodes.Add("A" & CStr(Nz(!NO1)), tvwChild, "A" & CStr(!NO2), CStr(!NO2) & ":" & !Sname) nodX.EnsureVisible .MoveNext Loop End With ونجحت في ذلك، لكن النموذج كان يأخذ وقتا طويلا ليفتح لأن العناوين عندي كثيرة (1872) ولا تزال في طور التحديث، ومن المؤكد عندي أنه سيزيد عددها عن (2000) أما بالكود المرفق فهو يفتح بسرعة أما آخر ما توصلت إليه، فقد وقفت اليوم على هذا الموضوع تعديل على الشجرة TreeView وبناء عليه استطعت عرض أحاديث الموضوع بعدة خطوات 1- جعلت رقم (TNO) يظهر في الشجرة - مع أن ظهوره غير مطلوب- بتغيير بعض الأسطر في الكود مثل Level2Node.Text = Myset2!Sname إلى Level2Node.Text = Myset2!TNO & Myset2!Sname 2- تصدير هذه القيمة إلى مربع نص Me.LVL0 = Node.Text 3- حذف الأحرف والمسافات في مربع آخر (LVL000) 4- والآن أصبح لدي المرجع الذي بناء عليه سوف تستدعى الأحاديث من خلال Me.Recordset.FindFirst "TNO=" & Me.LVL000 & "" واستخدمت رقم (TNO) وليس اسم الموضوع (Sname) لوجود أسماء متكررة في العناوين مثل: متفرقات – أبواب متفرقة – فضلها وما جاء فيها .. هذا أفضل ما استطعت الوصول إليه .. ولكن ألا توجد طريقة أخرى مباشرة لاستدعاء رقم (TNO) أو (ID) MZ_SUB 02.rar تم تعديل نوفمبر 27, 2022 بواسطه nssj
jjafferr قام بنشر نوفمبر 27, 2022 قام بنشر نوفمبر 27, 2022 السلام عليكم 🙂 انزلت المرفقين ، ولكن الشجرة ما اشتغلت عندي 🙂 بس الحمدلله تجاربي السابقة افادتك 🙂 27 دقائق مضت, nssj said: هذا أفضل ما استطعت الوصول إليه Me.Recordset.FindFirst وما العيب في هذا الكود ، فهو الاسرع في جلب البيانات 🙂 ولكن تأكد في نهاية الكود ان تفرغ الذاكرة العشوائية من هذه البيانات عن طريق: rst.close: set rst=nothing جعفر 1
nssj قام بنشر نوفمبر 27, 2022 الكاتب قام بنشر نوفمبر 27, 2022 47 دقائق مضت, jjafferr said: انزلت المرفقين ، ولكن الشجرة ما اشتغلت عندي 🙂 وأنا كمان ما اشتغلت عندي الملفات اللي نزلتها من النت .. مع إني أضفت المكتبة المطلوبة لأكسس .. وبعد البحث والتنقيب لقيت صفحة بالانجليزي فهمت منها إنو صعب تظهر شجرة العناوين في أوفس 2013 (64) بت .. وهي النسخة اللي عندي فنزلت أوفس (2021) واشتغلت تمام .. بس معنديش مفتاح تفعيل لها النسخة ومش عارف شو آخرتها 🤔 47 دقائق مضت, jjafferr said: وما العيب في هذا الكود ، فهو الاسرع في جلب البيانات 🙂 أنا مش اعتراضي على هالكود .. أنا سؤالي إذا كان بالإمكان إحضار (TNO) أو (ID) للموضوع اللي يتم الكبس عليه دون الحاجة لإظهار (TNO) في الشجرة .. لأني بفضل الشجرة بدون أرقام يعني هل ممكن إحضاره من مصدر بيانات الشجرة اللي في الكود Sqltext1 = "SELECT [TAB_Subject].[LVL1], [TAB_Subject].[sname] FROM TAB_Subject where ([TAB_Subject].[lvlno] = 1) GROUP BY [TAB_Subject].[LVL1], [TAB_Subject].[sname]" Sqltext2 = "SELECT [TAB_Subject].[LVL1], [TAB_Subject].[LVL2], [TAB_Subject].[sname], [TAB_Subject].[TNO] FROM TAB_Subject where ([TAB_Subject].[lvlno] = 2) GROUP BY [TAB_Subject].[LVL1], [TAB_Subject].[LVL2], [TAB_Subject].[sname], [TAB_Subject].[TNO]" Sqltext3 = "SELECT [TAB_Subject].[LVL2], [TAB_Subject].[LVL3], [TAB_Subject].[sname], [TAB_Subject].[TNO] FROM TAB_Subject where ([TAB_Subject].[lvlno] = 3) GROUP BY [TAB_Subject].[LVL2], [TAB_Subject].[LVL3], [TAB_Subject].[sname], [TAB_Subject].[TNO]" 20 دقائق مضت, rockjone33 said: ما فيش نمبر ايه .key strang. .. 🙂 أخي الكريم .. معلش مش فاهم قصدك لأني مش مبرمج .. أنا بس بحب التجارب 😁 .. فإذا تكرمت تراعي وضعي الصعب وتعتبر حالك بتشرح لطالب رابع ابتدائي 🙂
nssj قام بنشر نوفمبر 27, 2022 الكاتب قام بنشر نوفمبر 27, 2022 (معدل) 5 دقائق مضت, rockjone33 said: يوجد تكرار في المواضيع..! نعم .. في العناوين الفرعية .. وأشرت إلى ذلك في مشاركة سابقة، لذلك في الملف المرفق طلبت الأحاديث باستعمال (TNO) لأنه لا يتكرر فهو أفضل من معالجة تكرار الأسماء في هذه المرحلة تم تعديل نوفمبر 27, 2022 بواسطه nssj
jjafferr قام بنشر نوفمبر 27, 2022 قام بنشر نوفمبر 27, 2022 6 دقائق مضت, nssj said: بس معنديش مفتاح تفعيل لها النسخة ومش عارف شو آخرتها انا اشتريت نسخة مايكروسوفت اوفيس 2021 Pro Plus الذي يحتوي على مايكروسوفت اكسس بمبلغ 39.99$ يعني حوالي 40$ من هنا : https://store.techspot.com/sales/microsoft-office-professional-plus-2021-for-windows?utm_source=techspot.com&utm_medium=referral&utm_campaign=microsoft-office-professional-090922 جعفر
AbuuAhmed قام بنشر نوفمبر 27, 2022 قام بنشر نوفمبر 27, 2022 (معدل) 3 ساعات مضت, nssj said: With rst Do While Not .EOF Set nodX = TreeView6.Nodes.Add("A" & CStr(Nz(!NO1)), tvwChild, "A" & CStr(!NO2), CStr(!NO2) & ":" & !Sname) nodX.EnsureVisible .MoveNext Loop End With هذا الكود قبل أن ينشأ موقع أوفيسنا أو مع بدايته 🙂 وكثير يسيئ استخدامه لأن البيانات تحتاج إلى ترتيب أولا ، فلا بد من إضافة الأب قبل الإبن حتى يتم تحميل الإبن وإلا ستفشل عملية تحميل الإبن. رجعت لقاعدة البيانات خاصتك وفي جدول الموضوعات ولم أعرف أحدد الأب من الإبن "ضاعت الأنساب" 🙂 ، فهل تستطيع توضح لي مثال/سطر واحد وكيفية ربط الإبن بالأب؟. كذلك إذا الشجرة فقط للعرض ليس بها إضافة ولا تعديل ولا حذف فيفضل عدم استخدام النوع dbOpenDynaset بل يستخدم dbOpenSnapshot تم تعديل نوفمبر 27, 2022 بواسطه AbuuAhmed 1
nssj قام بنشر نوفمبر 27, 2022 الكاتب قام بنشر نوفمبر 27, 2022 2 ساعات مضت, rockjone33 said: نصيحه خلك على 2016 او 2019 شكراً على النصيحة أخي الكريم .. وأنا كنت أستخدم (2019) وكنت مبسوط عليه .. لكن حصلت معي سابقا مشاكل في تطبيق بعض الأكواد وأخذت أحذف وأحمل أكثر من إصدار .. والنتيجة: لم يعد يشتغل معي (2019) ؟؟؟ .. على كل حال أنا أفكر بعمل فورمات للجهاز قريبا وعندها سأعود له منذ ساعه, AbuuAhmed said: كذلك إذا الشجرة فقط للعرض ليس بها إضافة ولا تعديل ولا حذف فيفضل عدم استخدام النوع dbOpenDynaset بل يستخدم dbOpenSnapshot وأنا أتوه عند استخدام المصطلحات الإنجليزية وإن كانت بسيطة 🙂 .. لذلك لم أفهم مقصدك أخي الكريم منذ ساعه, AbuuAhmed said: رجعت لقاعدة البيانات خاصتك وفي جدول الموضوعات ولم أعرف أحدد الأب من الإبن "ضاعت الأنساب" 🙂 ، فهل تستطيع توضح لي مثال/سطر واحد وكيفية ربط الإبن بالأب؟ بخصوص الأب والابن لهذه الطريقة 🙂، فأنا اختصرت الحديث عنها بسبب البطء عند فتح النموذج، كما أن هذه الطريقة تستدعي إضافة حقلين لجدول الموضوعات (TAB_Subject)، حقل للأب (NO1) وحقل للابن (NO2)، وأنا فضلت الإبقاء على المستويات الأربعة (LVL1 – LVL2 .. ..) لأنها الطريقة القديمة التي مشيت عليها وجربتها في الحذف والإضافة والتعديل وعرض القوائم بلا مشاكل وأرفقت لك الملف التجريبي الذي فيه طريقة العرض بالاعتماد على هذا الكود MZ_SUB 03.rar
nssj قام بنشر نوفمبر 27, 2022 الكاتب قام بنشر نوفمبر 27, 2022 23 دقائق مضت, rockjone33 said: هل اضم القائمة في الشجره. أي قائمة تقصد أخي الكريم ؟ وهل يمكن عرض الشجرة من اليمين إلى اليسار كما في ملفي المرفق 23 دقائق مضت, rockjone33 said: يوجد تحويل من اي جدول الى شجره مصفوفه راجع موضوع @Moosak.. ☝ أين هذا الموضوع ؟
AbuuAhmed قام بنشر نوفمبر 28, 2022 قام بنشر نوفمبر 28, 2022 (معدل) تم التعديل على جدول الموضوعات بتبديل اسم حقلين 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 تم تعديل نوفمبر 28, 2022 بواسطه AbuuAhmed 2
nssj قام بنشر نوفمبر 28, 2022 الكاتب قام بنشر نوفمبر 28, 2022 7 ساعات مضت, AbuuAhmed said: 'هذا السطر يسبب بطء شديد فعلا أخي الكريم .. السطر المذكور كان سبب البطء والآن أصبح سريعا، بل أسرع من الكود الذي استخدمته، حتى أنني جربته على ملف قديم كان عدد العناوين فيه (8080) حيث كنت جعلت لكل رقم آية في التفسير عنواناً مستقلاً، ثم عدلت عن ذلك، لكنه مع ذلك أصبح يفتح أسرع من الملفات السابقة المرفقة مع أن عدد العناوين فيها أقل بمقدار الربع وأحسنت أخي الكريم بوضع حقل للأخطاء، فقد عالجتها بحمد الله وهذه الأخطاء لأنني لم أجري التجارب الكافية على هذه الطريقة وأنا بحاجة لبعض الوقت للتمرس على هذه الطريقة في الترقيم إذا كان رأي أهل الخبرة أنها أفضل ولكن يوجد خلل في ترتيب عرض الموضوعات الرئيسية فهي كما في الصورة: والترتيب الصحيح وإذا كان يمكن معالجة هذا الأمر فقد تكون هذه الطريقة أفضل لسرعتها، ولأنه يمكن استدعاء الأحاديث المرتبطة بالموضوع دون الحاجة لإظهار (TNO) في شجرة العناوين وبانتظار رأي الأخ الكريم rockjone33 ومناسبة هذه الطريقة لطبيعة عمله 7 ساعات مضت, AbuuAhmed said: العلاقات بين الجداول تحتاج إلى إعادة دراسة استعن بغيري 🙂 . أنا بانتظار إرشادات الإخوة الكرام ونصائحهم 🙂
nssj قام بنشر نوفمبر 28, 2022 الكاتب قام بنشر نوفمبر 28, 2022 استفسار بخصوص هذه الطريقة .. ألا يمكن الاستغناء عن ظهور الأرقام في الشجرة أم أنها ضرورية لترتيب العناوين ؟
AbuuAhmed قام بنشر نوفمبر 28, 2022 قام بنشر نوفمبر 28, 2022 جرب الآن والتعديل في الآتي: '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 2
nssj قام بنشر نوفمبر 28, 2022 الكاتب قام بنشر نوفمبر 28, 2022 تمام أخي الكريم الترتيب صار مزبوط ولكن هل بالإمكان أن يكون الترتيب بناء على (TNO) بغض النظر عن أرقام (parnet) و (code) فقد يكون أسلم بالنسبة لي عند التعديل بالحذف والإضافة على العناوين لأني ضامن أنه سيبقى على التسلسل المطلوب وكيف يمكن أن يكون العرض في البداية كما في هذه الصورة .. حاولت بجعل الخيارات كما في الملفات السابقة التي أرفقتها بس ما زبطت ومرفق الملف بعد تصحيح الأرقام واعذورني لبضع ساعات فسأكون خارج التغطية 😀 MZ_SUB 06.rar
AbuuAhmed قام بنشر نوفمبر 28, 2022 قام بنشر نوفمبر 28, 2022 تم التعديل ، وهذه المرة انسخ الكود كاملا لأنه حصل أكثر من تعديل. 2 ساعات مضت, nssj said: هل بالإمكان أن يكون الترتيب بناء على (TNO) بغض النظر عن أرقام (parnet) و (code) فقد يكون أسلم بالنسبة لي وقد يكون غير جيد لتحميل الشجرة. لا أعرف لماذا ثلاثة معرفات ID و Code و TNO؟ حاليا أرى أن لاحاجة لحقل ID وإذا أردت ربطه بجدول آخر فاربطه بحقل Code كذلك حقل TNO لماذا هو "كسري" إن صح التعبير أي Double لماذا لا يكون Integer أو Long Integer؟ MZ_SUB 07.rar
AbuuAhmed قام بنشر نوفمبر 28, 2022 قام بنشر نوفمبر 28, 2022 (معدل) كنت ناسيها ، تم الاستفادة من خاصية Tag تم تعديل نوفمبر 28, 2022 بواسطه AbuuAhmed 2
nssj قام بنشر نوفمبر 28, 2022 الكاتب قام بنشر نوفمبر 28, 2022 (معدل) 5 ساعات مضت, AbuuAhmed said: كذلك حقل TNO لماذا هو "كسري" إن صح التعبير أي Double لماذا لا يكون Integer أو Long Integer؟ لغرض إضافة سجل بين السجلات، وهو حقل موحد في جميع الجداول وهو مسؤول عن الترتيب فقط، وكود الإضافة الذي اعتمدته يتطلب الترقيم العشري. أما لماذا طلبت أن يكون ترقيم شجرة العناوين بناء عليه إن أمكن فلأنه الأيسر علي عند إضافة عناوين جديدة ونقلها وتغيير ترتيبها، وهو أمر أحتاجه كثيرا والأكواد التي اعتمدتها للإضافة هي في نموذج (TAB_Subject) وكما ذكرت سابقاً فأنا تعرفت على هذه الطريقة في الترقيم (Code - Parnet) حديثا ، وبالتحديد قبل أسبوعين، لذلك أنا غير متمرس عليها وقد أجد صعوبة في التعامل معها عند إضافة العناوين والطريقة التي اتبعتها في الترقيم الفرعي (code) هي الترقيم المتسلسل لكل مستوى * فعناوين المستوى الأول أرقام (code) فيها تبدأ من (1) إلى (100) * الثاني من (100) إلى (999) * الثالث من (1000) إلى (9999) * الرابع من (10000) وعند إضافة عنوان يتم إضافة الرقم التالي لآخر رقم حسب المستوى باستخدام (Dmax) وعندها تصبح الأرقام غير متسلسلة، وترتيبها في الشجرة لن يكون بالشكل المطلوب وكمثال على ذلك أضفت عنوانين عنوان (جديد2) في المستوى الثاني ، و (جديد3) في المستوى الثالث، وترتيبها كما في الصورة: وهي تظهر في الشجرة هكذا وجربت أن أغير الترتيب في الكود إلى rst.Sort = "LVLno,TNO" ولا أدري إن كان تصرفا صحيحاً أم لا .. لكن ترتيب العنوانين المضافين أصبح في الموضع الصحيح لأن ترتيب (TNO) يبقى متسلسلا بعد الإضافة والنقل ولا أدري أيضا إن كانت هذه هي الطريقة الصحيحة لترقيم حقلي (Code - Parnet) وها هناك طريقة أفضل خاصة عند الإضافة والحذف والنقل لكن هذا الذي أعرفه لحد الآن ومرفق الملف مع أكواد الإضافة بآخر تحديثاتها 57 دقائق مضت, AbuuAhmed said: كنت ناسيها ، تم الاستفادة من خاصية Tag وأنا جهزت هالمشاركة قبل هذا التحديث 😀 .. فما هو مجال تأثير هذه الخاصية أخي الكريم منذ ساعه, rockjone33 said: هل يوجد تعديلات .. 🙂 جزاك الله خيرا أخي الكريم .. شجرة جميلة .. ولكني أحتاج للتجربة لمعرفة هل هناك تعديلات مهمة مطلوبة أم لا MZ_SUB 09.rar تم تعديل نوفمبر 28, 2022 بواسطه nssj
AbuuAhmed قام بنشر نوفمبر 28, 2022 قام بنشر نوفمبر 28, 2022 بما أن الكود يفحص نفسه بنفسه ، وبما أنك جربته بعد التعديل ولم يفشل في إضافة أي سجل ولم يفشل في الترتيب فهذا يكفي ، توكل على الله واعتمده ، فأنت أدرى بخفايا برنامجك. موفق أخي. إذا أردت معرفة فائدة الـ Tag فابحث عنه في الكود ، سترى في البداية وضعنا به قيمة المستوى ، وفي النهاية استخدمناه لعرض الشجرة للمستوى الأول فقط حسب رغبتك. 1
AbuuAhmed قام بنشر نوفمبر 28, 2022 قام بنشر نوفمبر 28, 2022 إذن احذف مرفقك الأخير وأنا أحذف مرفقي الأخير وسأرفع مرفق جديد به تعديلك وتعديلي.
nssj قام بنشر نوفمبر 28, 2022 الكاتب قام بنشر نوفمبر 28, 2022 أخي الكريم rockjone33 بخصوص الإضافة والتعديل على العناوين فهو من نموذج (TAB_Subject) وليس من شجرة العناوين شجرة العناوين لعرض الموضوعات وأحاديثها فقط هذا ما أراه مناسبا والتعديل يشمل إضافة عناوين جديدة وحذف بعض العناوين والتقديم والتأخير بين بعض العناوين وهو يسري على المستويات الثاني والثالث والرابع، أما المستوى الأول وهو الأبواب الرئيسية فلا تعديل عليها وأكواد الإضافة والنقل كلها تعمل على حقل (TNO) وهي موجودة في الملف المرفق ولم أصمم بعد كودا لإضافة عنوان من المستوى الرابع لعدم حاجتي له في هذه المرحلة .. هذا المستوى سيأتي دوره لاحقا منذ ساعه, AbuuAhmed said: نسخة تضم تعديلي وتعديلك. ليس في هذا الملف آخر التعديلات على نموذج (TAB_Subject) لذلك أعدت رفعه كما وأنه كانت تظهر لي هذه الرسالة عند فتح الشجرة وحصلت معي بعض المشاكل عند محاولة إضافة العناوين ولما غيرت اسم الحقل (Parent) إلى (Parentx) سارت الأمور عندي بشكل جيد ولم تظهر الرسالة MZ_SUB 11.rar
nssj قام بنشر نوفمبر 29, 2022 الكاتب قام بنشر نوفمبر 29, 2022 هل يمكن عرض الموضوعات التي فيها أحاديث فقط 🤔 مع العلم أنه يوجد في جدول (TAB_Subject) حقل (Total) وهو لبيان عدد الأحاديث في هذا العنوان ويتم تحديثه عند فتح نموذج (TAB_Subject) بهذا الكود Private Sub Form_Load() CurrentDb.Execute "UPDATE TAB_Subject SET TAB_Subject.Total = DCount(""*"",""[TAB_Subject_X]"",""[SUB_ID]="" & [ID])" ولأني أحب التجارب جربت أن أغير في كود الشجرة Set rst = dbs.OpenRecordset("SELECT * from TAB_Subject ((TAB_Subject.Total)>0)", dbOpenDynaset) وطبعا التجربة فاشلة 😅 وإذا كان هذا ممكنا سيكون مفتاحا لي للتجارب التي سأجريها لمحاولة عرض أحاديث مسند معين وليس كل الأحاديث
nssj قام بنشر نوفمبر 29, 2022 الكاتب قام بنشر نوفمبر 29, 2022 هل تقصد أخي الكريم عمل جدول مستقل لكل مستوى من العناوين؟ أنا كنت منذ بداية دخولي عالم أكسس وإنشاء قاعدة البيانات .. وبناءً على المعلومات التي تحصلت عليها من النت عملت تصميما مبدئيا للموضوعات بناء على ذلك، شجرة مصغرة لعدة موضوعات من ثلاث مستويات، كل مستوى في جدول مع إنشاء علاقات بين الجداول: تم تعرفت على أحد الإخوة المبرمجين – المتمرسين ولديه خبرة في تصميم البرامج الموسوعية: كتب الحديث – كتب الفقه ..- وأريته عملي فقال لي: الأفضل أن تكون العناوين في جدول واحد، وعلمني هذه الطريقة وسرت عليها في فهرس المسانيد: ثم انقطع الاتصال معه فأكملت الطريق لوحدي والعودة للجداول المتعددة يعني أن أعود للبداية في تصميم نموذج الحذف والإضافة والنقل للمواضيع، ونموذج تصنيف الأحاديث على الموضوعات وغير ذلك، لأن عملي الأسبق كله كان مبنيا على هذا الجدول الواحد وعلى الرغم من أن ذلك سيأخذ وقتا وسأزعجكم بكثرة الأسئلة والاستفسارات 🙂 لأنه أمر جديد علي فإذا كان هذا هو الأفضل والأكثر سلاسة وسرعة ومرونة في عرض الموضوعات على شكل قوائم أو شجرة بعدة خيارات : الكل أو لمسند أو مسانيد معينة، مع البحث فيها والتعديل وغير ذلك مما لا يخفى عليكم فسأستعين بالله وأعيد العمل في كل ما يتعلق بالترتيب على الموضوعات بانتظار رأي أهل الخبرة الكرام 🙂
AbuuAhmed قام بنشر نوفمبر 30, 2022 قام بنشر نوفمبر 30, 2022 في الموقع مدرستين مدرسة تناصر الجدول الواحد ولها أسبابها. وأخرى تناصر تعدد الجداول ولها أسبابها. أنا من أنصار الجدول الواحد وقد مررنا بتجربة أنت وأنا ونجحت التجربة بشكل ممتاز ، وهذا باعتقادي كاف. لن أخوض في جدال ونصيحتي لك "خلك على مجنونك لا يجيك اللي أجن منه" ، هذا مثل شعبي عندنا بمعنى إذا الذي بين يديك يعمل بدون مشكلات فلماذا التفكير في التغيير فضلا عن التغيير نفسه وبه من ضياع الجهود والوقت الكثير وفي النهاية لن تجد أي إضافات جوهرية فضلا أنك لا تضمن حصولك على مشكلات جديدة مع التقسيم. قد تكون هناك فوائد أنا لم ألمسها ولكن من مساوئها "مثلا" برامج المحاسبة وشجرة العائلة لا يمكن تحديدها بعدد من المستويات وتحتاج إلى نطاق مستويات مفتوح وهذا لن ينجح مع التقسيم وإن نجح فلا ضمانة من العواقب ، لم أدخل أي تجربة في التقسيم ولن أدخل. طبعا أنت مشروعك محدود المستويات ولن يحتاج إلى مستويات مفتوحة. وأعتقد لن ترى أي عون من معارضي أي مدرسة، فـ "احسبها صح" قبل قيامك بالتغيير ، والله الموفق. سامحني هذه آخر مشاركة لي في هذا الموضوع. 1
nssj قام بنشر نوفمبر 30, 2022 الكاتب قام بنشر نوفمبر 30, 2022 (معدل) 8 ساعات مضت, AbuuAhmed said: سامحني هذه آخر مشاركة لي في هذا الموضوع. بارك الله فيك أخي الكريم .. كفيت ووفيت أنا كان استفساري عما إذا كانت هناك آلية لجعل الشجرة تعمل بشرط، لأن هذا سينفعني عند محاولة عرض شجرة العناوين لمسند معين: العناوين التي لها أحاديث في هذا المسند فقط، لأن الملف الأصل عندي (TAB) مرتب على المسانيد كنت أريد أن أعرف المفتاح لهذا الغرض لكي أجري التجارب، فإن لم أفلح سأطلب ذلك في مشاركة مستقلة، لأن طلبه هنا أعتقد انه يعتبر خروجا عن الموضوع .. هذا فضلا أنني لست مستعدا لهذا الطلب الآن .. لا بد من إعداد (عينة مصغرة) مرتبة على المسانيد والموضوعات للتجربة عليها 8 ساعات مضت, AbuuAhmed said: أنا من أنصار الجدول الواحد وقد مررنا بتجربة أنت وأنا ونجحت التجربة بشكل ممتاز نعم والحمد لله نجحت بشكل ممتاز، مع أنني عندما حاولت حذف الملف الفرعي الذي تعرض فيه الأحاديث لاسبداله بملف فرعي آخر كانت تخرج عدة رسائل ولا زالت التجارب جارية المهم في الأمر .. أنني كنت مرتاحاً لهذا التقدم دون الحاجة لتغيير هيكلة جدول الموضوعات وإعادة تقسيمه لأن هذا الأمر لن يكون سهلاً وكوني حققت نجاحاً بهذا الجدول في عدة مجالات: الإضافة والتعديل على العناوين، وربطها بالأحاديث، مع عرض الموضوعات على شكل قوائم مع عرض أحاديث كل عنوان .. ، لكن هذا النجاح مبني على مجرد التجارب دون معرفة مني لأصول وخفايا بناء قواعد البيانات وتصميم الجدوال، وأريد أن أتأكد من أهل الخبرة أن هذا الطريق الذي سرت فيه صحيح، لأنني ما زلت في البداية ولا أريد بعد رحلة بضعة أشهر لتصنيف الأحاديث على الموضوعات أن أكتشف أن عملي كان مبنيا على أصل غير صحيح وأنه كان من الأفضل لو أني عملت كذا وكذا لذلك لما قرأت كلام الأخ rockjone33 : (ان يكون منفصل لكل لجدول .. ..) ظننت أنه يقترح عمل جدول لكل مستوى وأنه الأفضل لكن قولك أخي الكريم rockjone33 في مشاركتك الأخيرة 4 ساعات مضت, rockjone33 said: لا تسرع ايه تقسيم انت عارف !! اي اكثر من جدول سحب وضم يعنني أنني أخطأت في فهم كلامك .. فأنا أولاً أعتذر عن سوء الفهم وثانيا أنا مرتاح أنه يمكنني الاستمرار على هذا نهج الجدول الواحد لأن التغيير لن يكون سهلا هذا مع العلم أنني قمت بتجربة لتقسيم الجدول إلى أربعة، ولم يأخذ مني الأمر ربع ساعة وأول مطب وقعت فيه لعدم خبرتي: كيف سأقوم بتصنيف الأحاديث على موضوعاتها بهذه الجداول الأربعة ولو تم جمعها باستعلام فبأي رقم سأربط الموضوعات بالأحاديث ولدي أكثر من ترقيم وأكثر من مستوى، فأكثر الأحاديث مرتبطة عبر المستوى الثالث وبعضها بالثاني والقليل منها بالرابع وإذا كنت بحاجة لاستعلام لضم هذه الجداول الأربعة فلماذا التقسيم من الأصل كل هذه الأسئلة كنت أفكر فيها وجعلتني غير مرتاح للتقسيم ليس لأنه خيار غير جيد .. بل لأنني لم أعتد عليه وبنيت كل عملي على الجدول الواحد .. وتم بحمد الله التغلب على معظم المشاكل التي واجهتني فيه بفضل الله أولا وآخرا ثم بفضل مساعدة الإخوة الكرام وبانتظار نتيجة عمل الأخ الكريم rockjone33 تم تعديل نوفمبر 30, 2022 بواسطه nssj
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.