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

كود للتحكم في خصائص قاعدة البيانات

مغلق
بدأه النجيب@ في 31 أكتوبر 2006 · 38 رد · 7,011 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#26

واذا لم نجد رد من الاخ النجيب هل سوف لا تضعين هذا المثال مفتوح نريد الاستفادة يا أختي الغالية زهرة

:lol: نداء الي الاخ النجيب رد الله يخليك :rolleyes: عاوزين نستفاد والاخت زهرة تفتح لنا الملف :( هاها لسه مش عاوز يرد :lol:

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#27

اخي محمد فؤاد

اتمنى ان اجد اجابه من الأخ النجيب لأبلغكم بطريقة عمل البرنامج

:) :) :) :) :) :)

#28

المعذرة من جميع الاخوة لانشغالي في هذه الفترة

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

وللعلم ايضا انني قمت بالرد على مثال الاخت زهرة الاول وبالنسبة الى مثال ( تشفير خيارات بدء التشغيل ) المسألة لا تحتاج الى راي بانه رائع جداً ومدهش

{لايزال المرء عالماً ماتعلم فاذا قال انه عالم فقد جهل }

رحم الله القائل

ومعذرة من جميع الاخوان وشكراً

#29

اخي الفاضل النجيب

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

هل من الممكن ان تقرأ هذه الردود حسب تسلسلها وتخبرنا اين ابلغتنا ان الاجابه هي المطلوبه فأنت لم تذكر شيء من هذا القبيل والذي فهمته منك انك لم تصل الى ما تريد

فقد وضعنا لك جميع الحلول الممكنه .

اخي عندما نسأل سؤال ولم نحصل على اجابه له نقول لم يصل المطلوب بعد وعندما نحصل على الاجابه فإننا نصرح ونقول نعم هذا هو المطلوب حتى لا نبقى في دوامة الاخذ والرد في السؤال والاجابه بدون الوصول الى نتيجه .

النجيب@ كتب:
سؤال الى الخبراء والمهتمين . هل بالامكان وضع كود للتحكم في خصائص قاعدة البيانات عند الفتح .وبدون ان يتم فتح اي نموذج .

ارجو ممن له خبرة اعطائي مثال وله جزيل الشكر والتقدير

zahrah كتب:
اخي الفاضل

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

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

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

وضعت لك النموذج يفتح مع بدء التشغيل بإمكانك ازالة اسم النموذج فقط من بدء التشغيل والاكتفاء بالكود

EN_DIS_WINDOW.rar

zahrah كتب:
تم تطوير المثال السابق واضافة خصائص جديده اضافية للتحكم الكامل بخضائص قاعدة البيانات ويشمل على 26 وظيفه

المثال بعد التطوير

Full_Control_Options.rar

zahrah كتب:
بارك الله فيك اخي محمد فؤاد على هذه الكلمات التي قد تكون اكبر مني

اخي الفاضل النجيب

لقد وضحت هذه النقطه في المشاركه وهذه الامكانية موجوده في البرنامج اذا كيف نستعملها

1. انظر للبرنامج الان بعد التعديل بناء على طلبك فإن اول ما تفتح قاعدة البيانات سيتم فتحها على اطار قاعدة البيانات قسم النماذج .

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

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

2. ستلاحظ انه يتم فتح قاعدة البيانات بدون فتح اي نموذج وبدون اظهار اطار الاكسيس بل ستظهر لك الشاشة الرمادية لبرنامج الاكسيس .

3. لمشاهدة اطار الاكسيس انتقل الى اشرطة قوائم الاكسيس واختر اطار ثم اظهار ثم موافق ليفتح لك اطار الاكسيس الذي يحتوي على كائنات القاعدة

Full_Control_Options_up.rar

النجيب@ كتب:
شكراً جزيلا للجميع بدون استثناء

ولكن لم اصل الى الغاية التى ارجوها .

قد يكون طرحي للسؤال قاصراً . ولم استطع طرح الفكرة بالشكل المطلوب

وبالنسبة لمثال / العزيزة {زهرة}فهو بلا شك رائع والكل سيستفيد منه .

ولكم خالص تحياتي وتقديري .

اخوكم النجيب ،،،

zahrah كتب:
اخي الفاضل النجيب

هذه العبارة كانت اخر تفصيل لك للفكره وبناء عليه تم تفسير الفكره الى كود برمجي . انظر عباراتك مفصله :

1. عند تحديد خيار اظهار اطارقاعدة البيانات

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

2. وعند اغلاقها وفتحها مرة اخرى يقوم الكود تلقائاً باخفاء اطار قاعدة البيانات

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

3. بدون فتح اي نموذج

من حوار بدء النشغيل قمنا بمسح اسم النموذج الذي كان يعمل في بدء التشغيل واصبح none

اذا رغبت ايضا ان اقوم بإضافة هذا الامر برمجيا وهو ادراج اسم النموذج بالكود فلا يوجد مانع

وان اردت ايضا تغيير اسم القاعدة بالكود فلا يوجد مانع فكل شيء ممكن .

هذا ما فهمته منك فهل من الممكن توضيح الفكره بشكل اوضح فلا يوجد مستحيل او لا يمكن تحقيقه اذا فهمنا ماذا تريد بالضبط

النجيب@ كتب:
شكراً جزيلا لجميع الاخوة المشرفين والاعضاء {من اعماق قلبي}

ساطرح سؤال اخر قد يوضح الفكرة اكثر ....

هل بالامكان وضع كلمة سر للدخول الى خيارات بدء التشغيل؟

والشكر الجزيل للجميع . وبالاخص الاخت {زهرة}

zahrah كتب:
بارك الله اخي النجيب

نعم يمكن وضع رقم سري على خيارات بدء التشغيل

تفضل البرنامج

StartUp.rar

#30

عفواً

الملف لا يعمل :(

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#31

اخي محمد فؤاد

ماذا تقصد بالملف لا يعمل

قمت بتحميل الملف وفك ضغطه وفتحه ولا يوجد به مشكله

#32

أختي الغالية زهرة

مرفق صورة من خطأ في البرنامج برجاء التوضيح ما هذا الخطأ ؟

لا شيء يعمل بالملف

http://www.transferbigfiles.com/Download.a...19-8a54d30d0936

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#33

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

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

جميع الاحتمالات وارده

البرنامج تم عمله على نظام ويندوز XP PRO عربي واكسيس 2003 عربي

#34

اعزائي الكرام

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

طريقة عمل البرنامج

1. تم انشاء وظيفة بإسم ZA

Public Function ZA()
ChangeProperty "StartupShowDBWindow", dbBoolean, True	   '  خاصية اظهار اطار الاكسيس مفتوحة
ChangeProperty "StartupShowStatusBar", DB_Boolean, False	' شريط الحالة مغلق
ChangeProperty "AllowBuiltinToolbars", DB_Boolean, False		'  اشرطة الادوات المضمنة مغلقه 
ChangeProperty "AllowFullMenus", DB_Boolean, False				 '  اشرطة الادوات الكاملة مغلقة
ChangeProperty "AllowSpecialKeys", DB_Boolean, True			   '  السماح لمفاتيح الوصول الخاصة مفتوح
ChangeProperty "AllowToolbarChanges", DB_Boolean, False	  '  السماح بتغيير اشرطة الادوات مغلق
ChangeProperty "AllowBypassKey", DB_Boolean, True				 '  السماح بإستخدام مفتاح الشفت مفتوح 
TimerId = SetTimer(0, 0, 1, AddressOf TimerProc)
 str_Title = "كلمة المرور مطلوبة"
 str_Prompt = "ادخل كلمة المرور"
If InputBox(str_Prompt, str_Title) = "1" Then
   MsgBox "كلمة المرور صحية", , "تفضل بالدخول"
   DoCmd.RunCommand acCmdStartupProperties
Else
MsgBox "كلمة المرور غير صحيحة", , "الرجاء التأكد من كلمة المرور"
End If
End Function

هذه الوظيفة يتم استدعاؤها عن طريق ماكرو بإسم za حيث تقوم هذه الوظيفة بعمل اللازم عند فتح بدء التشغيل فتقوم بإزالة كل علامات الصح من امام الخيارات وفي كل مره تحاول فتح القاعدة تكون هذه الخيارات ملغاة ولا تستطيع الدخول عليها ثم يتم تنفيذ كود الرقم السري بعدها مباشرة فإن كان صحيحا تم فتح خيارات بدء التشغيل والا لن يسمح بفتحه .

يتم التحكم في خصائص بدء التشغيل من خلال استدعاء الوظيفة ChangeProperty(strPropName

Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
Dim dbs As Database, prp As Property
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True
Change_Bye:
Exit Function
Change_Err:
If Err = conPropNotFoundError Then
Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
ChangeProperty = False
Resume Change_Bye
End If
End Function

نظرا لان برنامج الاكسيس لا يمكنه استدعاء او تشغيل اوامر صريحه مثل الدوال مباشرة ولكن يتم تشغيلها عن طريق ماكرو وهو الذي يتم وضعه مع اجراء بدء التشغيل ليتم فتح الوظيفة ZA السابقة .

ولغرض جعل الحروف والارقام تظهر على شكل نجوم في مربع الرقم السري تم استخدام الدوظيفة TimerProc

Declare Function SetTimer Lib "user32" (ByVal hWnd _
As Long, ByVal nIDEvent As Long, ByVal uElapse _
As Long, ByVal lpTimerFunc As Long) As Long
Declare Function KillTimer Lib "user32" _
(ByVal hWnd As Long, ByVal nIDEvent As Long) _
As Long
Declare Function FindWindowEx Lib "user32" _
Alias "FindWindowExA" (ByVal hWndParent As _
Long, ByVal hWndChildAfter As Long, ByVal _
lpClassName As String, ByVal lpWindowName _
As String) As Long
Declare Function Sendmessagebynum _
Lib "user32" Alias "SendMessageA" (ByVal _
hWnd As Long, ByVal wMsg As Long, ByVal _
wParam As Long, ByVal lParam As Long) _
As Long

Const EM_SETPASSWORDCHAR = &HCC
Public str_Title$, TimerId&

Sub TimerProc(ByVal hWnd As Long, ByVal uMsg As Long, _
ByVal uElapse As Long, ByVal lpTimerFunc As Long)
KillTimer 0, TimerId
Dim lng_Hwnd&
lng_Hwnd = FindWindowEx(0, 0, "#32770", _
  Trim(str_Title))
lng_Hwnd = FindWindowEx(lng_Hwnd, 0, _
  "Edit", vbNullString)
If lng_Hwnd Then
  Sendmessagebynum lng_Hwnd, EM_SETPASSWORDCHAR, 42, 0
End If
End Sub

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

اذا نستنج من هذا انه يمكن استدعاء وظيفه رئيسية من داخل وظيفة فرعية وتستدعى جميعها بواسطة ماكرو معد لهذا الغرض

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

الرقم السري لبدء التشغيل هو 1

StartUP_OPEN.rar

#35

اشتغل الملف

ألف شكر لكي أختي الغالية زهرة

أفكارك فعلاً غاية في الروعة

شكراً مرة اخري

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#36

شكراًَ جزيلاً للاخت زهرة - فعلاً مجهود كبير - وطريقة ذكية

والمعلومة التى اوردتها(برنامج الاكسيس لا يمكنه استدعاء او تشغيل اوامر صريحه مثل الدوال مباشرة ولكن يتم تشغيلها عن طريق ماكرو) فيها الكثير من الفائدة

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

شكرا جزيلاً مرة اخرى والسلام....

#37

ألف شكر أخواني على المساعدات اللتي بحق ناجمة عن عناء وبحث وتعب

وشكراً

#38

السلام عليكم

الله يجزاك الف خير اختي زهرة على هذي المجهودات الجبارة والعظيمة في توصيل امكانيات الاكسيس للجميع

انا عندي سؤال واستحملوني لاني مبتدئ في الاكسيس

انا عملت في الفجول بيسك واعرف كيفية عمل شريط مهام يحتوي على اسماء انا اضعها مثل ...ملف .. خروج .. الخ

لكن كيف اعمل ذلك في الاكسيس ... بعد ان احذف شريط المهام من startup

وشكرا

الشيء الاخر بخصوص الموضوع الذي هو محور الحديث هنا

كيف اعمل كود خاص لكل عملية من 26 عملية لاظهار مهامها

بمعنى هل استطيع ان اقص الكود الخاص مثلا باظهار واخفاء اطار الاكسيس ..وفي اي فورم تحديدا اضعه ( بالتفصيل والله ياليت ) ...

الاخ النجيب اثار السؤال وعندما لم يجد ردا لسؤاله اتجه لسؤال اخر عن الرقم السري ..لكني تحمست اكثر منه على معرفة طريقة عمل اي كود مثل اخفاء اطار الاكسيس مثلا

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

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

والسؤال الاهم ... اين اضع هذا الكود هل اضعه في ماكرو مثلا ..او اضعه في فورم البداية

ارجوا عدم اهمال هذا السؤال لانه امتداد لجميع ماذكر ...مع احترامي الشديد لجميع الردود من الاخوان وخاصة الاخت زهرة ...ذات البحر والعلم الغزير

وشكرا

بمعنى اخر..

لكي لااحتاج لازرار تقوم بهذه المهمة ..ولكن برمجيا

اسف على الاطالة

وكل عام وانتم بخير جميعا

ملاحظة: ربما شرحتوا الجواب عن السؤال الاخير في ما مضى من ردود ..لكن اعذروني ففهمي على (قدي) ..

شكرا

تم تعديل هذه المشاركة بواسطة مبرمج قاعدة بيانات مبتدى في 4 يناير 2007 في 16:11

#39

الأخت الفاضلة زهرة

بداية أحب أن أشكرك على المجهود الرائع الذي تقومين به في هذا المنتدى وفي بقية المنتديات المتخصصة في مجال البرمجة

ولا أستثني من الشكر كل الأساتذة الأفاضل الذين يسعون دائما لنشر العلم والمعرفة على كل من يطلبها

فيما يخص هذا الموضوع فأنا أعلم أنه قد مضى على هذا الموضوع من زمن ما مضى ولكن استوقفني المثال الذي أدرجتيه في المشاركة رقم 23 من هذا الموضوع

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

مع أن الملف بصيغة mdb وغير محول إلى mde

فضلا وليس أمرا

هل لك أن تشرحي لنا كيفية قفل ملف الأكسس بهذه الطريقة

وجزاك الله عني وعن كل من يستفيد من خبرتك كل خير

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…