ناقل قام بنشر نوفمبر 23, 2020 قام بنشر نوفمبر 23, 2020 (معدل) أخي الحبيب محمد بعد تجربة البرنامج تبين أن عند تشغيل البرنامج وفتح الاكسس وعند اختفاء شاشة الاكسس مباشرة لو ضغط على الشيفت تظهر امامي قاعدة البيانات التي بها النماذج دون عناء ولا كتابة كلمة مرور وهل لهذه المشكلة من حل .... بارك الله فيك جربها وسوف تشاهد النماذج مفتوحة امامك تم تعديل نوفمبر 23, 2020 بواسطه ناقل 1
ابو جودي قام بنشر نوفمبر 23, 2020 قام بنشر نوفمبر 23, 2020 (معدل) منذ ساعه, ناقل said: أخي الحبيب محمد بعد تجربة البرنامج تبين أن عند تشغيل البرنامج وفتح الاكسس وعند اختفاء شاشة الاكسس مباشرة لو ضغط على الشيفت تظهر امامي قاعدة البيانات التي بها النماذج دون عناء ولا كتابة كلمة مرور وهل لهذه المشكلة من حل .... بارك الله فيك جربها وسوف تشاهد النماذج مفتوحة امامك ممكن صورة من القاعدة بعد فتحها بالشيفت كما تفضلت المرفق فيه 3 قواعد 1- القاعدة الخلفية: الجداول ---------------------------------------------- TablesArchivingDB.accdb 2-القاعدة الامامية: النماذج وباقى الكائنات --------------------------------------------Archiving.accdb 3- قاعدة تشغيل التطبيق -----------------------------------------------------------Run My App.accde انت متأكد ان دى هى يا اللى فتحت معاك ؟؟؟؟؟ ودى صورة من القاعدة الخلفية: الجداول ---------------------------------------------- TablesArchivingDB.accdb القاعدة الامامية: النماذج وباقى الكائنات --------------------------------------------Archiving.accdb تم تعديل نوفمبر 23, 2020 بواسطه ابا جودى
ابو جودي قام بنشر نوفمبر 23, 2020 قام بنشر نوفمبر 23, 2020 37 دقائق مضت, ناقل said: ممكن تشرح حضرتك عملت ايه او استخدمت انهو مرفق حضرتك متأكد ان حضرتك استخدمت المرفق الأخيــــــــــــــــــــــــر والنهائى تعديل.zip
ابو جودي قام بنشر نوفمبر 23, 2020 قام بنشر نوفمبر 23, 2020 37 دقائق مضت, ناقل said: أول مرفق في موضوعك .... هل حدثت مرفقات اخرى لا يا اخى الكريم المرفق الاول كانت بداية الافكار فضلا وكرما وليس امرا قم بتجربة هذا المرفق النهااااااااائى و اخبرنى بنتيجة التجربة رجاء تعديل.zip 1
ابو جودي قام بنشر نوفمبر 24, 2020 قام بنشر نوفمبر 24, 2020 شرخ فكرة الجماية 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 1
jjafferr قام بنشر ديسمبر 1, 2020 قام بنشر ديسمبر 1, 2020 في ٢١/١١/٢٠٢٠ at 20:38, أبو إبراهيم الغامدي said: طبعا تنشىء الاستعلام في قاعدة البيانات الخلفية.. ثم تشير إلى الاستعلام باسمه كما في الجدول.. معذرة اخوي ابو ابراهيم : نعم بهذه الطريقة يمكن اخفاء الاستعلام ، كما تم اخفاء الجداول ، ولكن ، هل سيكون تنفيذ الاستعلام اسرع في جعله في قاعدة البيانات الخلفية ، مما لو وضعناه في قاعدة بيانات الواجهه ؟ جعفر 1
أبو إبراهيم الغامدي قام بنشر ديسمبر 1, 2020 قام بنشر ديسمبر 1, 2020 منذ ساعه, jjafferr said: معذرة اخوي ابو ابراهيم : نعم بهذه الطريقة يمكن اخفاء الاستعلام ، كما تم اخفاء الجداول ، ولكن ، هل سيكون تنفيذ الاستعلام اسرع في جعله في قاعدة البيانات الخلفية ، مما لو وضعناه في قاعدة بيانات الواجهه ؟ أهلا أ. جعفر.. إجابتي السابقة كانت بناءً على سلوك الغالبية من الزملاء في التعاطي مع البيانات.. لكن لو سألتني عن سولكي الخاص فأنا أفضل وصلات الاستعلام عوضا عن الجداول في عرض البيانات وعمل الإجراءات عليها.. الفروقات الزمنية في التنفيذ تظهر أكثر على البيانات البعيدة التي لا تعمل على سيرفرات.. 1
ابو جودي قام بنشر ديسمبر 1, 2020 قام بنشر ديسمبر 1, 2020 38 دقائق مضت, أبو إبراهيم الغامدي said: إجابتي السابقة كانت بناءً على سلوك الغالبية من الزملاء في التعاطي مع البيانات.. لكن لو سألتني عن سولكي الخاص فأنا أفضل وصلات الاستعلام عوضا عن الجداول في عرض البيانات وعمل الإجراءات عليها.. الفروقات الزمنية في التنفيذ تظهر أكثر على البيانات البعيدة التي لا تعمل على سيرفرات.. استاذى الجليل ومعلمى القدير الاستاذ @أبو إبراهيم الغامدي ممكن شرج قصد حضرتك من الجملة الاتية اقتباس فأنا أفضل وصلات الاستعلام عوضا عن الجداول في عرض البيانات وعمل الإجراءات عليها ما المقصود خصوصا بكلمة وصلات الاستعلام وارجوك بدون اثقال ان سمح وقتكم مثال بالطريقة المثلى والتى تساعد على اتمام معالجة البيانات فى اقل وقت زمنى فأنا تقريبا لا استطيع الاستيعاب نظريا بشكل كبير فتحليل المثال خطوة بخطوة هو ما يوصل الى المعلومة.. معلش صعيدى
jjafferr قام بنشر ديسمبر 1, 2020 قام بنشر ديسمبر 1, 2020 منذ ساعه, أبو إبراهيم الغامدي said: إجابتي السابقة كانت بناءً على سلوك الغالبية من الزملاء في التعاطي مع البيانات.. لكن لو سألتني عن سولكي الخاص فأنا أفضل وصلات الاستعلام عوضا عن الجداول في عرض البيانات وعمل الإجراءات عليها.. الفروقات الزمنية في التنفيذ تظهر أكثر على البيانات البعيدة التي لا تعمل على سيرفرات.. هذا عينا الذي اقوم به 100% 🙂 38 دقائق مضت, ابا جودى said: اقتباس فأنا أفضل وصلات الاستعلام عوضا عن الجداول في عرض البيانات وعمل الإجراءات عليها ما المقصود خصوصا بكلمة وصلات الاستعلام يعني وبكل بساطة ، استخدام الاستعلام العادي ، بعد ربط الجداول بعلاقات 🙂 جعفر 1
ابو جودي قام بنشر ديسمبر 1, 2020 قام بنشر ديسمبر 1, 2020 (معدل) 12 دقائق مضت, jjafferr said: هذا عينا الذي اقوم به 100% 🙂 يعني وبكل بساطة ، استخدام الاستعلام العادي ، بعد ربط الجداول بعلاقات 🙂 جعفر انا أصبحت ضائع نتحدث فى الاصل عن ربط القاعدة الامامية بالخلفية .. صح ثم أخبر الاستاذ @أبو إبراهيم الغامدي ان كل بيانات الاتصال تظهر بالجدول MSysObjects فى الحقل Connect واشار سيادته بطريقة ربط غير مباشرة في ٢١/١١/٢٠٢٠ at 13:46, أبو إبراهيم الغامدي said: لعمل الربط غير المباشر للبيانات عن طريق الشفرة بجداول بيانات أكسس نحتاج إلى الشفرة التالية.. نضع الشفرة التالية في وحدة نمطية عامة Public Function APP_PATH() As String APP_PATH = CurrentProject.Path End Function Public Function DBDAO() As DAO.Database Set DBDAO = OpenDatabase(APP_PATH & "\DB1.ACCDB", False, False, ";PWD=''")'ضع كلمة المررور إذا كانت مطلوبة End Function نضع الشفرة التالية في حدث عند الفتح في النموذج Set Me.Recordset = DBDAO.OpenRecordset("EMPLOYEES", dbOpenDynaset) ثم بعد ذلك سألت كيف ننشئ الإستعلامات مع هذه الطريقة وكان رد سيادته في ٢١/١١/٢٠٢٠ at 18:38, أبو إبراهيم الغامدي said: طبعا تنشىء الاستعلام في قاعدة البيانات الخلفية.. ثم تشير إلى الاستعلام باسمه كما في الجدول.. إذا كنت تريد عمل استعلام يشير إلى محددات من قيم في حقول النموذج فيمكنك إنشاء جملة الاستعلام مكان اسم الجدول.. Set Me.Recordset=DBDAO.OpenRecordset("SELECT * FROM CUSTOMERS WHERE [CUSTOMER ID]=" & Me.CB_CUSTOMER_ID) في الحالة هذه تستطيع وضع جملة الاستعلام في حدث After_Update للحقل.. أو تعيد تنشيط النموذج باستخدام Me.Requery في نفس الحدث وتفضلتم سيادتكم استاذى الجليل بالشرح الوافى في ٢١/١١/٢٠٢٠ at 20:38, jjafferr said: في ٢١/١١/٢٠٢٠ at 16:01, ابا جودى said: وكيف ننشئ الاستعلامات ؟؟؟؟؟ بالاضافة طريقة اخوي ابو ابراهيم ، اليك طريقه انت متعود عليها : 1. هذا مسار قاعدة بيانات الجداول (هذه خطوة مؤقته) ( D:\Documents\Downloads\LINKED DATA\DB1.ACCDB ) : . 2. نعمل استعلام عادي في برنامج الواجهة ، وبدون اختيار اي جداول ، ثم نضع في Source Databasse ، اسم ومسار قاعدة بيانات الجداول (انظر اعلاه) (بدلا عن كلمة Current) : . 3. انقر على زر Show Tables (رقم 2) ، فسترى جداول قاعدة بيانات الجداول : . 4. ونعمل الاستعلام بطريقة عادية ، ونحفظه (كذلك مؤقتا على نعمل النموذج فقط) : . 5. اعمل النموذج المطلوب ، بحيث يكون الاستعلام اعلاه مصدر بياناته: . 6. ثم نحول الاستعلام الى وضع SQL . 7. ونحصل على الجملة التالية : . 8. ثم نضع هذه الجملة في السطر الذي وضعه اخوي ابو ابراهيم ، في حدث التحميل للنموذج (الجملة كما هي من الاستعلام وبتعديل بسيط) : . 9. نحذف الاستعلام مصدر البيانات ، ونحذف اسم الاستعلام من Record Source (مصدر بيانات) النموذج . 10. وكتعديل اخير حتى يشير الى وجدود قاعدة بيانات الجداول في نفس مجلد برنامج الواجهة (حتى يعمل البرنامج على كل جهاز وبأي مجلد) : . جعفر LINKED DATA_2.zip 128.11 kB · 16 downloads الان اليست الاستعلامات بتلك الطريقة الان عى محور النقاش ام ماذا تم تعديل ديسمبر 1, 2020 بواسطه ابا جودى
jjafferr قام بنشر ديسمبر 1, 2020 قام بنشر ديسمبر 1, 2020 13 دقائق مضت, ابا جودى said: الان اليست الاستعلامات بتلك الطريقة الان عى محور النقاش ام ماذا استاذ اباجودي 🙂 انت سألت وحصلت اجابات على جميع اسالتك ، وبأمثلة 🙂 الى هنا وانتهى الموضوع 🙂 فأتى الدور ان أسأل انا واستفيد من كلمة قالها اخوي ابو ابراهيم سابقا ، ولم التفت لها حينها ، فسألته ، و رده كان على سؤالي 🙂 فقمت انت بالاستفسار عن هذه الجزئية الجديدة من رد اخوي ابو ابراهيم ، والجواب كان انه يستعمل الاستعلام العادي (والذي قد تكون فيه علاقة بين الجداول) كمصدر بيانات للنموذج ، اي انه لا يستعمل الجداول كمصدر بيانات للنموذج ، وهي نفس الطريقة التي استعملها انا 🙂 يعني سؤالي نوعا ما ، خارج عن موضوعك 😁 جعفر 1
ابو جودي قام بنشر ديسمبر 1, 2020 قام بنشر ديسمبر 1, 2020 5 دقائق مضت, jjafferr said: استاذ اباجودي 🙂 انت سألت وحصلت اجابات على جميع اسالتك ، وبأمثلة 🙂 الى هنا وانتهى الموضوع 🙂 فأتى الدور ان أسأل انا واستفيد من كلمة قالها اخوي ابو ابراهيم سابقا ، ولم التفت لها حينها ، فسألته ، و رده كان على سؤالي 🙂 فقمت انت بالاستفسار عن هذه الجزئية الجديدة من رد اخوي ابو ابراهيم ، والجواب كان انه يستعمل الاستعلام العادي (والذي قد تكون فيه علاقة بين الجداول) كمصدر بيانات للنموذج ، اي انه لا يستعمل الجداول كمصدر بيانات للنموذج ، وهي نفس الطريقة التي استعملها انا 🙂 يعني سؤالي نوعا ما ، خارج عن موضوعك 😁 جعفر طب يا استاذ @jjafferr انتبه جيدا هنا بينكم صعايدة وانا منهم يتيهون بسهولة ويغرقون فى نقطة ماء بعد ذلك أخبر ان النقاش لا يخص الموضوع انا قرأته الموضوع مرتين ان افهم شئ ما فهمت والله ال يعنى انا افهم اصلا الله يرضى عنكم انتم واستاذى الجليل @أبو إبراهيم الغامدي ولا يحرمنا منكم انتم وباقى اساتذتنا الكرام ويجمعنا واياكم ومن وتحبون على حوض سيدنا محمد صلى الله عليه وسلم
أبو إبراهيم الغامدي قام بنشر ديسمبر 1, 2020 قام بنشر ديسمبر 1, 2020 منذ ساعه, ابا جودى said: انتبه جيدا هنا بينكم صعايدة وانا منهم يتيهون بسهولة ويغرقون فى نقطة ماء أهلا أ. أبا جودي.. المبهر أن جُل علماء مصر صعايدة.. كفاك فخر بنفسك!!! في أكسس: هناك فرق في الوصول إلى البيانات بين ماهو شائع بين المطورين وبين ماهو متقدم! وفي الغالب نحن لا نراعي النواحي التقنية في التعامل مع السجلات.. وبكلام مختصر: عند إضافة أو تحرير سجل.. أنت لست بحاجة إلى تحميل بيانات الجدول بالكامل! وبناءً عليه نستخدم وصلات الاستعلام للوصول للبيانات بشكل محدد.. ولو ذهبت مرة إلى أحد فروع شركة الشحن العملاقة FedEx وحشرت أنفك في شاشة تسجيل البيانات لن تجد ما يشبع فضولك! فضلاً راجع هذا الرابط (FSMS Developer Guide) لأخذ معلومة عن كيفية عمل نظام FedEx وطرق معالجة البيانات..
ابو جودي قام بنشر ديسمبر 1, 2020 قام بنشر ديسمبر 1, 2020 5 دقائق مضت, أبو إبراهيم الغامدي said: أهلا أ. أبا جودي.. المبهر أن جُل علماء مصر صعايدة.. كفاك فخر بنفسك!!! في أكسس: هناك فرق في الوصول إلى البيانات بين ماهو شائع بين المطورين وبين ماهو متقدم! وفي الغالب نحن لا نراعي النواحي التقنية في التعامل مع السجلات.. وبكلام مختصر: عند إضافة أو تحرير سجل.. أنت لست بحاجة إلى تحميل بيانات الجدول بالكامل! وبناءً عليه نستخدم وصلات الاستعلام للوصول للبيانات بشكل محدد.. ولو ذهبت مرة إلى أحد فروع شركة الشحن العملاقة FedEx وحشرت أنفك في شاشة تسجيل البيانات لن تجد ما يشبع فضولك! فضلاً راجع هذا الرابط (FSMS Developer Guide) لأخذ معلومة عن كيفية عمل نظام FedEx وطرق معالجة البيانات.. اهلا استاذى الجليل ومعلمى القدير الاستاذ الفاضل @أبو إبراهيم الغامدي حضرتك قلت وبكلام مختصر: عند إضافة أو تحرير سجل.. أنت لست بحاجة إلى تحميل بيانات الجدول بالكامل! وبناءً عليه نستخدم وصلات الاستعلام للوصول للبيانات بشكل محدد.. طيب ما البيانات فى الاستعلام هى هى البيانات اللي بالجدول ؟ ما الفرق أستاذي واللا حضرتك تقصد لو الجدول يحتوى 10 حقول ممكن نستخدم فى الاستعلام 4 حقول فقط حسب الحاجة
أبو عبدالله الحلوانى قام بنشر ديسمبر 8, 2020 قام بنشر ديسمبر 8, 2020 في ٢١/١١/٢٠٢٠ at 20:59, أبو عبدالله الحلوانى said: بعد التجربة ظهرت معي هذه المشكلة بعد البحث عن سبب المشكلة التي ظهرت لدي وبعد تنبيهي من أخي أبي جودي هنا في ٢٣/١١/٢٠٢٠ at 15:38, ابا جودى said: ممكن تعيد التجربة وتوافينى بالنتيجة ظهر معي الخلل بهذا الكود المستخدم في فتح البرنامج With accessApp .Visible = True .UserControl = True .RunCommand acCmdAppMaximize DoCmd.RunCommand acCmdAppMaximize Set db = .DBEngine.OpenDatabase(strPathAppDB, False, False, ";PWD=" & strPasswordDB) .OpenCurrentDatabase strPathAppDB End With وقد قمت بتعديل الكود بهذا الشكل وانتهت المشكلة بفضل الله تعلي With accessApp .Visible = True .UserControl = True .RunCommand acCmdAppMaximize .OpenCurrentDatabase strPathAppDB, False, strPasswordDB End With وجزاكم الله عنا خيرا 1 1
redaouker قام بنشر نوفمبر 4, 2022 قام بنشر نوفمبر 4, 2022 في 21/11/2020 at 13:43, ابو جودي said: مرفق الملفات بدون حماية قاعدة التشغيل Run My App.mdb الحماية من استيراد الكائنات.zip 1.17 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 197 downloads طب اذاي افصل القاعده بتاعتي ذي اللي انا شايفه دا افصلها ل3 ملفات واخلي ملف التشغيل مش متشفر ومجدش يعرف يسحبه
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.