alexandrien قام بنشر أبريل 30, 2012 قام بنشر أبريل 30, 2012 بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته الأخوة والأخوات مشرفي وأعضاء المنتدى الكريم قمت بتصميم قاعدة بيانات وقمت بإدارج كود ووضعته في نموذج بدء التشغيل حيث يعمل هذا الكود على حذف الجداول والعلاقات بين الجداول في تاريخ معين وهذا هو الكود : Private Sub Form_Load() If Date = #10/1/2012# Then 'لحذف العلاقات بين الجداول Dim DB As DAO.Database, i As Integer Dim totalRelations As Integer Dim RS As Recordset Dim TableName As String Set DB = CurrentDb() totalRelations = DB.Relations.Count If totalRelations > 0 Then For i = totalRelations - 1 To 0 Step -1 DB.Relations.Delete (DB.Relations(i).Name) Next i End If 'لحذف الجداول Set RS = DB.OpenRecordset("Select name from MsysObjects where (type = 1 and name not like 'Msys*')") Do While Not RS.EOF TableName = RS("Name") On Error Resume Next DoCmd.DeleteObject acTable, TableName RS.MoveNext Loop RS.Close End If End Sub والكود يعمل بشكل ممتاز جدا وعندما قمت بتقسيم البرنامج لكي يعمل على الشبكة فأصبح البرنامج مقسم بهذا الشكل : قاعدة الجداول فقط واسمها : برنامج متابعة السيارات_be.mdb قاعدة النماذج والتقارير والجداول المرتبطة واسمها : برنامج متابعة السيارات.mdb وبعدها لم يعمل الكود وأعتقد أن الكود لم يجد الجداول في القاعدة التي تحتوي على النماذج ( برنامج متابعة السيارات.mdb ) لذلك أرجو منكم التعديل على الكود حتى يقوم بحذف الجداول في القاعدة الثانية ( برنامج متابعة السيارات_be.mdb ) مع العلم أن القاعدتين موجودين في الدرايف D داخل مجلد ( برنامج متابعة السيارات ) وهل سوف يعمل الكود إذا ما تم وضعه على الجهاز الآخر الذي يشارك قاعدة البيانات ؟ مع جزيل الشكر والتقدير لكل من ساهم في الحل
محمد ايمن قام بنشر أبريل 30, 2012 قام بنشر أبريل 30, 2012 (معدل) فكرة قد خطرت في بالي لماذا لا تضع كود يقوم بفتح القاعدة التي تحتوي على الجداول و تضع فيها نموذجا يعمل عند بدء التشغيل ثم تضع في هذا النموذج زر ينفذ لك طلبك كود فتح قاعدة بيانات من قاعدة اخرى ShellExecute Me.hwnd, "open", "D:\11.mdb", "", "", 1 طبعا 11 هو اسم القاعدة المراد تشغيلها وضع هذا الكود في قسم التصريحات العامة قبل اي كود Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long ملاحظة هذه الاكواد من صنع معلمنا ( ابا خليل ) جزاه الله كل خير و جزاه الجنة تم تعديل مايو 1, 2012 بواسطه أبو آدم :احتواء الكود ضن المحرر
ابوخليل قام بنشر مايو 1, 2012 قام بنشر مايو 1, 2012 جزاك الله خيرا ولكنها ليست من صنعي وانما وجدتها فنقلتها ورب حامل فقه الى من هو افقه منه الاخ alexandrien الغالب ان الحذف يتم على الجداول المرتبطة في القاعدة الحالية . وتستخدم هذه الخطوة لربط جداول اخرى من قاعدة اخرى ولا يتصور حذف جداول تحتوي على بيانات لان هذا شيء خطير وعلى كل حال كود الحذف مقدور عليه ، فقط لو بينت لنا الغاية من ذلك
محمد ايمن قام بنشر مايو 1, 2012 قام بنشر مايو 1, 2012 جزاك الله كل خير اخي ابا خليل والله اخجلتني بكلامك جزاك الله خيرا ولكنها ليست من صنعي وانما وجدتها فنقلتها ورب حامل فقه الى من هو افقه منه
alexandrien قام بنشر مايو 1, 2012 الكاتب قام بنشر مايو 1, 2012 جزاك الله خيرا ولكنها ليست من صنعي وانما وجدتها فنقلتها ورب حامل فقه الى من هو افقه منه الاخ alexandrien الغالب ان الحذف يتم على الجداول المرتبطة في القاعدة الحالية . وتستخدم هذه الخطوة لربط جداول اخرى من قاعدة اخرى ولا يتصور حذف جداول تحتوي على بيانات لان هذا شيء خطير وعلى كل حال كود الحذف مقدور عليه ، فقط لو بينت لنا الغاية من ذلك أولاً أحب أن أشكر الأخ محمد أيمن على الرد على سؤالي له جزيل الشكر والتقدير ثانياً أستاذنا الغالي أبو خليل أشكر لك تجاوبك على الموضوع والغرض من هذا الكود هو حماية البرنامج حيث أنني أقوم به لكي يعمل بشكل تجريبي وعند الوصول لتاريخ معين يقوم الكود بحذف الجداول المرتبطة والجداول الأساسية في القاعدتين هذا هو الغرض الرئيسي ولك جزيل الشكر
ابوخليل قام بنشر مايو 1, 2012 قام بنشر مايو 1, 2012 هذه الطريقة غير صالحة والسبب ان العميل خلال الفترة التجريبية قد قام بادخال بيانات رئيسية ومهمة فخلال اسبوع قد يدخل آلاف السجلات فما بالك بشهر ونحوه ، ثم نأتي ونلغي كل مجهوده . والاحسن حسب طريقتك طبعا ان يتم حذف بعض الكائنات الرئيسة من القاعدة الامامية ، فهنا لا يمكنه الاستفادة من البرنامج ، ويمكنك بعد شرائه للمنتج ان ترسل له نسخة من الواجهات ، وهنا نكون حافظنا على بيانات العميل وايضا حافظناعلى حقوقنا , اما الجداول فالاولى ان تكثف عليها الحماية وهذه الحماية بحد ذاتها مطلب للعميل
محمد ايمن قام بنشر مايو 1, 2012 قام بنشر مايو 1, 2012 اخي الكريم لدي طريقة افضل وهي الربط مع الريجستري بتاريخ اي جعل البرنامج تجريبي لمدة ( 15 يوم ) مثلا وعند انقضاء هذه المدة لايمكن فتح البرنامج الا بادخال رقم التسجيل سارفع لك مثالا ولكن امهلني بعض الوقت
محمد ايمن قام بنشر مايو 1, 2012 قام بنشر مايو 1, 2012 هذا هو المثال كما وعدتك يقوم البرنامج بالربط مع الريجستري ويعطي المستخدم مدة 15 يوم للعمل طبعا في حال تلاعب المستخدم في تاريخ الجهاز لن يفتح البرنامج :wink2: وبعد انقضاء المدة التجريبية تظهر رسالة بانتهاء الفترة التجريبية عندها ياتي دورك اخي الكريم في اعطاء المستخدم النسخة الكاملة اما الجداول فالاولى ان تكثف عليها الحماية وهذه الحماية بحد ذاتها مطلب للعميل استاذنا ابا خليل هل لديك افكار حول حماية الجداول !!
محمد ايمن قام بنشر مايو 2, 2012 قام بنشر مايو 2, 2012 عفوا هذا المرفق نسخة تجريبية بواسطة الربط مع الريجستري.rar 1
alexandrien قام بنشر مايو 3, 2012 الكاتب قام بنشر مايو 3, 2012 هذه الطريقة غير صالحة والسبب ان العميل خلال الفترة التجريبية قد قام بادخال بيانات رئيسية ومهمة فخلال اسبوع قد يدخل آلاف السجلات فما بالك بشهر ونحوه ، ثم نأتي ونلغي كل مجهوده . والاحسن حسب طريقتك طبعا ان يتم حذف بعض الكائنات الرئيسة من القاعدة الامامية ، فهنا لا يمكنه الاستفادة من البرنامج ، ويمكنك بعد شرائه للمنتج ان ترسل له نسخة من الواجهات ، وهنا نكون حافظنا على بيانات العميل وايضا حافظناعلى حقوقنا , اما الجداول فالاولى ان تكثف عليها الحماية وهذه الحماية بحد ذاتها مطلب للعميل كلامك مضبوط يا أخي وشكراً لك على وجهة نظرك المهمه فعلاً جزاك الله خيرا
alexandrien قام بنشر مايو 3, 2012 الكاتب قام بنشر مايو 3, 2012 (معدل) اخي الكريم لدي طريقة افضل وهي الربط مع الريجستري بتاريخ اي جعل البرنامج تجريبي لمدة ( 15 يوم ) مثلا وعند انقضاء هذه المدة لايمكن فتح البرنامج الا بادخال رقم التسجيل سارفع لك مثالا ولكن امهلني بعض الوقت أخي العزيز محمد أيمن والله فكرتك هذه أعجبتني وإن شاء الله سوف أقوم بتحميل الملف وتجربته على برنامجي وجزاك الله خيرا تم تعديل مايو 3, 2012 بواسطه أبو آدم : حذف الاقتباسات المكررة
رولي قام بنشر سبتمبر 22, 2023 قام بنشر سبتمبر 22, 2023 السلام عليكم هل يمكن للعميل أن يصل إلى ملف الرجيستري الخاص بالبرنامج ويحذفه؟ أرجو الرد مشكورين
Shivan Rekany قام بنشر سبتمبر 22, 2023 قام بنشر سبتمبر 22, 2023 12 ساعات مضت, رولي said: هل يمكن للعميل أن يصل إلى ملف الرجيستري الخاص بالبرنامج ويحذفه؟ لا , لا يمكن لانه لا يعرف ماذا حفظت في ريجيستري بالتفصيل , واذا عرف ذلك نعم يمكن ... بهذه الطريقة حسب المثال الاعلى DeleteSetting "aa", "bb", "trial" 1 1
الحلبي قام بنشر سبتمبر 23, 2023 قام بنشر سبتمبر 23, 2023 14 ساعات مضت, Shivan Rekany said: لا , لا يمكن لانه لا يعرف ماذا حفظت هلا ومرحب بمعلمنا /shivan طب هل لو قام مستخدم بفرمته الجهاز اى تحميل نسخة جديدة من ويندوز هل يتأثر الريجسترى بذلك جزاكم الله كل خير
رولي قام بنشر سبتمبر 23, 2023 قام بنشر سبتمبر 23, 2023 شكرا جزيلا أخي لكن هل يمكن تغيير aa , bb , trial ؟ أم أن هذه أكواد ثابتة؟ DeleteSetting "aa", "bb", "trial"
Shivan Rekany قام بنشر سبتمبر 24, 2023 قام بنشر سبتمبر 24, 2023 (معدل) في 23/9/2023 at 11:22, رولي said: لكن هل يمكن تغيير aa , bb , trial ؟ أم أن هذه أكواد ثابتة؟ نعم يمكنك تغيره باسماء اللي حضرتك تريده في 23/9/2023 at 10:39, الحلبي said: طب هل لو قام مستخدم بفرمته الجهاز اى تحميل نسخة جديدة من ويندوز هل يتأثر الريجسترى بذلك نعم سيحذف كل شيء في ريجيستري وسيعود الي وضعه الاصلي تم تعديل سبتمبر 24, 2023 بواسطه Shivan Rekany 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.