اذهب الي المحتوي
أوفيسنا

ابو جودي

أوفيسنا
  • Posts

    7001
  • تاريخ الانضمام

  • Days Won

    203

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

  1. شرخ فكرة الجماية 1- اغلاق قاعدة الجداول و القاعدة الامامية بكلمة مرور ويتم كالاتى فتح تطبيق الاكسس نفسه من من قائمة ابدا نختار فتح نحدد قاعدة البيانات المراد اضافة كلمة مرور لها ملاحظة هامة لا بد من فتحها حضريا من حلال الضغط على السهم الصغير لتخرج تلك القائمة كما فى الصورة ونختار منها الفتح حصريا ومن قائمة ملف نختار رمز اضافة كلمة المرور وفى هذه الشاشة نكتب كلمة المرور ثم نعيد كتابتها مرة اخرى للتأكيد تلك الخطوات يتم عملها لكل من القاعدتين الامامية والخلفية ان كنت قسمت قاعدة البيانات الان ملاحظتان مهمتان جدا جدا جدا - عند كتابة كلمة مرور لابد ان تحتوى على حروف صغيرة + حروف كبيرة + ارقام + رموز مثال 135MoHa(^_*)MmEd246 2- لحماية الكائنات والنماذج وعدم الاطلاع على تصميم القاعدة يتم اخفاء اطار الاكسس نهائيا 3- فى حال تقسيم قاعدة البيانات طبعا يتم وضع اكواد الربط بين القاعدة الامامية والخلفية برمجيا الان قاعدة بيانات تشغيل التطبيق وهى محور الموضوع هى قاعدة وسيطه فقط تمرر كلمة المرور برمجيا للقاعدة الاساسية ليتم فتحها دون المطالبة بكلمة مرور من خلال الكود الاتى الذى يتم وضعه داخل نموذج ويتم فتح النموذج تلقائيا عند فتح القاعدة اما من خلال الاعدادت او ماكرو autoexec طبعا يتم تحويل القاعدة الى Accde وذلك حتى لا يطلع احد على هذه الاكواد ويستطيع معرفة كلمة مرور فتح القاعدة وبذلك 1- المبرمج فى اى وقت له القدرة على فتح القواعد لاجراء اى تعديلات او تحديثات هو فقط يعرف كلمة المرور 2- لا يستطيع احد الوصول الى بيانات داخل الجداول وبذلك تم تأمين بيانات العميل اصلا 3- لا يستطيع احد الوصول الى التصميمات بطرق غير مشروعة ملاحظة قمت بكسر حماية قاعدة mdb بمعرفة كلمة المرور ولم استطع ذلك مع accdb ومن اجل ذلك انصح باعتماد قواعد البيانات بتنسيق accdb Option Compare Database Option Explicit Const strPasswordDB = "كلمة المرور" Private Sub Form_Load() On Error GoTo Err_BtnRunMyDB_Click Dim strPathTablesDB As String Dim strPathAppDB As String Dim strPasswordDB As String Dim accessApp As Access.Application Dim db As DAO.Database Dim MsgTitl As String Dim MsgErorTbl As String Dim MsgErorErorApp As String Dim MsgErorTblAndApp As String Dim MsgCallDesign As String MsgTitl = "تنبيه" MsgErorTbl = "تم فقدان قاعدة بيانات الجداول او تم التلاعب باسم القاعدة" MsgErorErorApp = "تم فقدان قاعدة بيانات التطبيق او تم التلاعب باسم القاعدة" MsgErorTblAndApp = "تم فقدان قاعدة بيانات الجداول او قاعدة التطبيق او تم التلاعب باسم القواعد" MsgCallDesign = "يرجى الإتصال بمصمم التطبيق" strPathTablesDB = Application.CurrentProject.Path & "\TablesArchivingDB.accdb" ' <<----< مسار قاعدة الجداول strPathAppDB = Application.CurrentProject.Path & "\Archiving.accdb" ' <<----< مسار القاعدة الامامية If FileExist(strPathTablesDB) Or FileExist(strPathAppDB) Then If FileExist(strPathAppDB) Then Dim MyDb As Database Set MyDb = OpenDatabase(strPathAppDB, False, False, ";PWD=" & strPasswordDB) Call ChangeProperty("AllowBypassKey", dbBoolean, False, MyDb) If FileExist(strPathTablesDB) Then Set accessApp = New Access.Application With accessApp .Visible = True .UserControl = True .RunCommand acCmdAppMaximize DoCmd.RunCommand acCmdAppMaximize Set db = .DBEngine.OpenDatabase(strPathAppDB, False, False, ";PWD=" & strPasswordDB) .OpenCurrentDatabase strPathAppDB End With db.Close Set db = Nothing Set accessApp = Nothing Application.Quit Else MsgBox MsgErorTbl & Chr(13) & Chr(10) & MsgCallDesign, vbMsgBoxRtlReading + vbMsgBoxRight + vbOKOnly, MsgTitl Exit Sub End If Else MsgBox MsgErorErorApp & Chr(13) & Chr(10) & MsgCallDesign, vbMsgBoxRtlReading + vbMsgBoxRight + vbOKOnly, MsgTitl Exit Sub End If Else MsgBox MsgErorTblAndApp & Chr(13) & Chr(10) & MsgCallDesign, vbMsgBoxRtlReading + vbMsgBoxRight + vbOKOnly, MsgTitl Exit Sub End If Exit_BtnRunMyDB_Click: Exit Sub Err_BtnRunMyDB_Click: MsgBox Err.Description Resume Exit_BtnRunMyDB_Click Exit Sub End Sub Public Function FileExist(strPath) As Boolean If Dir(strPath) <> Empty Then FileExist = True Else: FileExist = False End Function Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant, dbs As Database) As Integer Dim prp As Property Const conPropNotFoundError = 3270 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
  2. اتفضل اخفاء القيم المختارة لنفس التاريخ من مربع السرد.mdb
  3. ممكن مرفق بسيط
  4. اتفضل البحث فى القران الكريم.zip
  5. لا يا اخى الكريم المرفق الاول كانت بداية الافكار فضلا وكرما وليس امرا قم بتجربة هذا المرفق النهااااااااائى و اخبرنى بنتيجة التجربة رجاء تعديل.zip
  6. ممكن تشرح حضرتك عملت ايه او استخدمت انهو مرفق حضرتك متأكد ان حضرتك استخدمت المرفق الأخيــــــــــــــــــــــــر والنهائى تعديل.zip
  7. لا خالص ما فى اى فرق النتيجة واحدة ولكن لو كنت اريد تكرار الطريقة مع اكثر من مربع سرد سوف تكتب كل تلك الاسطر مع كل مربع ولكن ان كان الكود فى الموديول يكتب مرة واحدة ويتم فى كل مرة كتابة سطر واحد لاستدعائه Call CmboNotInList("tableName", "FieldName", NewData, Response) وكل الطرق تؤدى الى روما
  8. ممكن صورة من القاعدة بعد فتحها بالشيفت كما تفضلت المرفق فيه 3 قواعد 1- القاعدة الخلفية: الجداول ---------------------------------------------- TablesArchivingDB.accdb 2-القاعدة الامامية: النماذج وباقى الكائنات --------------------------------------------Archiving.accdb 3- قاعدة تشغيل التطبيق -----------------------------------------------------------Run My App.accde انت متأكد ان دى هى يا اللى فتحت معاك ؟؟؟؟؟ ودى صورة من القاعدة الخلفية: الجداول ---------------------------------------------- TablesArchivingDB.accdb القاعدة الامامية: النماذج وباقى الكائنات --------------------------------------------Archiving.accdb
  9. قضلا وكرما وليس امرا اخى الحبيب ومعلمى واستاذى الجليل استاذ @أبو عبدالله الحلوانى ممكن تعيد التجربة وتوافينى بالنتيجة تعديل.zip
  10. أضف اختيارا إلى قائمة مربع التحرير والسرد عن طريق إضافة سجل إلى الجدول الخاص بمصدر الصف في حدث NotInList لمربع التحرير والسرد. الكود داخل الموديول Public Sub CmboNotInList(ByVal strTableName As String, ByVal strFieldName As String, ByVal strNewData As String, ByRef intResponse As Integer) On Error GoTo Proc_Err Dim sSQL As String Dim sMsg As String intResponse = acDataErrContinue sMsg = """" & strNewData & """ is not in the current list. " & vbCrLf & vbCrLf & "Do you want to add it? " If MsgBox(sMsg, vbYesNo, "Add New Data") <> vbYes Then GoTo Proc_Exit End If sSQL = "INSERT INTO [" & strTableName & "] " & "([" & strFieldName & "])" & " SELECT """ & strNewData & """;" With CurrentDb .Execute sSQL If .RecordsAffected > 0 Then intResponse = acDataErrAdded End If End With Proc_Exit: Exit Sub Proc_Err: MsgBox Err.Description, , "ERROR " & Err.Number & " CmboNotInList" Resume Proc_Exit Resume End Sub يتم استدعاء الكود فى الحدث >>------> عند عدم الوجود فى القائمة - NotInList من خلال الكود الاتى Call CmboNotInList("tableName", "FieldName", NewData, Response) المرفق Not In List.mdb
  11. شكرا اخى الحبيب الأستاذ @محمد التميمي ادعوا الله لوالديكم ولكل المسلمين بالرحمة والمغفرة ان شاء الله وان يسكنهم اعلى درجات الجنان مع النبيين والصديقين والشهداء واسال الله تعالى ان يبارك الله في جهودكم والشكر بكل كل الشكر لكم انتم على هديتكم الرائعة وانا لم افدم اى شئ ولم افعل ما يستوجب اى شكر اصلا
  12. كل الشكــــــــر والتقدير والعرفان بالجميل لحضرتك اخى الحبيب واستاذى الفضيل استاذ @علاء محمد علي اولا اقدم اعتذارى وفعلا لم انتبه فكل ما كان يدور بخلدى التعديل على الموديول وظللت ابحث هنا وهناك واقوم بالتحليل والتجربة اكرر اعتذاري لحضرتك مرة أخرى
  13. كلام حضرتك صح صح بس الطريقة معقدة بعض الشئ على طلاب العلم المبتدئين امثالى المرفق الاتى فيه 3 قواعد 1- القاعدة الخلفية: الجداول ---------------------------------------------- TablesArchivingDB.accdb 2-القاعدة الامامية: النماذج وباقى الكائنات --------------------------------------------Archiving.accdb 3- قاعدة تشغيل التطبيق ------------------------------------------------------------Run My App.mde تم اضافة بعض التعديلات لتأمين القاعدتين القاعدة الخلفية / القاعدة الامامية بعدم تمكين زر الشيفت لهما وبهذه الطريفة الان والله اعلم 1- يصعب تمكين الشيفت 2- يصعب استيراد الكائنات من اى منهما 3- يصعب الوصول الى جدول النظام MSysObjects لاستخراج بيانات الاتصال بقاعدة الجدول اترككم مع التجربة الحماية 2.rar
  14. هات مرفق يمكن اقدر افهم
  15. اولا كل الشكر والتقدير استاذى الجليل ومعلمى القدير الاستاذ @أبو إبراهيم الغامدي ولكن هل كل نموذج او تقرير يتم وضع السطر هذا من الكود حتى نستطيع فتحه ؟؟ طبعا مع تغيير اسم الجدول ؟ مصدر البيانات Set Me.Recordset = DBDAO.OpenRecordset("EMPLOYEES", dbOpenDynaset) وكيف ننشئ الاستعلامات ؟؟؟؟؟
  16. استاذى الجليل ومعلمى القدير الاستاذ @أبو إبراهيم الغامدي فضلا وكرما ممكن مثال عملى او التعديل على المرفق الحماية من استيراد الكائنات.zip
  17. مرفق الملفات بدون حماية قاعدة التشغيل Run My App.mdb الحماية من استيراد الكائنات.zip
  18. اولا اعتذر لم انتبه لطريقة استاذى الجليل ومعلمى القدير الاستاذ @kaser906 لان الصفحة كانت مفتوحة قبل ان يقوم استاذى بالمشاركة ولن انتبه فأرجوا المعذرة من استاذى الفاضل وبخصوص الشرح قبل البدء بالشرح وحتى يأخذ كل ذى حق حقه بدأت الفكرة عندى من مرفق للاستاذة زهرة " ام عهود " وتتمثل فكرتى المتواضعة فى الاتى 1- تشفير كل من القاعدة الأمامية والخلفية بكلمة مرور وبذلك لا يمكن فتح القاعدتين الا بكسر كلمة المرور وللعلم استطعت من قبل كسر كلمات مرور القواعد من النوع .mdb اما القواعد من النوع .accdb لم استطع كسرها 2- قمت بأخفاء اطار الاكسس فى قاعدة البيانات الامامية 3- طبعا كود ربط القواعد الامامية بجداول الخلفية اليا دون تدخل من المستخدم طبعا يتم تعديل الكود بمسار محدد ان كانت القواعد على سيرفر 4- قاعدة بيانات لتفتح قاعدة البيانات الامامية دون طلب الباسورد فهو موجود بالاكواد وطبعا لتأمينه ولعدم الوصول اليه تم تحويل قاعدة البينات الى mde وهذه الملف
  19. اولا هى دالة من دوال الاكسل وليس الاكسس ولكن ممكن تحقيقها برمجيا لتناسب الاكسس من خلال الاكواد والمرفق يوضح ذلك الشــــــــــــرح الوصف تُرجع رقماً تم تقريبه للأعلى، بعيداً عن الصفر، إلى أقرب مضاعف للوسيطة significance. على سبيل المثال، إذا كنت تريد تجنب استخدام السنت في الأسعار وكان سعر المنتج 4,42 ر.س.، فاستخدم الصيغة ‎=CEILING(4,42,0,05)‎ لتقريب السعر للأعلى إلى أقرب مبلغ صحيح. بناء الجملة CEILING(number, significance)‎ يحتوي بناء جملة الدالة CEILING على الوسيطتين التاليتين: Number مطلوبة. وهي القيمة التي تريد تقريبها. Significance مطلوبة. وهي المضاعف الذي تريد التقريب إليه. ملاحظات إذا كانت قيمة أي الوسيطتين غير رقمية، فستُرجع الدالة CEILING قيمة الخطأ ‎#VALUE!‎. يتم تقريب القيمة للأعلى عند تعديلها بعيداً عن الصفر، وذلك بغض النظر عن علامة الوسيطة number. أما إذا كانت number عبارة عن مضاعف صحيح للوسيطة significance، فلن يحدث أي تقريب. إذا كانت قيمة الوسيطتين number وsignificance سالبتين، فيتم تقريب القيمة للأدنى، بعيداً عن الصفر. إذا كانت قيمة number سالبة وكانت قيمة significance موجبة، فيتم تقريب القيمة للأعلى باتجاه الصفر. مثال انسخ البيانات النموذج في الجدول التالي، والصقها في الخلية A1 في ورقة عمل Excel جديدة. لعرض نتائج الصيغ، حدد هذه الأخيرة، ثم اضغط على F2، ثم اضغط على Enter. عند الحاجة، يمكنك ضبط عرض العمود لرؤية البيانات كافة. الصيغة الوصف ‎=CEILING(2.5, 1)‎ تقريب 2,5 للأعلى إلى أقرب مضاعف لـ 1 3 ‎=CEILING(-2.5, -2)‎ تقريب ‎-2,5 للأعلى إلى أقرب مضاعف لـ ‎-2 ‎-4 ‎=CEILING(-2.5, 2)‎ تقريب ‎-2.5 للأعلى إلى أقرب مضاعف لـ ‎-2 ‎-2 ‎=CEILING(1.5, 0.1)‎ تقريب 1,5 إلى أقرب مضاعف من لـ 0,1 1,5 ‎=CEILING(0.234, 0.01)‎ تقريب 0,234 إلى أقرب مضاعف من لـ 0,01 0,24 امثلة Ceiling(2.5, 1) equals 3 Ceiling(2.5) equals 3 Ceiling(-2.5, -2) equals -4 Ceiling(-2.5, 2) equals -2 Ceiling(1.5, 0.1) equals 1.5 Ceiling(0.234, 0.01) equals 0.24 Ceiling function.mdb
  20. لا خااااااااااااااالص مش نفس المشكلة طبعا انت بس مش مركز المرفق فيه 3 قواعد 1- القاعدة الخلفية: الجداول ---------------------------------------------- TablesArchivingDB.accdb 2-القاعدة الامامية: النماذج وباقى الكائنات --------------------------------------------Archiving.accdb 3- قاعدة تشغيل التطبيق ------------------------------------------------------------Run My App.mde الى انت فتحتها دى جدول قاعدة تشغيل التطبيق ليس الا جرب تانى ودى صورة من القاعدة الخلفية: الجداول
×
×
  • اضف...

Important Information