Foksh قام بنشر الأربعاء at 01:30 قام بنشر الأربعاء at 01:30 أخواني وأساتذتي ومعلمينا ( دون استثناء ) ابدأ مووعي هذا بسؤال يلامس ( نقاط الألم ) لدى المبرمجين :- هل سبق لك أن ورثت قاعدة بيانات اكسيس بآلاف السطور البرمجية وشعرت بالضياع مع كثرة الدوال والأكواد ؟ هل تبحث عن طريقة سحرية لتنظيف مشروعك من الأكواد الميتة والإجراءات غير المستخدمة ؟ هل تواجه مشاكل في توافق أكواد Windows API بين إصدارات Office 32-bit و 64-bit ؟ أهلاً بك في عالم Access Code Explorer - أول وأقوى مدير متكامل لمشاريع Access/VBA في العالم العربي . هذه ليست مجرد أداة ، بل مشروع متكامل يحول الـاكسيس الخاص بك إلى بيئة تطوير محترفة (IDE) بمعنى الكلمة . 1️⃣ القسم الأول : التحليل والاستكشاف (Analysis & Exploration) :- مستكشف الكائنات الذكي : شجرة متكاملة تعرض كل مكونات المشروع من ( جداول ، استعلامات ، نماذج ، تقارير ، موديولات و كلاسات ) بطريقة منظمة وقابلة للطي والفتح ( نظام الشجرة في ليست بوكس ). البحث العميق : ابحث عن أي نص برمجي أو كلمة في جميع الإجراءات والاستعلامات دفعة واحدة . الأداة ستظهر لك النتائج وتضع علامة مرجعية على السطر الذي تم العثور عليه داخل الكود ! عرض SQL بشكل احترافي : عند اختيار أي استعلام ، ترى كوده مع تصنيف لنوعه ( استعلام تحديث ، إضافة ، حذف ، توحيد ... إلخ ) وإمكانية تحويله إلى كود VBA جاهز بنقرة واحدة . إحصائيات دقيقة : عرض عدد الجداول ، الاستعلامات ، النماذج ، التقارير ، الموديولات ، الكلاسات ، وإجمالي سطور الأكواد في مشروعك . الأداة قادرة على اكتشاف إصدار الأوفيس ونواته ، وإصدار الويندوز ونواته أيضاً في التعليق التوضيحي للنموذج عند فتحه . 2️⃣ القسم الثاني : أدوات الصيانة والتحسين ( Maintenance & Optimization ) :- 🧹 كشف وإزالة الإجراءات غير المستخدمة ( Dead Code ) :- يقوم بتحليل علاقات الاستدعاءات بين الإجراءات ( Call Graph ) . يحدد بدقة الإجراءات التي لا يتم استدعاؤها من أي مكان . ميزة الأمان : يقوم بإنشاء نسخة احتياطية تلقائية لجميع الإجراءات قبل حذفها ! 3️⃣ القسم الثالث : مصحح الأكواد الشامل (VBA Fixer) :- إزالة الأسطر الفارغة المكررة . حذف الإجراءات الفارغة . تعطيل أو إزالة أوامر Debug.Print و Stop . إعادة تنسيق الكود بالكامل ( Code Formatting ) مع مسافات بادئة ذكية . اكتشاف وإصلاح أخطاء معالج الأخطاء ( On Error Goto ) الميتة . إضافة ( On Error GoTo 0 ) المفقودة بعد استخدام ( On Error Resume Next ) . توحيد وإصلاح أسطر Option Explicit و Option Compare في كل الموديولات والكائنات . اكتشاف المتغيرات غير المستخدمة . ( سيتم إضافته قريباً ) وضعان للتشغيل : 🌐 الوضع الشامل : لتحليل وإصلاح المشروع بأكمله . 🎯 الوضع الفردي : لتحليل وإصلاح إجراء واحد فقط ( الذي تحدده في القائمة ) . 4️⃣ القسم الرابع : ثورة إدارة Windows APIs :- 📚 مكتبة APIs مدمجة : تحتوي على عشرات من أشهر دوال Windows API مصنفة حسب الوظيفة ( Window, File, Registry, Process, Memory, Network... ). 🧠 كشف وحل مشاكل التوافق ( API Compatibility Checker ) :- يكتشف تلقائياً الـ APIs المكررة في جميع أنحاء المشروع . يحدد لك أفضل مكان للاحتفاظ بالـ API ( يفضل الموديولات العامة ) . يكشف مشاكل الـ 64-bit : يجد جميع الدوال التي تفتقد إلى PtrSafe أو تستخدم Long بدلاً من LongPtr . 💉 حقن وإدراج الـ APIs بذكاء : على سبيل المثال ؛ إذا استخدمت دالة CreateFile في كودك ولم تعلن عنها ، الأداة تكتشف ذلك وتقوم بإضافتها تلقائياً إلى موديول مركزي Mod_Foksh وتحويلها إلى Public لتكون متاحة في كل مكان . 📝 شرح وأمثلة استخدام : لكل API في المكتبة شرح مبسط وأمثلة جاهزة للنسخ واللصق . 5️⃣ القسم الخامس : واجهة مستخدم ذكية :- أزرار تحكم سريعة : طي/ فتح كل المجموعات بنقرة واحدة ، ترتيب الإجراءات تصاعدي/تنازلي . قوائم منظمة (Menus) : تم تقسيم الأدوات إلى قائمتين (Menu01, Menu02) لتجنب ازدحام الواجهة . مؤشرات بصرية : أثناء عمليات الإصلاح الطويلة ، ترى أي جزء يعمل حالياً من خلال تغير لون التسميات التوضيحية . ☢ متطلبات التشغيل (Requirements) :- مايكروسوفت اكسيس 2010 أو أحدث (يفضل 2013/2016/365) . ♻ طريقة التثبيت ( Installation ) :- قم بفتح قاعدة البيانات التي ترغب في تحليلها . فقط قم باستيراد ( نسخ و لصق ) النموذج Frm_Foksh إلى مشروعك . قم بفتح النموذج . الأداة ستقوم تلقائياً بإنشاء الجداول اللازمة عند أول تشغيل . استمتع بالمستوى الجديد من التحكم ! ‼ تعليمات الأمان ( Safety Instructions - مهم جداً ) :- ⚠️ تنبيه هام قبل استخدام أي ميزة للحذف ( مثل Delete Unused Procedures ) ، الأداة تقوم تلقائياً بإنشاء نسخة احتياطية بصيغة txt في نفس مجلد قاعدة البيانات الحالية . يُنصح دائماً بأخذ نسخة احتياطية كاملة من ملف قاعدة البيانات قبل تجربة أدوات التعديل الجماعي . إذا كان مشروعك محمي بكلمة مرور ، الأداة لن تتمكن من قراءة الأكواد حتى تقوم بإلغاء الحماية مؤقتاً . 📸 واجهة الأداة المتواضعة :- قد لا تخلو الأداة من بعض الأخطاء البسيطة حالياً في الواجهة ، ولكن الوظائف جميعها تعمل بشكل سليم . والأخطاء الواردة قد تكون في ضبط عناصر الواجهة ليس إلا . ⛔ لا تحاول التغيير في الأكواد الخاصة بالنموذج ، ما لم تكن على دراية كافية بما تقوم به من تعديلات ⛔ ملف الأداة للتحميل :- Access KitTools - Master 1.0.accdb.zip 2 1
mohammed farhat قام بنشر الأربعاء at 02:43 قام بنشر الأربعاء at 02:43 ما شاء الله و لا قوة إلا بالله - أداة أكثرمن رائعة جزاكم الله علي ما بذلتموه من جهد فيها و نفع بكم و رزقكم دائما العلم النافع 1
كمال على طارق قام بنشر الأربعاء at 08:15 قام بنشر الأربعاء at 08:15 أكرمك الله وزادك الله من فضله بالفعل انجاز عظيم جعله الله فى ميزان حسناتك 1
Foksh قام بنشر الأربعاء at 11:50 الكاتب قام بنشر الأربعاء at 11:50 10 ساعات مضت, Foksh said: قد لا تخلو الأداة من بعض الأخطاء البسيطة حالياً في الواجهة ، ولكن الوظائف جميعها تعمل بشكل سليم . والأخطاء الواردة قد تكون في ضبط عناصر الواجهة ليس إلا . لاحظت نقطة قد سقطت سهواً ، وهي ضبط العنصر Label61 = ليبل ، ليكون خلف أزرار الفرز Btn_SortDec و Btn_SortAsc أو بتصغير عرضه قليلاً 9 ساعات مضت, mohammed farhat said: جزاكم الله علي ما بذلتموه من جهد فيها و نفع بكم و رزقكم دائما العلم النافع وبكم بالك الله أستاذ محمد فرحات شكراً لمرورك 3 ساعات مضت, كمال على طارق said: أكرمك الله وزادك الله من فضله بالفعل انجاز عظيم جعله الله فى ميزان حسناتك أخي كمال ، بارك الله بك ، وزادكم من العلم والإيمان .. شكراً لمرورك
Debug Ace قام بنشر الأربعاء at 14:51 قام بنشر الأربعاء at 14:51 بداية موفقة انا جربت التطبيق فى احد قواعد البيانات من تصميمى اخبرنى بوجود 26 اجراء غير مستخدم دى كارثة انا استغربت واتخضيت ههههههههههه هو انا كنت نايم للدرجة دى وللاسف كل الاجراءات مستخدمة وبحذف احدهم تحدث مشاكل فى قاعدة البيانات لانها فقدت اجراء مستخدم بالفعل 1
Foksh قام بنشر الأربعاء at 15:26 الكاتب قام بنشر الأربعاء at 15:26 35 دقائق مضت, Debug Ace said: بداية موفقة انا جربت التطبيق فى احد قواعد البيانات من تصميمى اخبرنى بوجود 26 اجراء غير مستخدم دى كارثة انا استغربت واتخضيت ههههههههههه هو انا كنت نايم للدرجة دى وللاسف كل الاجراءات مستخدمة وبحذف احدهم تحدث مشاكل فى قاعدة البيانات لانها فقدت اجراء مستخدم بالفعل شكراً لك مشاركتي تجربتك 😉
Moosak قام بنشر منذ 20 ساعات قام بنشر منذ 20 ساعات هدية كريمة .. من أخ كريم .. في شهر كريم 🙂 🌹 كتب الله لك أجرها .. ونفع بها .. ما حدث معي .. كلما أنقلها إلى أي قاعدة بيانات تقابلني هذه الرسالة بشكل مزعج ومتكرر عند فتح النموذج وعند تشغيل أي إجراء .. !
Foksh قام بنشر منذ 14 ساعات الكاتب قام بنشر منذ 14 ساعات 6 ساعات مضت, Moosak said: ما حدث معي .. كلما أنقلها إلى أي قاعدة بيانات تقابلني هذه الرسالة بشكل مزعج ومتكرر عند فتح النموذج وعند تشغيل أي إجراء .. ! شكراً لك مهندسنا الغالي على متابعتك .. المشكلة في موقع وترتيب السطر Me.lstAPI.RowSource = "" بحيث يكون في حدث بعد التحميل للنموذج ونقله من بداية الكود إلى بعد السطر المسؤول عن إنشاء الجداول ، ليصبح الحدث = Private Sub Form_Load() On Error GoTo EH Dim ctl As Control For Each ctl In Me.Controls If ctl.Tag = "Fixer" Or ctl.Tag = "Option01" Or ctl.Tag = "API" Then ctl.Visible = False End If Next ctl Me.BtnNextMenu.Visible = True Me.LblHelper.Left = 8100 ToggleButtons Me.BtnCollaps, Me.BtnExtended Me.CheckAll.Visible = False Me.lstProcedures.Visible = False Me.LblHow.Caption = "" CX_EnsureInstalled Me.lstAPI.RowSource = "" CX_InitUI CX_ScanAndLoad CX_APILibraryData CX_LoadAPIs Me.lstProcedures.RowSource = "" Me.LblWhere.Caption = "" If Not CX_IsVBIDETrusted() Then CX_ShowVBIDENotTrustedMessage CX_BindEmptyUI Exit Sub End If Exit Sub EH: ShowError "Form_Load" End Sub وإن شاء الله سيتم حل المشكلة ، فقد كان يقوم بتفريق مصدر الليست بوكس قبل التأكد من إنشاء الجداول نفسها . 1
Foksh قام بنشر منذ 1 ساعه الكاتب قام بنشر منذ 1 ساعه (معدل) الفكرة السابقة ، عملت على جهاز ولم تعمل على جهاز آخر .. لذا قد يكون التعديل بحذف مصدر صف الليست بوكس lstAPI . وحفظ النموذج واعتماده بدون مصدر صف له . وسيتم تحميلها عند فتح النموذج تلقائياً . ويمكن لنا أن نضع السطر التالي :- Me.lstAPI.RowSource = "" في حدث عند اغلاق النموذج .. وبالتالي لن يتم تعيين قيمة لمصدر صف الليست بوكس عند اغلاقه . أيضاً تحديث الدالة CX_CreateTables المسؤولة عن إنشاء الجداول ، بحيث تقوم بإظهار الجداول بعد إنشائها :- Private Sub CX_CreateTables() On Error GoTo EH Dim db As DAO.Database Dim ws As DAO.Workspace Dim td As DAO.TableDef Set db = CurrentDb Set ws = DBEngine.Workspaces(0) ws.BeginTrans If Not CX_TableExists(T_REG) Then db.Execute "CREATE TABLE " & T_REG & " (" & _ "ID AUTOINCREMENT CONSTRAINT PK_" & T_REG & " PRIMARY KEY, " & _ "ToolName TEXT(64) NOT NULL, " & _ "ToolVersion TEXT(32) NOT NULL, " & _ "InstalledOn DATETIME, " & _ "OfficeVersion TEXT(16), " & _ "Is64Bit YESNO)", dbFailOnError db.Execute "CREATE UNIQUE INDEX UX_" & T_REG & "_ToolName ON " & T_REG & " (ToolName)", dbFailOnError End If If Not CX_TableExists(T_OBJ) Then db.Execute "CREATE TABLE " & T_OBJ & " (" & _ "ID AUTOINCREMENT CONSTRAINT PK_" & T_OBJ & " PRIMARY KEY, " & _ "ObjName TEXT(128) NOT NULL, " & _ "ObjKind TEXT(32) NOT NULL, " & _ "Lines LONG, " & _ "LastScan DATETIME)", dbFailOnError db.Execute "CREATE UNIQUE INDEX UX_" & T_OBJ & "_ObjNameKind ON " & T_OBJ & " (ObjName, ObjKind)", dbFailOnError db.Execute "CREATE INDEX IX_" & T_OBJ & "_Kind ON " & T_OBJ & " (ObjKind)", dbFailOnError End If If Not CX_TableExists(T_PROC) Then db.Execute "CREATE TABLE " & T_PROC & " (" & _ "ID AUTOINCREMENT CONSTRAINT PK_" & T_PROC & " PRIMARY KEY, " & _ "ObjName TEXT(128) NOT NULL, " & _ "ObjKind TEXT(32) NOT NULL, " & _ "ProcName TEXT(128) NOT NULL, " & _ "ProcKind TEXT(32) NOT NULL, " & _ "StartLine LONG, " & _ "ProcLines LONG, " & _ "LastScan DATETIME)", dbFailOnError db.Execute "CREATE INDEX IX_" & T_PROC & "_Obj ON " & T_PROC & " (ObjName, ObjKind)", dbFailOnError db.Execute "CREATE INDEX IX_" & T_PROC & "_Proc ON " & T_PROC & " (ProcName)", dbFailOnError End If If Not CX_TableExists(T_API) Then db.Execute "CREATE TABLE " & T_API & " (" & _ "ID AUTOINCREMENT CONSTRAINT PK_" & T_API & " PRIMARY KEY, " & _ "ApiName TEXT(128), " & _ "Category TEXT(64), " & _ "Description LONGTEXT, " & _ "Code LONGTEXT, " & _ "Is64Bit YESNO)", dbFailOnError db.Execute "CREATE UNIQUE INDEX UX_" & T_API & "_ApiName ON " & T_API & " (ApiName)", dbFailOnError End If ws.CommitTrans For Each td In CurrentDb.TableDefs If Left(td.name, 4) = "zCX_" Then DoCmd.SelectObject acTable, td.name, True End If Next td Exit Sub EH: On Error Resume Next ws.Rollback ShowError "CX_CreateTables" End Sub تم تعديل منذ 58 دقائق بواسطه Foksh إضافة تحديث للدالة CX_CreateTables
الردود الموصى بها
انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد
يجب ان تكون عضوا لدينا لتتمكن من التعليق
انشئ حساب جديد
سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .
سجل حساب جديدتسجيل دخول
هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.
سجل دخولك الان