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

kkhalifa1960

الخبراء
  • Posts

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

  • تاريخ اخر زياره

  • Days Won

    59

كل منشورات العضو kkhalifa1960

  1. استاذ @moho58 برفق اليك مرفق من أعمال استاذنا @ابو جودي انا شخصياً بستعمله . ملاءمة عناصر النموذج حسب حجم النموذج.rar
  2. استاذ @checles تفضل المرفق بعد اضافة نموذج الادخال . checles-1.rar
  3. ممكن تذكر كيف سيحدث الجدول من جدول آخر بدون استعلام تحديث سوا كان استعلام تحديث يدوي أو استعلام من داخل حدث كما عند غلق نموذج الادخال أو أي نموذج آخر
  4. استاذ @منتصر الانسي راجع دالة التجميع المرفقه يمكن ما أخذت بالك منها مهما كان الادخال من نموذج أو على الجدول مباشرةً !!!!
  5. في هذه الحالة استخدم طريقة استاذنا @ابوخليل كما اشار اليك استاذ @Foksh واذا محتاج شئ أو تعديل اكتب ما تريده هنا وهو انشاء الله سيرد عليك .
  6. اعتذاري استاذ @منتصر الانسي لم انتبه لمداخلتك .
  7. مشاركة مع استاذي @ابوخليل تفضل استاذ @checlesمحاولتي . واذا كان لديك نموذج لادخال البيانات وتريد تحديث الجدول فعند الخروج من النموذج Private Sub Form_Close() On Error GoTo ErrorHandler Dim db As Database Set db = CurrentDb ' تشغيل استعلام التحديث db.Execute "UPDATE SAW SET SAW.Slabs_in_Bundle = GetTotalSlabs(Block_NO) " & _ "WHERE (((SAW.Block_NO) Is Not Null And (SAW.Block_NO)<>''))" MsgBox "تم تحديث Slabs_in_Bundle لجميع السجلات بنجاح!", vbInformation, "تحديث البيانات" Exit Sub ErrorHandler: MsgBox "حدث خطأ أثناء التحديث: " & Err.Description, vbCritical, "خطأ" End Sub checles.rar
  8. تفضل هذا الكود مهما كان الهوامش . DoCmd.OpenReport "اسم_التقرير", acViewPreview DoCmd.PrintOut acPages, 1, 1
  9. استاذنا الكبير @منتصر الانسي لم تفوتني لأن صاحب الطلب لم يحدد . .... ولم يتفاعل للاسف . تحياتي لك .
  10. 🎯 الفكرة الأساسية الفصل يعني أن يكون لديك ملف قاعدة بيانات (Back-End) يحتوي فقط على الجداول والاستعلامات. وملف آخر (Front-End) يحتوي على النماذج، التقارير، الأكواد (Modules). المستخدمون يتعاملون مع الـ Front-End فقط، بينما الجداول تبقى في الـ Back-End. 🛠️ خطوات الفصل إنشاء ملف Back-End افتح قاعدة البيانات الأصلية. من قائمة Database Tools → Move Data → Access Database. سيقوم Access بإنشاء ملف جديد يحتوي على الجداول فقط. إنشاء ملف Front-End احتفظ بالملف الأصلي كـ Front-End. بعد عملية الفصل، ستجد أن الجداول أصبحت "Linked Tables" مرتبطة بالـ Back-End. الربط (Linking) من الـ Front-End، اذهب إلى External Data → Linked Table Manager. اختر الجداول المراد ربطها وحدد موقع ملف الـ Back-End. Access ينشئ جداول مرتبطة (Linked Tables) بنفس الأسماء، لكن أي تعديل أو إدخال بيانات يتم تخزينه في الـ Back-End. ⚡ ملاحظات مهمة الاستعلامات: إذا كانت الاستعلامات بسيطة (Select)، يمكن أن تبقى في الـ Front-End. أما الاستعلامات المعقدة أو التي تعتمد على حجم بيانات كبير، يفضل نقلها إلى الـ Back-End لتحسين الأداء. الأمان والصيانة: بهذه الطريقة، إذا أردت تحديث النماذج أو الأكواد، توزع نسخة جديدة من الـ Front-End فقط، دون المساس بالبيانات. يمكن وضع الـ Back-End على شبكة مشتركة (Shared Folder) ليستخدمه أكثر من موظف. إعادة الربط التلقائي: يمكنك كتابة كود VBA صغير في الـ Front-End يقوم بالتحقق من وجود الـ Back-End وإعادة الربط تلقائيًا إذا تغيّر المسار. هذا يحل مشكلة اختلاف المسارات بين الأجهزة. 🔑 مثال كود VBA لإعادة الربط Function RelinkTables() Dim db As DAO.Database Dim tdf As DAO.TableDef Dim strPath As String strPath = "C:\Data\MyBackend.accdb" ' مسار ملف الـ Back-End Set db = CurrentDb For Each tdf In db.TableDefs If Len(tdf.Connect) > 0 Then tdf.Connect = ";DATABASE=" & strPath tdf.RefreshLink End If Next tdf MsgBox "تم إعادة ربط الجداول بنجاح!" End Function ✨ بهذه الطريقة يصبح عندك فصل واضح بين البيانات و الواجهة، مما يسهل الصيانة، التوزيع، والتحكم في الأمان. واليك مرفق استاذنا @at_aziz ليوضح لك عملية اعادة الربط . Aziz-1.rar
  11. تفضل استاذ @بلال اليامين المرفق بعد التعديل. لكني انا مابحب اخزن المسار انا بخزن اسم الصورة وامتدادها واستدعيها حتى لو غيرت الكمبيوتر لو تحب .وافني بالرد . البرنامج_2.rar
  12. هل تريد نوبات (ورديات) أم حركة كما كتبت بالجدول ؟؟؟؟؟
  13. تفضل استاذ @dd13901390 تعديل الماكرو بالصورة .
  14. اسماء الجداول والنماذج والتقارير والاستعلامات وحقولهم لابد من اللغة الانجليزية أما غير ذلك أي لغة وبخصوص التقرير تبغاه بأي نموذج .
  15. تفضل استاذ @bader770 محاولتي حسب مافهمت اليك المرفق اليوزر (Bader) والباس (770) وباسوورد الشفت (tariq1991). ويوجد تقرير دخول وخروج المستخدمين . واي استفسار أو تعديل وافني بالرد . Bader770-1.rar
  16. مشاركة مع استاذ @Foksh تفضل استاذ @mostafa_27 محاولتي حسب ما فهمت . اليك المرفق . ووافني بالرد . AQSAM-1.rar
  17. تفضل استاذ @Abdelaziz Osman حسب ما فهمت تفضل الشرح والمرفق ووافني بالرد . Abdelaziz Osman1.rar
  18. تفضل استاذ @shiblelayth مرفق من عندي به طريقتي ادخل البيانات بالنموذجان الاولان ثم النموذج الثالث عند اختيار الموظف يعطيق النتائج التي تريدها . ووافني بالرد shiblelayth.rar
  19. بعد اذن استاذي @Moosak وهذا تصوري للتعامل مع الجداول المرتبطة . القاعدة الرئيسية :- الجدول المطلوبة اساسياً :- (tbl_DesignerPassword) والنموذج المطلوب (frm_DesignerPassword) بالاضافة الي جداول نظامك التي تريدها بالقاعدة الخلفية . ونماذج نظامك كما تريد القاعدة الخلفية :- استيراد بلنك كل الجداول بالقاعد الاساسية التي تدير بها القاعدة الخلفية ولا تنسي الجدول (tbl_DesignerPassword) . استيراد النماذج التي تريدها وتشغيلها من النموذج (frmSwitchBoard) فهو اساسي بالنظام مع النموذجان (Shift) و (FormKeys) . بعد الاستيراد لاتنسي غلق الجداول وعدم تفعيل الشيفت . ملحوظة :- استخدم القاعدة الخلفية بالمرفق وغير اسمها كما تحب لأن بها اعدادات أخرى مخفية خاصة باعدادات ال__ (Ribbon). عند فتح القاعدة الخلفية سيفتح على النموذج :- عند الضغط على الزر (S) سيفتح النموذج (Shift) كما بالجدول اذا ادخلت الباس (1001) ويمكن تغيير بالجدول سيمكنك من تفعيل الشفت اذا خطأ أو خالي عدم تفعيل الشفت . عند الضغط على الزر (HideUnHideTables) اذا ادخلت الباس (tariq1991) ويمكن تغيير بالجدول سيمكنك من اظهار الجداول والاستعلامات اذا خطأ أو خالي عدم اظهرها. اليك المرفق للتجريب وانا حاضر لاي استفسار . Khalifa Test.rar
  20. استاذ @gavan راجع هذه الهدية بتحصل نفسك استقبلتها من قبل ........ بتحل لك مشكلتك من هــــــــــــــنا .
  21. ممكن مشاركتكم اساتذتي بهذا المرفق . كلمة التشفير كلمة واحدة للكل (tariq1991) . أما بخصوص تشفير الرقم اذا كان الحقل (Number) والتاريخ اذا كان الحقل (Date/Time) .مايصير تشفيرهم ويرجعوا كتكست بنفس الحقول . AhmedAmroof.rar
  22. ما باقي بالعمر الكثير ...... وانا بدعبس بملفاتي حصلت مجموعة برمجيات كنت سويتها سابقاً منها هذا المرفق وهو يعمل لدي أحد أصدقائي وللحين مابه مشاكل .. باسوورد تحديث الجداول (1001) وباسوورد الوحدات النمطية أو الشفت (tariq1991) .... أنا برفق الفولدر كامل . القاعدة (WaitingMain 2010) بحجرة التسجيل . القاعدة (Role_CheckUp) بحجرة الكشف العام . القاعدة (Role_Consultation) بحجرة الاستشارات . القاعدة (Role_MedicalAnalytics) بحجرة العلاج الطبيعي . القاعدة (Role_Pharmacy) بالصيدلية . القاعدة (Role_Physiotherapy) بمعمل التحاليل . القاعدة (Role_Radiology) بحجرة الاشعة . .القاعدة (Role_Surgery) بحجرة العمليات . ولابد كل القواعد على شبكة واحده لأن الكل مرتبط بحجرة التسجيل . . واي استفسار أو طلب أنا حاضر . Khalifa Hospital.rar
  23. ضع هذا الكود داخل حدث BeforeDelConfirm أو Delete في نموذج fm4 حسب ما يناسبك. الأفضل استخدام BeforeDelConfirm لأنه يسبق الحذف ويمنحك فرصة التسجيل قبل الإزالة. 📌 الخطوات: افتح النموذج fm4 في وضع التصميم. اضغط على النموذج نفسه (وليس عنصر داخل النموذج). من نافذة الخصائص، اختر الحدث BeforeDelConfirm. اضغط على زر "..." واختر "منشئ الكود". الصق الكود التالي: Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer) Dim db As DAO.Database Dim rs As DAO.Recordset Dim strT4 As String Dim strUser As String Dim strComName As String Dim dtNow As Date Dim userChoice As VbMsgBoxResult ' عرض رسالة تأكيد userChoice = MsgBox("هل أنت متأكد أنك تريد حذف هذا السجل؟", vbYesNo + vbQuestion, "تأكيد الحذف") If userChoice = vbNo Then ' إلغاء الحذف Cancel = True Response = acDeleteCancel Exit Sub End If ' استخراج البيانات من السجل الحالي strT4 = Nz(Me.t4, "") strUser = Environ("Username") strComName = Environ("Computername") dtNow = Now ' فتح الجدول وإضافة سجل جديد Set db = CurrentDb Set rs = db.OpenRecordset("hestable", dbOpenDynaset) rs.AddNew rs!oldrec = strT4 rs!User = strUser rs!Comname = strComName rs!curdata = dtNow rs.Update rs.Close Set rs = Nothing Set db = Nothing ' السماح بالحذف Response = acDeleteOK End Sub 💡 ملاحظات مهمة تأكد أن الحقول التالية موجودة في جدول hestable: oldrec (نص) User (نص) Comname (نص) curdata (تاريخ/وقت) الكود يستخدم Environ("Username") و Environ("Computername") للحصول على اسم المستخدم واسم الجهاز. إذا أردت منع الحذف في حالات معينة (مثلاً إذا كان t4 فارغًا)، يمكن تعديل الكود لإلغاء الحذف عبر: Cancel = True Response = acDeleteCancel
  24. مش فاهم تمت الاجابة للبرنامج أم لمن !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  25. استاذنا @ابوخليل دعنا نكمل رغم ان استاذ @المهاجر ابو معاذ لم يرد احتمال يكون منتظر نهاية العمل.... اعرض عليك المرفق التالي قبل تنفيذ ملاحظاتك ... ProductionOrderTest.rar
×
×
  • اضف...

Important Information