الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]حماية النماذج من الفتح إلا عن طريق قاعدة بيانات خارجية

مغلق
بدأه faife في 28 نوفمبر 2007 · 4 رد · 2,316 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

تجدون أخوتي في المثال المرفق ثلاث ملفات أكسس (main-caun-ser) و main هي الملف الرئيسي حيث يحتوي على زرين لفتح الملفين ser-caun وطلبي بارك الله فيكم هو حماية الملفين بحيث لا يتم فتحهم الا عن طريق الملف الرئيسي.....

ودمتم عونا لنارغم انعدام عطائنا.

save.rar

#2

اخي الفاضل

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

اتمنى ان تركز معي قليلا لأن الموضوع به نوع من التعقيد قليلا لغرض فرض الحماية على كائنات معينة قبل فتحها وهي النماذج .

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

اولا في قاعدة البيانات serv.mdb

1. نضع في قاعدة البيانات التي بها النموذج الغير مرغوب في فتحه الوحدة النمطية التالية

Function isLoaded(strName As String, Optional intType As Integer = acForm) As Boolean
isLoaded = SysCmd(acSysCmdGetObjectState, intType, strName) = acObjStateOpen
End Function

2. نقوم الآن بإنشاء نموذج جديد فاضي ونسميه frmHide ويعني النموذج المخفي

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

Private Sub Form_Open(Cancel As Integer)
DoCmd.OpenForm "frmServ"
End Sub

بمعنى انه اذا تم فتح هذا النموذج المخفي frmHide فسوف يتم فتح نموذج الدعم frmServ

4. نقوم الآن باستدعاء الوظيفة Function isLoaded في حدث عند فتح النموذج frmServ بهذه الطريقة

Private Sub Form_Open(Cancel As Integer)
If Not isLoaded("frmHide") Then
MsgBox "عذرا أخي الكريم ... لا يمكن فتح النموذج في الوقت الراهن	لأنه محمي", vbCritical, "تنبيه"
Cancel = True
End If
End Sub

وهذا يعني انه اذا لم يكن النموذج المخفي frmHide مفتوح فلن يتم فتح نموذج الدعم frmServ

حاول تفتح قاعدة بيانات الدعم serv.mdb ثم افتح النموذج frmServ فلن تستطيع لأن نموذج frmHide مغلق ويجب فتحه من القاعدة الرئيسية Main.mdb

5. الآن نقوم بإخفاء النموذج المخفي عن اعين المتطفلين وذلك بالضغط عليه بالماوس الأيمن وهو مغلق من خلال اطار كائنات قاعدة البيانات ثم نختار خصائص ومن ثم نضع علامة صح على السمات : مخفي ( انظر الصوره )

post-15367-1196352491_thumb.gif

post-15367-1196352519_thumb.gif

ولكي نقوم بإخفاء بالكامل ننتقل الى اشرطة قوائم الأكسيس ونختار ادوات ثم نختار منها خيارات ونختار التبويب عرض ثم نزيل علامة الصح من الخيار " كائنات مخفيه " ثم نضغط على زر الأمر " تطبيق " ثم موافق ( انظر الصوره )

post-15367-1196352542_thumb.gif

سنلاحظ اختفاء النموذج المخفي frmHide ولم يعد ظاهرا ابدا والذي ظاهرا امامنا فقط هو نموذج الدعم frmServ

نقوم بتطبيق هذه الخطوات بالكامل على القاعدة الثانية Caun.mdb

1. وضع الوحدة النمطية

Function isLoaded(strName As String, Optional intType As Integer = acForm) As Boolean
isLoaded = SysCmd(acSysCmdGetObjectState, intType, strName) = acObjStateOpen
End Function

2. إنشاء النموذج المخفي frmHide وتطبيق جميع الخطوات عليه

3. عند الخطوة رقم 3 نغير اسم النموذج المطلوب فتحه وهو frmCaun

انتهينا الآن من تجهيز القاعدتين الأولى والثانية وننتقل الى القاعدة الرئيسية Main.mdb

حيث نضع تحت زر الأمر الخاص بفتح نموذج الخدمات frmServ في القاعدة الثانية الكود التالي

Private Sub CmdSer_Click()
Dim App As Access.Application
Dim strPath As String
Set App = New Access.Application
strPath = Application.CurrentProject.Path & "\serv.mdb"
With App
	.Visible = True
	.DoCmd.Maximize
	.OpenCurrentDatabase strPath
	.DoCmd.OpenForm "frmHide", , , , , acHidden
End With
Set App = Nothing
End Sub

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

بنفس الطريقة لزر الأمر الخاص بفتح نموذج الإحصائية frmCaun الموجود في القاعدة الثانية Caun.mdb نضع هذا الكود

Private Sub CmdCn_Click()
Dim App As Access.Application
Dim strPath As String
Set App = New Access.Application
strPath = Application.CurrentProject.Path & "\caun.mdb"
With App
	.Visible = True
	.DoCmd.Maximize
	.OpenCurrentDatabase strPath
	.DoCmd.OpenForm "frmHide", , , , , acHidden
End With
Set App = Nothing
End Sub

حيث سيتم استدعاء برنامج الأكسيس لفتحه ثم فتح قاعدة البيانات الموجوده ايضا في نفس مجلد القاعدة الرئيسية ثم يتم فتح النموذج المخفي في وضع الإخفاء ( اي لن يكون ظاهرا اثناء الفتح ) في القاعدة cuan.mdb وطبعا اذا تم فتح النموذج المخفي سيتم مباشرة فتح نموذج الإحصائية .

وهذا برنامج بعد التعديل

save.rar

بالتوفيق

1
#3

بارك الله فيك أختي الفاضلة سباقة دائما للنفع أثابك الله عمل رائع وهو المطلوب....

#4

أشكرك يا مشرفتنا العزيزة

حل رائع و بسيط و به أفكار ملهمه بالفعل . :clapping:

200px-Dreamworks.jpg
#5

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

تمت الإجابة على الموضوع

إدارة الفريق العربي للبرمجة

1

هذا الموضوع مغلق.

مواضيع مشابهة