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

kha9009lid

الخبراء
  • Posts

    1,347
  • تاريخ الانضمام

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

  • Days Won

    29

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

  1. تمام عليك استاذ احمد ومن رأيي المتواضع قسم قاعدة البيانات حتى لو يعمل عليها شخص واحد
  2. من تجربتي المتواضعة ان اغلب برامج الاصلاح هدفها استعادة الجداول بمافيها من بيانات لكونها العنصر الاكثر قيمة مثلا لو حصل عطل عند احد العملاء فيمكن تزويدة بنسخة من البرنامج ولكن سيكون خسر بيانات لولا وجود هذه البرامج ومن المؤكد ان النسخ الاحتياطي مهم جدا ويحل المشكلة ولكن للاسف قليلا من يعمل ذلك
  3. الامر موجود ولكن ليس لتصدير كائن وانما يستخدم لحفظ النموذج الحالي الى نموذج جديد او تقرير بعد تحديد اسمه ويكون الكود 👇 DoCmd.RunCommand acCmdSaveAs او DoCmd.RunCommand 21
  4. من الامور الجميلة في اكسس والتي لايعلمها بعض المبتدئين يمكن التصريح باسم الكائن ويمكن وضع قيمته بدون التصريح سبق الاشارة لها مع استاذنا الفاضل @jjafferr يمكن التصريح بالبارامترات ويمكن تجاوزها باستخدام ( , ) ايضا سبق الاشارة لها مع استاذنا جعفر يمكن كتابة الامر بشكل تام او وضع قيمته لاختصار الكود مثال 👇 DoCmd.RunCommand acCmdDatabaseSplitter = DoCmd.RunCommand 520 ----------------- DoCmd.RunCommand acCmdDeleteRecord = DoCmd.RunCommand 223 ------------------ DoCmd.RunCommand acCmdExportExcel = DoCmd.RunCommand 556 وهكذا لكل امر RunCommand قيمة رقمية محددة الامر ان كتابة الامر بشكل كامل اكثر وضوحا ولكن هذه المشاركة من باب اثراء الموضوع
  5. الشكر لله استاذنا الغالي انا افضل التقسيم عن طريق المعالج ويمكن استدعاء المعالج عن طريق الامر DoCmd.RunCommand acCmdDatabaseSplitter
  6. في اصدار 2019 في تبويب ادوات قاعدة البيانات اعتقد 2010 نفس الامر
  7. مشاركة مع الاساتذة الكرام ربما هذا الموضوع يفيدك بدلا تصدير السجل الى pdf ثم ارساله عن طريق الايميل يمكنك عمل تقرير وارسالة للعميل او المورد مباشرة من اكسس بدون الحاجة الى تصديره مع الشكر لاخي @د.كاف يار 👇 مجرد فكره 😎
  8. ليس عنك فقط اخي ازهر بل جزاه الله عنا جميعا كل خير الحقيقة لولا وجود اخواني واساتذتي الفضلاء بدون تسميه لما حرصت على المشاركة بالموقع هذا ردي على استاذي ابو عبد الله في موضوع سابق 👇
  9. يامرحبا ترحيبة كلها لك انا اقول لك جرب كودك في استعلام بعد اسنادة لحقل النص المطلوب تعديله سوف يعمل ببطء شديد وكل ماكانت السجلات اكثر يكون اكثر بطء ثانيا انت استخدمت دالة الاستبدال بعدد احرف الهجائية الانجليزية وبالتالي عدد احرف الكود لديك اكبر ههههههه ثالثا لو كان الحقول مختلطة باحرف ورموز كودك استاذنا لن يعمل حتى تقوم باضافة هذه الرموز رابعا لو كانت بعض الحقول تحتوي على احرف عربية ايضا لن يعمل وسيكون لدينا حمسين Replace اما بشأن العمل في الاستعلام فالاستاذ ازهر لم يحدد ويمكن بتعديل بسيط تعديله الى وحدة نمطية وسوف يعمل Public Function ExNum(sInput) As String Dim s As String, w As String Dim k As Integer If Not IsNull(sInput) Then For k = 1 To Len(sInput) w = Mid(sInput, k, 1) Select Case w Case "0" To "9" s = s & w Case Else End Select Next k End If ExNum = s End Function وللاستدعاء exnum([tx]) وكل عام وانت بخير
  10. جرب Dim k As Integer Dim x As Integer For k = 1 To Len(tx) x = Asc(Mid(tx, k)) If x >= 48 And x <= 58 Then Me.tx2 = tx2 & Mid(tx, k, 1) End If Next k مرفق مثال Database1641.accdb
  11. احسنت اخي حسين انا لما وضعت الرد كنت جدا مشغول كما تعلم ليلة عيد وتركت رسائل الاستعلام على اساس انها معروفة لاغلب الاعضاء وكذلك الحال المطالبة بقيمة معلمة عندما نفتح نموذج الاصناف والنقر على اضافة صنف ونموذج المبيعات مغلق وحتى لا يلحق الصنف بدون رقم العميل لذا وضعت في بداية الكود الامر التالي If (Application.CurrentProject.AllForms("ab_selles").IsLoaded) = False Then MsgBox "لايمكن اضافة الصنف", vbCritical, "تنبية": Exit Sub بمعنى اذا كان النموذج الخاص بالمبيعات مغلق يظهر رسالة ثم ينهى الاجراء وكذلك الحال لزر الاغلاق لاخفاء رسالة قيمة معلمة وعيدكم مبارك اخي حسين تقبل الله منا ومنكم صالح الاعمال الملف مرفق بعد التعديل اضافة الصنف الي عملية البيع2.accdb
  12. هذا الموقع يتحدث عن هذا النوع ربما تجد فيه مايفيد ولاعلم لدي عن هذا النوع ولكن انصح الجميع واخص من لديهم ملفات مهمه بالاتي فعل جدار الحماية الخاص بالويندوز استخدم برنامج لمكافحة الفيروسات وحدثه بشكل دوري حدث نظام التشغيل ولا ترفض او توقف التحديث التلقائي لاتستخدم الكراك او اي برنامج مكرك افحص اي ملف عند تحميله من النت لا تفتح مرفقات اي ايميل الا اذا كنت تثق بالمرسل الكثير من الروابط في مواقع التواصل ملغومة بملفات تجسس او فيروسات فتجنب فتحها احرص دائما على اجراء نسخ احتياطي واحفظ النسخ على هارد خارجي عند اصابة جهازك افصله من النت وافصل اي اجهزة متصله به توجد اجهازة للنسخ الاحتياطي الدوري وهذا الخيار مكلف ولكن اقل تكلفة من فقدان بياناتك وسلامات اخي صالح لعل الله ينهي مشكلتك
  13. مشاركة مع اخي حسين كمال طريقة اخرى عن طريق استعلام الحاق لاكثر من صنف في كل مره تم عمله بشكل سريع ويحتاج الى مراجعه واضافة اخفاء رسائل الاستعلامات الاجرائية وكل عام وانتم بخير اضافة الصنف الي عملية البيع.accdb
  14. استخدم دالة Trim Trim([num]) num اسم الحقل الذي توجد مسافة او فراغ في بدايته اخي عزيز لو وضعت موضوع جديد افضل من رفع موضوع قديم وكل عام وانتم بخير
  15. احسن الله اليكم يا ابا عبد الله وجزاك الله خيرا على الدعاء الطيب وفي ليلة مباركة النموذج من نوع مستمر مبني على استعلام يحتوى على معيار تصفية وحقل معيار التصفية متغير بناء على الحقل الذي نود التصفية من خلاله لذا عملنا قائمة باسماء الحقول وقائمة اخرى نحددة مصدرها بناء على مايتم اختياره من القائمة الاولى وفي حدث بعد التحديث وضعنا متغير يعد السجلات بعد الفلترة ثم استخدمنا Select Case لتحديد طول تذييل النموذج بناء على العدد Me.Requery Dim x As Integer x = DCount("*", "q_1") Select Case x Case Is = 1 Me.FormFooter.Height = 5000 Case Is = 2 Me.FormFooter.Height = 4500 Case Is = 3 Me.FormFooter.Height = 4300 Case Is = 4 Me.FormFooter.Height = 4100 Case Is = 5 Me.FormFooter.Height = 3400 Case Is = 6 Me.FormFooter.Height = 3000 Case Is = 7 Me.FormFooter.Height = 2900 Case Is = 8 Me.FormFooter.Height = 2500 Case Is = 9 Me.FormFooter.Height = 2300 case else Me.FormFooter.Height = 600 End Select الارقام نحددها بدقة بعد التجربة ليكون الارتفاع مناسب في حالة استخدام الواجهة العربية لاكسس تكون Me.FormFooter.Height = 5000 هكذا Me.تذييل_النموذج.Height = 5000 للاسف اني حذفت المثال بعد تصويره لذا اعتذر عن ارفاق المثال 😤
  16. في خدمتك اخي ازهر وجزاك الله خيرا على الدعوة الطيبة
  17. الحقيقة اني نسيت الموضوع وصاحب المشاركة لم يضع رد لرفع الموضوع في المشاركة السابقة وضعنا حل تقليدي عن طريق نموذج فرعي الحل الثاني بدون استخدام نموذج فرعي و التحكم بحجم تذيل النموذج عن طريق الكود بناء على عدد السجلات المعروضة بعد الفلترة
  18. الطريقة الاسهل بعيد عن زحمة الاكواد اجعل مصدر التقرير استعلام مضمن في حقل n اجعل المعيار Like "*" & [Forms]![Fsearch]![x1] & "*" في حقل datein اجعل المعيار Between Nz([Forms]![Fsearch]![x2];"01/01/1900") And Nz([Forms]![Fsearch]![x3];"01/01/2100") الملف مرفق New Microsoft Access قاعدة بيانات (3).accdb
  19. مشاركة مع اخي @king5star واستاذي القدير @أبو عبدالله الحلوانى الفكرة باختصار لاداعي لتغيير تنسيق الحقل الى 0000 وايضا لاداعي لوضع قناع ادخال للحقل ( اكثر خاصية اتجنبها ) وبالتالي نتحكم بمدخلات الحقل وتنسيقها عن طريق كود بسيط في حدث بعد التحديث لحقل رقم If Not IsNumeric([رقم]) Or Len([رقم]) > 4 Then MsgBox "هذا الحقل رقمي فقط وبعدد 4 ارقم" Me.رقم = "" Else Me.رقم = Format([رقم], "0000") End If اذا اردنا ارقام اكثر نغير رقم 4 الى اي رقم اكبر وكذلك نضع اصفار في السطر الخامس بنفس عدد الرقم في السطر الاول الملف مرفق الأرقام.accdb
  20. جرب افتح استعلام الالحاق في عرض التصميم ثم اجعل الفرز تنازلي لحقل الرقم القومي
  21. الطريقة الاسهل قم باخذ نسخة من قاعدة البيانات انسخ الجدول واعادة لصقه في نفس القاعدة عند اللصق اختار البنية فقط اي بدون بيانات ادخل على تصميم الجدول الجديد وعدل الاسم الى مفتاح اساسي اعمل استعلام الحاق من الجدول الاساسي للجدول الجديد اكسس سوف يقول بالحاق السجلات بدون تكرار في الجدول الجديد عندها بامكانك حذف سجلات الجدول الاساسي واستبدالها بالسجلات الغير مكررة مرفق مثالك مع اخلاء مسئوليتي عن اي خطأ dub_names.accdb
  22. الصورة لا تكفي على كل حال من وجهة نظري لا توجد مشكله لكونك تسخدم نموذج مستمر وهذا الفراغ بسبب عدد السجلات كلما قل عدد السجلات كان الفراغ اكبر وكلما زاد عدد السجلات يكون الفراغ اقل انت تعتبر الامر مشكله لذا الحل الاول اجعل هذا النموذج المستمر نموذج فرعي وحدد عدد السجلات التي تظهر عن طريق تحديد حجم الفورم الفرعي مثلا عدد السجلات التي تظهر 5 او 6 سجلات و الحقل الظاهر اسفل النموذج ضعه في النموذج الرئيسي مباشرة اسفل النموذج الفرعي وهو الحل الاكثر عمليه في حالتك
×
×
  • اضف...

Important Information