• 0
esamesam1000

كود لجعل البرنامج demo لفترة

سؤال

اخواني انتهيت من برنامجي

واود تسليمه ولكن للعمل لمدة 4 شهور

استخدمت الكود التالي ولكن لم يصلح ارجو المساعدة

dim a as date

b=1/4/2006

a= date

if a>=b then

msgbox

docmd quite

else

contunue

لكن لا تتم عملية المقارنة بشكل صحيح يبدو انه معترض على date

فهل من مساعد ومصحح للكود

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

7 إجابة على هذا السؤال .

  • 0

اخي الكريم عصام

السلام عليكم ورحمة الله وبركاته

سأشرح لك مثالين على طريقة صنع برامج تجريبيه وتستطيع اختيار احداها حسب ما تراه مناسبا لك .

الطريقة الاولى : بواسطة تاريخ اول تشغيل للبرنامج وبعد انتهاء التاريخ المحدد له سيتم حذف جدول او نموذج او اي كائن من البرنامج ليتم تعطيل البرنامج والخروج النهائي وعدم تشغيله .

الخطوات :

1. انشئ جدول بإسم T1 وضع به حقل اسمه Date1 ونوع الحقل تاريخ / وقت ولا تضع في الجدول اي شيء وليس له مفتاح اساسي .

2. ضع هذا الكود او الدالة المسئولة عن حذف الجدول الذي قمنا بإنشاؤه عند انتهاء وقت البرنامج في نموذجك المطلوب ويكون الكود في قسم العام ( جنيرال ) General

Function TableDelete() On Error Resume Next
Dim MyDb As Database
Dim MyTable As TableDef
Dim MyTableCount As Integer

Set MyDb = Application.CurrentDb
MyTableCount = MyDb.TableDefs.Count
For i = MyTableCount - 1 To o Step -1
Set MyTable = MyDb.TableDefs(i)
MyTableName = MyTable.Name
If Left$(MyTableName, 4) <> "Msys" Then MyDb.TableDefs.Delete (MyTableName)
Next
MyDb.Close
End Function

ضع هذا الكود في حدث عند الفتح للنموذج

Private Sub Form_Open(Cancel As Integer) On Error GoTo MyErr:

Dim MyFirst As Date
Dim MyInDate
Dim MyTableName As String
MyInDate = DFirst("[Date1]", "[T1]")
If Not IsNull(MyInDate) Then
MyFirst = MyInDate
Else
DoCmd.SetWarnings False
DoCmd.RunSQL ("INSERT INTO T1 ( Date1 ) SELECT Date();")
DoCmd.SetWarnings True
MyFirst = Date
End If

If MyFirst <= Date - 3 Then ' الوقت هنا تم تحديده بثلاثة ايام
MsgBox "مضى على تشغيل البرنامج 3 أيام وسيتم ايقاف البرنامج"
Call TableDelete
Else
If MyFirst > Date Then
MsgBox "تم التلاعب بتاريخ الجهاز وسيتم ايقاف تشغيل البرنامج"
Call TableDelete
End If
End If
Exit Sub

MyErr:
If Err.Number = 3078 Then
MsgBox " تم تعطيل البرنامج" & vbCrLf & vbCrLf & _
" مع السلامة " & vbCrLf & vbCrLf & _
" أختكم زهره", vbOKOnly + vbMsgBoxRight + vbExclamation
DoCmd.Quit
Else
MsgBox Err.Number & vbCrLf & Err.Description
End If

End Sub

نلاحظ من خلال هذا الكود انه اذا انتهت مدة البرنامج حسب ما تم تحديده له وهي ثلاثة ايام ( وتستطيع زيادتها الى 120 يوم حوالي ثلاثة اشهر ) وبعدها يتوقف البرنامج عن العمل وطريقة ايقاف البرنامج تعتمد على حذف كائن من قاعدة البيانات سواء جدول او نموذج او حتى قاعدة البيانات كلها وبالطبع ايضا يمكن اخفاء الكائن المطلوب سواء جدول او نموذج او ان نقوم بوضع كلمة سر على الوحدات النمطية للبرنامج حتى لا يتم التعديل عليه .

وهذا مثال مصغر على ذلك

Demo1.rar

للتجربه حاول العبث بتاريخ الجهاز وذلك بزيادته الى خمسة 5 ايام وانظر النتيجه ( سيتم حذف الجدول مباشرة ولن يعمل البرنامج وعليك انشاء جدول جديد كما في الشرح وتغيير التاريخ في الكود كما كان .

الطريقة الثانية : بتحديد تاريخ محدد للبرنامج لا يمكن تجاوزه وبعدها يتم ايقاف البرنامج او حذفه من الجهاز .

هذه الطريقة اسهل من الطريقة السابقة حسب الخطوات التالية :

ضع هذا الكود فقط في حدث عند الفتح للنموذج المطلوب

Private Sub Form_Open(Cancel As Integer)
If Date > #1/1/2006# Then
MsgBox " انتهاء وقت البرنامج" & vbCrLf & vbCrLf & _
" مع السلامة " & vbCrLf & vbCrLf & _
" اختكم زهره ", vbOKOnly + vbMsgBoxRight + vbExclamation
DoCmd.Quit
Else
x = MsgBox("الوقت المتبقي" & Str(#11/18/2005# - Date) & " هل تريد الاستمرار يوم", vbYesNo, "الوقت المتبقي على البرنامج")
If x = vbNo Then
DoCmd.Quit
End If

End If
End Sub

نلاحظ من هذا الكود انه يعتمد على التاريخ بحيث يقارن بين التاريخ المعطى له في اول الكود والتاريخ المحدد له في الرسالة ويقوم بحساب الفرق بينهما ويعطيك النتيجة المتبقية وعند وصول التاريخ الى صفر يوم فإنه يقوم بإيقاف تشغيل البرنامج مباشرة

وهذا مثال مصغر على ذلك

Demo2.rar

للتجربه حاول العبث بتاريخ الجهاز وانظر للنتيجه ( لكي يعمل البرنامج من جديد قم بزيادة التاريخ في الكود الى تاريخ اكبر من تاريخ الجهاز )

اختكم

زهره

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بارك الله فيك وفي علمك ...

فكرة ممتازة جدا ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اختنا الكريمة انا عاجز جدا عن الشكر

وجزاكي الله مني كل الخير وبارك الله فيكي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

محتاجين منك زهرة

توضيح أكتر شوية

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

بارك الله فيك اختنا الكريمة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

الف اي الاستاذه زهره

ولكن احب ان الفت انتبها ال ملحوظه صغيره بان هناك ايضا طريه للتلاعب بالبرنامج

بحيث يمكن قبل انتهاء الثلاته ايام المسموح بهم مثل اليوم الثاني مثلا يمكن ارجاع التاريخ الي اليوم الاول ودخول البرنامج عادي جدا

والف شكر 

بسم الله الرحمن الرحيم

الف شكر الي الاستاذه زهره

ولكن احب ان الفت انتبها ال ملحوظه صغيره بان هناك ايضا طريه للتلاعب بالبرنامج

بحيث يمكن قبل انتهاء الثلاته ايام المسموح بهم مثل اليوم الثاني مثلا يمكن ارجاع التاريخ الي اليوم الاول ودخول البرنامج عادي جدا

والف شكر 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

اسف علي الاطاله وضياع وقت استاذتنا زهره

ولكني فعلا محتاج اجابه علي هذه الفكره

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .