اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

ابو جودي

أوفيسنا
  • Posts

    6,521
  • تاريخ الانضمام

  • Days Won

    169

كل منشورات العضو ابو جودي

  1. DCount("*", "frm_RD", "report_No =" & Me.txtSearch) الخطأ هنا دوال المجال هموما تعمل مع الجداول او الاستعلامات وليس النماذج راجع هذه المشاركة لتتعلم بناء كود دوال المجال
  2. طيب اتفضل راجع الموضوع الاتى وراجع المشاركة الاتيه لنفس الموضوع تجد فيها مربع السرد المتعدد اما بخصوص اخفاء كافة الاستعلامات والنماذج والتقارير والماكرو والوحدات النمطية (الاوامر البرمجية ) او المديول بحيث لا تظهر عند اظهار الملفات المخفية لا بمكن عمل ذلك الا مع الجداول فقط
  3. طيب الشئ بالشئ يذكر انا لم اقل انه الاصح ولا الاكثر امانا بل هو ليس امن ولا انصح باستخدام الكود مع باقى جداول قاعدة البيانات لان اخفاء الجداول بهذا الكود ينتج عنه مشكلة فى الحقول الى تعتمد على مربع السرد المتعدد وتفقد البيانات منها لذلك انا فى سلسلة الافكار والتى تخص حماية قاعدة البيانات سوف أكتفى فقط باخفاء الجدول الخاص ببيانات التفعيل لقاعدة البيانات وطبعا سوف اتجنب فيها استخدام حقل يعتمد على مربع السرد متعدد البيانات
  4. 4- انشاء قاعدة البيانات الأمامية مأمنة بكلمة مرور Public Function DoCreatDatabaseByPassword( _ Optional strDbPath As String = "", _ Optional strNewDbName As String = "", _ Optional strPassNewDb As String = "" _ ) On Error GoTo ErrorHandler Dim wrkDefault As Workspace Dim db As DAO.Database If IsNull(strDbPath) Or strDbPath = Null Or strDbPath = vbNullString Or strDbPath = Empty Or strDbPath = "" Or Len(strDbPath) = 0 Then strDbPath = CurrentProject.Path & "\" If IsNull(strNewDbName) Or strNewDbName = Null Or strNewDbName = vbNullString Or strNewDbName = Empty Or strNewDbName = "" Or Len(strNewDbName) = 0 Then strNewDbName = "NewDB.mdb" If IsNull(strPassNewDb) Or strPassNewDb = Null Or strPassNewDb = vbNullString Or strPassNewDb = Empty Or strPassNewDb = "" Or Len(strPassNewDb) = 0 Then strPassNewDb = "00" Set wrkDefault = DBEngine.Workspaces(0) If Dir(strDbPath & strNewDbName) <> "" Then Kill strDbPath & strNewDbName Set db = wrkDefault.CreateDatabase(strDbPath & strNewDbName, dbLangGeneral & ";PWD=" & strPassNewDb) strDbPath = vbNullString strNewDbName = vbNullString strPassNewDb = vbNullString Set wrkDefault = Nothing db.Close Set db = Nothing ExitHandler: Exit Function ErrorHandler: MsgBox "Error Number : " & Err.Number & vbNewLine & "Error Description : " & Err.Description Resume ExitHandler End Function التطبيق فى القاعدة المرفقة .. يتبع ... 05- CreatDatabaseByPassword.accdb
  5. العفو منكم يا باش مهندس انت تأمر وتفعل ما تريد
  6. شئ من اتنين 1- الاوفيس غير مفعل 2- هناك ملفات مفقودة ممكن اكلمك فى رسالة خاصة لو موافق قولى موافق ممكن احاول اساعدك ريموت ان امكن
  7. اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف --- قد لا يجد من يستطيع تقديم المساعدة الوقت الكافى لفحص وتحليل قاعدة بيانات الأولى بك وانت أدرى بها وبالمشاكل التى تواجهك وضع كل مشكلة تريد حلها فى موضوع خاص بكل مشكلة تقبل تحياتى
  8. يجب أن يكون نوع البيانات المحسوب متاح كنوع بيانات في وضع تصميم الجدول بعد تسمية الحقل حدد نوع البيانات ومع ذلك يجب يجب ويفضل إجراء العمليات الحسابية في الاستعلامات أو في عناصر التحكم وليس في الجدول
  9. لا 6 فقط قم بعمل الفلتر يدويا من الجدول يا دكتور تحصل على 6 فقط
  10. 3- انشاء جدول بالحقول المطلوبة برمجيا مع تأمين الجدول اولا كود انشاء جدول طبعا واضح من الكود نوع الحقل المطلوب انشاءه Dim MySQL As String MySQL = "CREATE TABLE tblNameOfTble" _ & "(" _ & " [FieldAutoID] COUNTER" _ & ",[FieldByte] BYTE" _ & ",[FieldInteger] SMALLINT" _ & ",[FieldLong] INTEGER" _ & ",[FieldSingle] REAL" _ & ",[FieldDouble] FLOAT" _ & ",[FieldCurrency] MONEY" _ & ",[FieldShortText] Text(5)" _ & ",[FieldLongText] MEMO" _ & ",[FieldDateTime] DATETIME" _ & ",[FieldYesNo] BIT" _ & ",[FieldOleObject] IMAGE" _ & ");" DoCmd.SetWarnings False: DoCmd.RunSQL MySQL: DoCmd.SetWarnings True ثانيا تأمين الجدول : ومن هنا نبدأ فى ابتكار وافكار الحماية التأمين كما تعلمنا سابقا ان كانت البادئة فى اسم الجدول Usys يعتبر الاكسس من تلقاء نفسه انه من جداول النظام ويكون الجدول مخفيا ولكن عند اظهار كائنات النظام المخفيه يظهر الجدول اذن و زيادة فى التأمين على ما سبق سوف نقوم بعمل كود لاخفاء الجدول تماما حتى لو تم اظهار الكائنات الخفية وضعت الكود قى وحدة نمطيه ليسهل استخدام الكود بمرونه عند الحاجة Public Function DoHideTable(Optional strTableName As String = "") On Error GoTo ErrorHandler Set db = CurrentDb For Each obj In Application.CurrentData.AllTables Set tdf = db.TableDefs(obj.Name) If Left(tdf.Name, 4) <> "msys" And tdf.Attributes <> 1073741824 Then If tdf.Name = strTableName Then tdf.Attributes = tdf.Attributes + dbHiddenObject End If Next Set tdf = Nothing Set obj = Nothing db.Close Set db = Nothing ExitHandler: On Error Resume Next If Not tdf Is Nothing Then Set tdf = Nothing If Not obj Is Nothing Then Set obj = Nothing If Not db Is Nothing Then Set db = Nothing Exit Function ErrorHandler: MsgBox "The following error has occurred." & vbCrLf & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Source: DoHideTable" & vbCrLf & _ "Error Description: " & Err.Description, _ vbCritical, "An Error has Occurred!" Resume ExitHandler End Function واذا أراد المصمم او مطور قواعد البيانات التعامل مع بيانات الجدول المخفى السابق عن طريقين الاول اظهار الجدول Public Function DoShowTable(Optional strTableName As String = "") On Error GoTo ErrorHandler Set db = CurrentDb For Each tdf In db.TableDefs If Left(tdf.Name, 4) <> "msys" And tdf.Attributes <> 1073741824 And tdf.Attributes = 1 Then If tdf.Name = strTableName Then tdf.Attributes = tdf.Attributes - dbHiddenObject End If Next Set tdf = Nothing db.Close Set db = Nothing ExitHandler: On Error Resume Next If Not tdf Is Nothing Then Set tdf = Nothing If Not obj Is Nothing Then Set obj = Nothing If Not db Is Nothing Then Set db = Nothing Exit Function ErrorHandler: MsgBox "The following error has occurred." & vbCrLf & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Source: DoHideTable" & vbCrLf & _ "Error Description: " & Err.Description, _ vbCritical, "An Error has Occurred!" Resume ExitHandler End Function الثانى عمل استعلام لهذا الجدول دون اظهار الجدول Public Function DoCreateQuery(Optional strTableName As String = "", Optional strQueryName As String = "") On Error GoTo ErrorHandler Set db = CurrentDb MySQL = "Select * From " & strTableName Set qdf = db.CreateQueryDef(strQueryName, MySQL) Set qdf = Nothing db.Close Set db = Nothing ExitHandler: On Error Resume Next If Not tdf Is Nothing Then Set tdf = Nothing If Not obj Is Nothing Then Set obj = Nothing If Not db Is Nothing Then Set db = Nothing Exit Function ErrorHandler: MsgBox "The following error has occurred." & vbCrLf & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Source: DoHideTable" & vbCrLf & _ "Error Description: " & Err.Description, _ vbCritical, "An Error has Occurred!" Resume ExitHandler End Function ملاحظة بعد الاوامر ليظهر فعاليتها مثل الاخفاء والاظهار قد تحتاج لاغلاق القاعدة واعادة فتحها مرة أخرى التطبيق فى القاعدة المرفقة .. يتبع ... 04- craet table with hard code.accdb
  11. طيب خلينا نتفق على شئ الاكواد السابق ذكرها هى اكواد ثابته تستخدم كما هى فى الحصول على البيانات من خلالها او اضافة البيانات فى الريجسترى اما بخصوص الحماية هو تنوع الافكار فى استخدامها وتطويعها فقط كما يترائى للمبرمج وتختلف من ششخص لاخر حسب افكاره ومتطلباته لذلك وضعت الاكواد دون شرح اما عن الافكار سوف اشرحها باستفاضه ولكن بما اننا قلنا ان الافكار تختلف من شخص لاخر انا سوف اضع القاعدة العريضة التى تلهم القارئ للتفكير والابداع وهذا هو الاساس ان شاء الله اليوم نكمل اللى لقاء قريب بأمر الله
  12. الشكر لله الحمد لله الذى تتم بنعمته الصالحات
  13. خلينا نتفق على شئ دعنا لا ننسي ان الاكسس تطبيق مجانى مفتوح المصدر ومحدود ولكن نتحايل فقط ببعض الخدع والافكار لعمل ما نريد ولس كل شئ يمكن تحقيقه
  14. أنا لو تلاحظ لم اضع الشرح باستفاضه كما عهدتمونى بسبب اننى منهمك فى توارد الافكار ويتشتت ذهنى من أن لآخر كما اننى قصدت ان أجبر القراء على الفحص والتمحيص والبحث وطرح الاسئلة حتى ينشأ عندهم الفضول وتوارد الافكار لاستخدام الاكواد وما عرضته وسوف اعرضه ان شاء الله من افكار كى لا يأخذوا قاعدة وينقلونها فقط الى مشاريعهم لذلك بدأت موضوعى بـ لا أنوى أن اعطيكم سمكا بل انوى أن أعلمكم الصيد ... استحالة لابد من معامل التشفير مع هذه الطريقة.. راجع نفسك وراجع الكود
  15. 'طيب اولا لست انا من قام بكتابة الكود ثانيا يا سيدى الكود هذا افضل كود تشفير تعاملت معه لعدة اسبب -هذا الكود عند تشفير نفس الكلمة أكثر من مرة فى كل مره تحصل على رموز مختلفة ولكن عند اعادتها من اى رمز حلصلت عليه اثناء التشقير تعود اليك تلك الكلمة -يتم تصدير الكود كما هو مشفر لان هناك بعد الأكود عند تصدير القيم الناتجة عنه الى الريجسترى عادت الى الحروف الأصلية أما بخصوص المتعير b هو معامل التشفير الذى يعتمد الكود عليه يعنى مثلا عاوز اشفر الاسم موسى باستخدام الكواد على سبيل المثال يكون incode("موسي","FrstName") انا استخدمت معامل التشفير هنا كلمة FrstName اذا لابد من استخدامها كما هى لاعادة الكلمة الى اصلها يعنى هذا التشفير كGFـغصظ×ظضضصسرج والذى تم الحصول عليه من كلمة موسي لابد لاعادته الى اصله من استخدام نفس معامل التشفير المستخدم بيكون عند الفك للتشفير decode("كGFـغصظ×ظضضصسرج","FrstName") طيب جرب تغيير حالة حرف مثلا ?decode("كGFـغصظ×ظضضصسرج","Frstname") لاحظ حرف الـ N , n بذلك لن تستطيع اعادة العملية وليش الراحة مطلوب البحث والتحرى لو ع الراحة اقوم بتقفيل قاعدة وارفقها فى شكلها النهائى وارتاح واريح
  16. 3- استخلاص قيم من مكونات الجهاز تستخدم فى عملية الترخيص - رقم الـ UUID رقم ثابت لا يتغير بتغيير الهارد ديسك او ختى بعملية الفورمات أو إعادة التقسيم للهارد ديسك - Public Function GetUUID(Optional strHost As String = ".") As String On Error GoTo ErrorHandler Dim objComputerSystemProduct As Object Dim objWMIService As Object Dim objItems As Object Dim objDiskDriveSerial As Object Set objWMIService = GetObject("winmgmts:\\" & strHost & "\root\cimv2") Set objComputerSystemProduct = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct", , 48) For Each objItems In objComputerSystemProduct GetUUID = objItems.UUID Next Set objItems = Nothing Set objWMIService = Nothing Set objComputerSystemProduct = Nothing ExitHandler: On Error Resume Next If Not objItems Is Nothing Then Set objItems = Nothing If Not objDiskDriveSerial Is Nothing Then Set objDiskDriveSerial = Nothing If Not objWMIService Is Nothing Then Set objWMIService = Nothing Exit Function ErrorHandler: MsgBox "The following error has occurred." & vbCrLf & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Source: GetUUID" & vbCrLf & _ "Error Description: " & Err.Description, _ vbCritical, "An Error has Occurred!" Resume ExitHandler End Function - ويتم استدعاءه فقط من خلال GetUUID() - رقم وموديل الهارد ديسك ثابت ولا يتغير Public Function GetDDSerialNumber(Optional strHost As String = ".", Optional strSymbol As String = ",") As String On Error GoTo ErrorHandler Dim objComputerSystemProduct As Object Dim objWMIService As Object Dim objItems As Object Dim objDiskDriveSerial As Object Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strHost & "\root\cimv2") Set objDiskDriveSerial = objWMIService.ExecQuery("SELECT DeviceID, SerialNumber FROM Win32_DiskDrive") For Each objItems In objDiskDriveSerial GetDDSerialNumber = Trim(GetDDSerialNumber) & Trim(objItems.SerialNumber & strSymbol) Next If Right(GetDDSerialNumber, 1) = strSymbol Then GetDDSerialNumber = Left(GetDDSerialNumber, Len(GetDDSerialNumber) - 1) Set objItems = Nothing Set objWMIService = Nothing Set objDiskDriveSerial = Nothing ExitHandler: On Error Resume Next If Not objItems Is Nothing Then Set objItems = Nothing If Not objDiskDriveSerial Is Nothing Then Set objDiskDriveSerial = Nothing If Not objWMIService Is Nothing Then Set objWMIService = Nothing Exit Function ErrorHandler: MsgBox "The following error has occurred." & vbCrLf & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Source: GetDDSerialNumber" & vbCrLf & _ "Error Description: " & Err.Description, _ vbCritical, "An Error has Occurred!" Resume ExitHandler End Function -ويتم فقط استدعاءه من خلال GetDDSerialNumber() التطبيق فى القاعدة المرفقة .. يتبع ... 3- ارقام القطع UUID - HDD.accdb
  17. السلام عليكم ورحمة الله وبركاته بفضل الله تعالى بدأت السلسلة... رجاء تابع واسأل فيما تريد فى حالة تعذر الفهم او التطبيق
×
×
  • اضف...

Important Information