-
Posts
6997 -
تاريخ الانضمام
-
Days Won
202
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو ابو جودي
-
من عيونى يا باش مهندس شرح الاكواد بالوحدة النمطية تفصيلا اولا اسم الجدول ولانه سوف يتم استخدامه كثيرا ولاننى احببت تصعيب الامر قليلا استخدمت الـ Unicode Public Function tblUUID() tblUUID = Chrw("85") & Chrw("115") & Chrw("121") & Chrw("115") & Chrw("83") & Chrw("101") & Chrw("99") & Chrw("117") & Chrw("114") & Chrw("101") & Chrw("100") End Function فلو قمنا بقرائته فى نافذة immediate من خلال ?tblUUID() لتنتج لنا اسم الجدول UsysSecured كما فى الصورة الاتية 2- التأكد من وجود الجدول فى قاعدة البيانات من عدمه Public Function ifTableExists(tblName As String) As Boolean If DCount("[Name]", "MSysObjects", "[Name] = '" & tblName & "'") = 1 Then ifTableExists = True End Function 3- السطر الاول انشاء الجدول من خلال استعلام السطر الثانى تشغيل الـ Function الاتى ChckUUID ,وسيتم شرحه لاحقا Public Function CrtTblUUID() DoCmd.RunSQL "CREATE TABLE " & tblUUID & "([ID] counter," & "[UUIDPC] text," & "[ApprovedNo] text," & "CONSTRAINT [Index1] PRIMARY KEY ([ID]));" ChckUUID End Function 4- التأكد من وجود قيم فى الجدول Public Function CountRec() As Boolean If DCount("*", tblUUID) = 1 Then CountRec = True End Function 5-التأكد من صلاحية مقتاح التسجيل الذى ارسلته لكم عند التجربة من خلال استخدام عدد 2 Function - ToGetAprv - GetUUID() وسيأتى شرحهم تباعا Public Function ChkApprovedNo() As Boolean If DLookup("ApprovedNo", tblUUID) = ToGetAprv(GetUUID()) Then ChkApprovedNo = True End Function ملاحظة عند الشرح الان وحدتنى قمت بعمل function باسم اخر لنفس الوظيفة وسوف اقوم بحذفه اسم ال function هو Public Function validat() As Boolean اعتذر على ذلك الخطأ 6- هذا ال Function للخثول على معرف فريد للجهاز يدعى UUID وببساطه هو هو اختصار للمعرف الفريد العالمي ، وهو معرف فريد يتم إنشاؤه آليًا ضمن نطاق معين يتم إنشاؤها بواسطة خوارزمية معينة تحدد المواصفات والعناصر بما في ذلك عنوان MAC لبطاقة الشبكة والطابع الزمني ومساحة الاسم (Namespace) والرقم العشوائي أو العشوائي الزائف والتوقيت والعناصر الأخرى وخوارزمية إنشاء UUID من هذه العناصر تعني الخصائص المعقدة لـ UUID أنه لا يمكن إنشاؤها إلا عن طريق الكمبيوتر مع ضمان تفردها Public Function GetUUID() Dim strComputer As String Dim objWMIService, colItems, objItem strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct", , 48) For Each objItem In colItems GetUUID = objItem.UUID Next End Function 7- اغلاق جميع النماذج المفتوحة ما عدا نموذج FrmNotReg ولعدم تسهيل الامر على العابثين تم استخدام الـ unicode فى كتابة اسم النموذج Public Function DoCloseForms() Dim F As Access.Form Dim i As Long For i = Forms.Count - 1 To 0 Step -1 Set F = Forms(i) If F.Name <> _ Chrw("70") & Chrw("114") & Chrw("109") & Chrw("78") & Chrw("111") & Chrw("116") & Chrw("82") & Chrw("101") & Chrw("103") _ Then DoCmd.Close acForm, F.Name End If Next i End Function فى النقطة رقم 5 فى الشرح قلت سوف يأتى لاحقا شرح الـ 2 function الاتى ذكر اسمائهم - ToGetAprv - GetUUID() GetUUID -- تم شرحة فى النقطة رقم 6 الـ ToGetAprv هو function يتم تمرير قيمة GetUUID() الجهاز الحالى اليه ليقوم بتحويله الى unicode يعنى من ظهر لهم هذا الرقم الخاص بالنسخة فى نموذج التسجيل 46364331-3536-4638-3344-4232FFFFFFFF طبعا كما سبق هذا هو معرف الـ UUID وبعد ان يتم تمريره الى الـ function ToGetAprv ليتم تحويله الى unicode المفروض انه يظهر على الشطل التالى ولكن قمت ببعض التعديلات على الكود الذى يقوم بالتجويل الى الـ unicode بحيث يتم الابقاء على الارقام فقط من دون Chw("") & ولذلك كانت النتيجة كالاتى 525451545251514945515351544552545156455151525245525051507070707070707070 ولذلك فان ال Public Function ChkApprovedNo() As Boolean If DLookup("ApprovedNo", tblUUID) = ToGetAprv(GetUUID()) Then ChkApprovedNo = True End Function يقوم بالوصول الى الرقم ذلك وان كان يساوى الرقم الذى يتم عمل لصق له فى نموذج التسجيل يتم فتح النموذج الرئيسي 8- الكود الاخير لاخر روتين فى الموديول يقوم بعمل كل ماسبق يتأكد من وجود الجدول لو مش موجود ينشئ الجدول ولو الجدول موجود يتأكد من عدد السجلات لو 0 سجل يتم انشاء سجل ويضع به رقم UUID فى الحقل الخاص به ولو السجلات تساوى 1 يقوم بالتأكد من قيمة رقم UUID ان كان المكتوب فى الجدول = الخاص بهذا الجاز يكمل باقى الخطوات والا يوقم بعمل تحديث له للرقم فى الحقل داخل الجدول بما يساوى رقم رقم UUID للجهاز وبعد ذلك يتم تحويل الـ رقم UUID الى unicode مع االبقاء على الرقام فقط ويتأكد من تلك القيمة فى الحقل الخاص بها للتأكد فان كانت يتم فتح النموذج الرئيسي والا يعود الى نموذج التسجيل ولذلك هذا هو المستخدم فى الحدث عند الفتح ويمكن وضعه بنموذج البدء بسهولة من خلال اسمه ChckUUID , او Call ChckUUID بس خلاص Public Function ChckUUID() If ifTableExists(tblUUID) Then Else: CrtTblUUID If DLookup("UUIDPC", tblUUID) <> GetUUID Then DoCmd.SetWarnings False: DoCmd.RunSQL "UPDATE UsysSecured SET UsysSecured.UUIDPC = GetUUID();": DoCmd.SetWarnings True DoEvents If CountRec() Then If DLookup("UUIDPC", tblUUID) = GetUUID Then If ChkApprovedNo Then _ DoCmd.Close acForm, _ Chrw("70") & Chrw("114") & Chrw("109") & Chrw("78") & Chrw("111") & Chrw("116") & Chrw("82") & Chrw("101") & Chrw("103") _ : DoCmd.OpenForm Chrw("70") & Chrw("114") & Chrw("109") & Chrw("77") & Chrw("97") & Chrw("105") & Chrw("110"), , , , , acDialog _ Else: DoCloseForms: DoCmd.OpenForm Chrw( _ "70") & Chrw("114") & Chrw("109") & Chrw("78") & Chrw("111") & Chrw("116") & Chrw("82") & Chrw("101") & Chrw("103"), , , , , acDialog Exit Function End If Else DoCmd.SetWarnings False: DoCmd.RunSQL "INSERT INTO UsysSecured ( UUIDPC ) SELECT GetUUID() AS UUID;": DoCmd.SetWarnings True End If End Function بس ممكن بدل الذهاب الى نموذج التسجيل اغلاق القاعدة نهائيا لمن يريد وطبعا للوصول للحماية القصوى وضع كلمة مرور على محرر الاكواد وكلمة سر لتشفير قاعدة البيانات عند الفتح واغلاق الشيفت واخفاء الاطار وعمل قاعدة ريموت لتمرر كلمة المرور الى القاعدة الحالية عند فتحها وطبعا تلك القاعدة سوف يتم تحويلها الى accde وهذا ما سوف اطرحه لاحقا بس الان انا متعب ملاحظة تم تعديل المرفق الرئيسي بالتعديل الأخير الذى تم تدارك الاخطاء به وسوف يتم حذف كل المرفقات بالموضوع تخفيفا على سيرفر المنتدى اجمل الامانى بكده ينتهى موضوع العبث ويتم تأمين القاعدة بأقصى درجات الأمان لمن يريد
-
بعد جزاه الله خيرا طبعا استاذى الحبيب @الفلاحجى ولكن التعديل الاتى ان شاء الله تم فيه تدارك ما سهوت عنه وان شاء الله يعمل الان بنجاح عند الجميع.... بعد تأكيد تجربتكم ان شاء الله اقوم بتعديل المرفق الرئيسي وبالنسبة لكود تفعيل القاعدة لجهاز حضرتك يا باش مهندس اتفضل ولو اتنقلت لجهاز تانى لا القاعدة تفتح عادى ولا الكود ده يفعلها واتمنى تجربة القاعدة المرفقة الان اولا 526752675253525245484852554552684948455648535445675167485270535453485149 بالنسبة لكبر او صغر مفتاح التسجيل هل فارق معاك فى شئ ؟! تم تعديل المرفق الرئيسي ... ابوجودى
-
ان شاء الله سوف اراجع افكارى او ربما عدم تركيزى افقدنى شئ ما اتفضل انسخ الرقم الاتى وقم بالضغط على زر الامر past 526752675253525245484852554551554948455648515045665667485270525552565149 سوف يخبرك انه خطأ وبعدين جرب الاتى 526752675253525245484852554551554948455648515445665667485270525552565149 سوف تعمل بعد ذلك القاعدة بشكل طبيعى جدا
-
نطق الحروف الهجائية للمكفوفين - طريقة برايل
ابو جودي replied to أبو أحمد's topic in قسم الأكسيس Access
طيب تريد الاعتماد على اى صيغة >>---> wav or mp3 -
نطق الحروف الهجائية للمكفوفين - طريقة برايل
ابو جودي replied to أبو أحمد's topic in قسم الأكسيس Access
اين هى المقاطع الصوتية ؟ -
نطق الحروف الهجائية للمكفوفين - طريقة برايل
ابو جودي replied to أبو أحمد's topic in قسم الأكسيس Access
ممكن مرفق القاعدة مع المقطع الصوتى الذى تريد اضافته -
طيب تلميح أخر يبدو اننى لم اضع الوصف المناسب حتى تعمل القاعدة بشكل طبيعى لابد ان يتم فتح نموذج FrmMain فعند نسخ القاعدة لاى جهاز اخر سوف تقوم بفتح نموذج FrmNotReg بدلا من النموذج الرئيسيى واعتقد ان هذا ما حدث معكم اساتذتى الكرام منتظر رد حضراتكم تلميح آخر لم يتم وضع القاعدة بتلك الطريقة كنوع من تحدى او اثبات استحالة الفتح.. فقط تجربة الفكرة ببساطة يسهل كسر الحماية فى هذه الاونة بكل سهولة للمحترفين وفى النهاية اعلم انه ليست هناك حماية مطلقة.. ولكن هذا الجزء الأول وسوف ارتقى فى الافكار بناء على نجاح التجارب تدريجيا للوصول الى درجة احترافية ان شاء الله تناسب من يريد تأمين عملة بالقدر الكافى فى انتظار رد اساذتى الكرام استاذى الجليل ومعلمى القدير و والدى الحبيب الاستاذ @jjafferr استاذى الجليل ومعلمى القدير الباش مهندس @Eng.Qassim
-
السلام عليكم ورحمة الله وبركاته بناء على طلب احد الاحباب هذا العمل للتجربة اولا برجاء فتح القاعدة وموافتى بالاتى هل تم فتح القاعدة بشكل طبيعى أم أنه طلب منكم وضع رقم ترخيص لتشغيل القاعدة طيب فى حالة طلب رقم الترخيص من فضلك انسخ رقم الـ Activation Number من النموذج من خلال زر الامر Copy وقم بلصقه هنا فى مشاركة للتأكد من فاعلية الفكرة سوف أرسل لكم رقم ترخيص License Number لفتح القاعدة وبعد ذلك سوف تعمل بنجاح الى ان يتم نقلها لجهاز اخر وستتوقف عن العمل ولن يتم فتحها بنفس الرقم السابق والذى أرسلته اليكم ملاحظة رقم الترخيص يتغير من جهاز لاخر يعنى الشخص الذى سوف ارسل لع رقم الترخيص يخص جهازه الحالى فقط ولن ينفع مع شخص غيره ممكن نجرب سويا Anti Copy 3.zip
-
الموضوع مخالف عدم اختيار عنوان مناسب يصف الموضوع بشكل مختصر غير ان الموضوع نفسه مخالف لانه يعد انتهاك لحقوق صاحب القاعدة الذى قام بإغلاقها آمل ان تعذرنا عند تطبيق اجراء مخالفة قواعد وقوانين المشاركة يغلق ،،،
- 1 reply
-
- 3
-
-
يعنى ممكن تضيفه كنموذج فرعى للنموذج الرئيسى بتاعك لو مفتوح دايما فالبرنامج او اجعل هذا النموذج فردى كما هو واجعله مفتوح ومخفى دائما طول فتره عمل البرنامج طبعا جزاكم الله خيـرا استاذى القدير واخى الحبيب الاستاذ @الفلاحجى ولتمام القائدة للجميع تم التعامل مع المشكلة لايف ريموت اكسس لوحظ عدم وجود النموذج frmChkCon اصلا بالقاعدة والقليل من الاكواد التى على بعض النماذج فى الحدث Error والتى لا تثمن ولا تغنى من جوع بيدوا انه تم الدمج بين طريقتين لنفس السبيل بعد تدارك الموقف وظبط الاكواد كما ينبغى واضافة النماذج اللازمة من المثال الأصلى وبعد التجربة لوحظ مشكله بعدم اغلاق القاعدة لوجود احد النماذج مفتوحة وبالتالى تم تعليق القاعدة تم تلاشى هذه المشكلة باضافة الروتين الاتى ليقوم باغلاق كل شئ اولا Public Sub Logout() Dim F As Access.Form Dim i As Long ' Loop all open forms, from last to first, to avoid problems due to closing forms ' (removing them from the Forms collection) in the loop For i = Forms.Count - 1 To 0 Step -1 Set F = Forms(i) ' Close all forms except the login form If F.Name <> "frmLogin" Then DoCmd.Close acForm, F.Name End If Next i End Sub رجاء من الاستاذ @ahmus فضلا وكرما وليس امرا ارفاق قاعدة البيانات النهائية بعد التعديلات اللازمة لتعم القائدة على الجميع وشكرا
-
مساعدة فى وضع كود أضنه بسيط (أعادة البحث) أو بدء عملية البحث
ابو جودي replied to walid7799's topic in قسم الأكسيس Access
ارفع قاعدتك افضل على https://top4top.io/ -
تقصد ما يقدر حد ينسخها من جهاز لجهاز أخر
-
مطلوب اظهار جميع أسئلة التقييم في شاشة واحدة_ (معدل)
ابو جودي replied to Connect Gates's topic in قسم الأكسيس Access
تحمى ايه بالضبط -
مطلوب اظهار جميع أسئلة التقييم في شاشة واحدة_ (معدل)
ابو جودي replied to Connect Gates's topic in قسم الأكسيس Access
خيرا -
مطلوب اظهار جميع أسئلة التقييم في شاشة واحدة_ (معدل)
ابو جودي replied to Connect Gates's topic in قسم الأكسيس Access
معلومة ايه ما فى اى معلومات هنا خالص تقريبا وجزاكم الله خيرا على الدعوات الطيبات اسأل الله تعالى ان يرزقكم والمسلمون اجرها وفضلها بكرمه اضعافا كثيرة بعدد خلقة .. اللهم امين امين امين -
مطلوب اظهار جميع أسئلة التقييم في شاشة واحدة_ (معدل)
ابو جودي replied to Connect Gates's topic in قسم الأكسيس Access
وهاد تعديل طفيف تنيسق شرطى انظر عندم عدم وجود نتيجة فى ال sCOR وعند التحديث للقيم وعند التركيز داخل الحقل وبما انك رجل منذ القدم معنا ياريت تختار افضل اجابة ليتم العلم انه تم الرد وتوصلت للنتيجة المطلوبة ولا يحتاج الى متابعة وو... Evaluation-HR- Final.zip -
مطلوب اظهار جميع أسئلة التقييم في شاشة واحدة_ (معدل)
ابو جودي replied to Connect Gates's topic in قسم الأكسيس Access
شوف يا سيدى انا كنت ناوى اعمل جدول تانى زى ما قلت لك فى الرد النظرى على اعتبار ان التقييم شهرى ولكن بما انه هناك EvalID فتمام انظر الى الجدول tblEvalDetails تم اضافة حقل EvalID ليكون لكل موظف تقيمه الخاص تم ربط الحقول EvalID , EmpID , QuestionID مع بعضهم كمفتاح اساسى حتى لا يتم تكرار نفس الاسئلة لنفس الموظف لنفس رقم التقييم تم عمل استعلام الحاقى باسم qryAddQusToEvaDtils وظيفته الحاق كل الاسئلة فى الجدول tblEvalDetails واضافة رقم الموظف ورقم التقييم فى النموذج الخاص بالتقيم وعند اختيار موطف يتم تشغيل الاستعلام لان الكود تم وضعه عند تحديث مربع سرد الموظف بس خلاص هو بس بيتم احضار كل الاسئلة دفعة واحدة وبيتم وضع التقييم على كل سؤال فى النموذج الفرعى واحد بعد الاخر لان قبل التحديث كان لابد ان يضيف الاسئلة فى النموذج الفرعى تباعا من خلال مربع السرد -
مطلوب اظهار جميع أسئلة التقييم في شاشة واحدة_ (معدل)
ابو جودي replied to Connect Gates's topic in قسم الأكسيس Access
هو انت تريد تعديل ام شرح ؟ انت قلت تريد تعديل والان صار التعديل معك كما تمنيت تماما