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

kha9009lid

الخبراء
  • Posts

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

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

  • Days Won

    29

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

  1. من الامور الجميلة في اكسس والتي لايعلمها بعض المبتدئين يمكن التصريح باسم الكائن ويمكن وضع قيمته بدون التصريح سبق الاشارة لها مع استاذنا الفاضل @jjafferr يمكن التصريح بالبارامترات ويمكن تجاوزها باستخدام ( , ) ايضا سبق الاشارة لها مع استاذنا جعفر يمكن كتابة الامر بشكل تام او وضع قيمته لاختصار الكود مثال 👇 DoCmd.RunCommand acCmdDatabaseSplitter = DoCmd.RunCommand 520 ----------------- DoCmd.RunCommand acCmdDeleteRecord = DoCmd.RunCommand 223 ------------------ DoCmd.RunCommand acCmdExportExcel = DoCmd.RunCommand 556 وهكذا لكل امر RunCommand قيمة رقمية محددة الامر ان كتابة الامر بشكل كامل اكثر وضوحا ولكن هذه المشاركة من باب اثراء الموضوع
  2. الشكر لله استاذنا الغالي انا افضل التقسيم عن طريق المعالج ويمكن استدعاء المعالج عن طريق الامر DoCmd.RunCommand acCmdDatabaseSplitter
  3. في اصدار 2019 في تبويب ادوات قاعدة البيانات اعتقد 2010 نفس الامر
  4. مشاركة مع الاساتذة الكرام ربما هذا الموضوع يفيدك بدلا تصدير السجل الى pdf ثم ارساله عن طريق الايميل يمكنك عمل تقرير وارسالة للعميل او المورد مباشرة من اكسس بدون الحاجة الى تصديره مع الشكر لاخي @د.كاف يار 👇 مجرد فكره 😎
  5. اكيد اعرف يا ابا عبد الله 🙂
  6. ليس عنك فقط اخي ازهر بل جزاه الله عنا جميعا كل خير الحقيقة لولا وجود اخواني واساتذتي الفضلاء بدون تسميه لما حرصت على المشاركة بالموقع هذا ردي على استاذي ابو عبد الله في موضوع سابق 👇
  7. وهذه نتيجة عد الاحرف =Len([tx2])
  8. يامرحبا ترحيبة كلها لك انا اقول لك جرب كودك في استعلام بعد اسنادة لحقل النص المطلوب تعديله سوف يعمل ببطء شديد وكل ماكانت السجلات اكثر يكون اكثر بطء ثانيا انت استخدمت دالة الاستبدال بعدد احرف الهجائية الانجليزية وبالتالي عدد احرف الكود لديك اكبر ههههههه ثالثا لو كان الحقول مختلطة باحرف ورموز كودك استاذنا لن يعمل حتى تقوم باضافة هذه الرموز رابعا لو كانت بعض الحقول تحتوي على احرف عربية ايضا لن يعمل وسيكون لدينا حمسين 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]) وكل عام وانت بخير
  9. جرب 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
  10. احسنت اخي حسين انا لما وضعت الرد كنت جدا مشغول كما تعلم ليلة عيد وتركت رسائل الاستعلام على اساس انها معروفة لاغلب الاعضاء وكذلك الحال المطالبة بقيمة معلمة عندما نفتح نموذج الاصناف والنقر على اضافة صنف ونموذج المبيعات مغلق وحتى لا يلحق الصنف بدون رقم العميل لذا وضعت في بداية الكود الامر التالي If (Application.CurrentProject.AllForms("ab_selles").IsLoaded) = False Then MsgBox "لايمكن اضافة الصنف", vbCritical, "تنبية": Exit Sub بمعنى اذا كان النموذج الخاص بالمبيعات مغلق يظهر رسالة ثم ينهى الاجراء وكذلك الحال لزر الاغلاق لاخفاء رسالة قيمة معلمة وعيدكم مبارك اخي حسين تقبل الله منا ومنكم صالح الاعمال الملف مرفق بعد التعديل اضافة الصنف الي عملية البيع2.accdb
  11. هذا الموقع يتحدث عن هذا النوع ربما تجد فيه مايفيد ولاعلم لدي عن هذا النوع ولكن انصح الجميع واخص من لديهم ملفات مهمه بالاتي فعل جدار الحماية الخاص بالويندوز استخدم برنامج لمكافحة الفيروسات وحدثه بشكل دوري حدث نظام التشغيل ولا ترفض او توقف التحديث التلقائي لاتستخدم الكراك او اي برنامج مكرك افحص اي ملف عند تحميله من النت لا تفتح مرفقات اي ايميل الا اذا كنت تثق بالمرسل الكثير من الروابط في مواقع التواصل ملغومة بملفات تجسس او فيروسات فتجنب فتحها احرص دائما على اجراء نسخ احتياطي واحفظ النسخ على هارد خارجي عند اصابة جهازك افصله من النت وافصل اي اجهزة متصله به توجد اجهازة للنسخ الاحتياطي الدوري وهذا الخيار مكلف ولكن اقل تكلفة من فقدان بياناتك وسلامات اخي صالح لعل الله ينهي مشكلتك
  12. مشاركة مع اخي حسين كمال طريقة اخرى عن طريق استعلام الحاق لاكثر من صنف في كل مره تم عمله بشكل سريع ويحتاج الى مراجعه واضافة اخفاء رسائل الاستعلامات الاجرائية وكل عام وانتم بخير اضافة الصنف الي عملية البيع.accdb
  13. استخدم دالة Trim Trim([num]) num اسم الحقل الذي توجد مسافة او فراغ في بدايته اخي عزيز لو وضعت موضوع جديد افضل من رفع موضوع قديم وكل عام وانتم بخير
  14. احسن الله اليكم يا ابا عبد الله وجزاك الله خيرا على الدعاء الطيب وفي ليلة مباركة النموذج من نوع مستمر مبني على استعلام يحتوى على معيار تصفية وحقل معيار التصفية متغير بناء على الحقل الذي نود التصفية من خلاله لذا عملنا قائمة باسماء الحقول وقائمة اخرى نحددة مصدرها بناء على مايتم اختياره من القائمة الاولى وفي حدث بعد التحديث وضعنا متغير يعد السجلات بعد الفلترة ثم استخدمنا 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 للاسف اني حذفت المثال بعد تصويره لذا اعتذر عن ارفاق المثال 😤
  15. في خدمتك اخي ازهر وجزاك الله خيرا على الدعوة الطيبة
  16. الحقيقة اني نسيت الموضوع وصاحب المشاركة لم يضع رد لرفع الموضوع في المشاركة السابقة وضعنا حل تقليدي عن طريق نموذج فرعي الحل الثاني بدون استخدام نموذج فرعي و التحكم بحجم تذيل النموذج عن طريق الكود بناء على عدد السجلات المعروضة بعد الفلترة
  17. الطريقة الاسهل بعيد عن زحمة الاكواد اجعل مصدر التقرير استعلام مضمن في حقل 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
  18. مشاركة مع اخي @king5star واستاذي القدير @أبو عبدالله الحلوانى الفكرة باختصار لاداعي لتغيير تنسيق الحقل الى 0000 وايضا لاداعي لوضع قناع ادخال للحقل ( اكثر خاصية اتجنبها ) وبالتالي نتحكم بمدخلات الحقل وتنسيقها عن طريق كود بسيط في حدث بعد التحديث لحقل رقم If Not IsNumeric([رقم]) Or Len([رقم]) > 4 Then MsgBox "هذا الحقل رقمي فقط وبعدد 4 ارقم" Me.رقم = "" Else Me.رقم = Format([رقم], "0000") End If اذا اردنا ارقام اكثر نغير رقم 4 الى اي رقم اكبر وكذلك نضع اصفار في السطر الخامس بنفس عدد الرقم في السطر الاول الملف مرفق الأرقام.accdb
  19. جرب افتح استعلام الالحاق في عرض التصميم ثم اجعل الفرز تنازلي لحقل الرقم القومي
  20. الطريقة الاسهل قم باخذ نسخة من قاعدة البيانات انسخ الجدول واعادة لصقه في نفس القاعدة عند اللصق اختار البنية فقط اي بدون بيانات ادخل على تصميم الجدول الجديد وعدل الاسم الى مفتاح اساسي اعمل استعلام الحاق من الجدول الاساسي للجدول الجديد اكسس سوف يقول بالحاق السجلات بدون تكرار في الجدول الجديد عندها بامكانك حذف سجلات الجدول الاساسي واستبدالها بالسجلات الغير مكررة مرفق مثالك مع اخلاء مسئوليتي عن اي خطأ dub_names.accdb
  21. الصورة لا تكفي على كل حال من وجهة نظري لا توجد مشكله لكونك تسخدم نموذج مستمر وهذا الفراغ بسبب عدد السجلات كلما قل عدد السجلات كان الفراغ اكبر وكلما زاد عدد السجلات يكون الفراغ اقل انت تعتبر الامر مشكله لذا الحل الاول اجعل هذا النموذج المستمر نموذج فرعي وحدد عدد السجلات التي تظهر عن طريق تحديد حجم الفورم الفرعي مثلا عدد السجلات التي تظهر 5 او 6 سجلات و الحقل الظاهر اسفل النموذج ضعه في النموذج الرئيسي مباشرة اسفل النموذج الفرعي وهو الحل الاكثر عمليه في حالتك
  22. جزاك الله خير اخي وكل عام وانتم بخير
  23. السؤال لاستاذنا ابو خليل والموضوع قديم وكان الاجراء الصحيح وضع مشاركة جديدة والاشارة ضمنها لهذا الموضوع ولكن سوف اجيب على اخي وصديقي العزيز ابو اشرف هنا معلمنا حجز متغير من نوع عنصر تحكم لكونه يرغب تطبيق الشرط على كل العناصر في التقرير هذه العناصر في النماذج او التقرير قد تكون مربع نص او قائمة او تسمية او مربع تحرير وسرد او خانة اختيار الخ ..... وهنا قائمة بعناصر التحكم وقيمة كل منهم Name Value Description acAttachment 126 Attachment control acBoundObjectFrame 108 BoundObjectFrame control acCheckBox 106 CheckBox control acComboBox 111 ComboBox control acCommandButton 104 CommandButton control acCustomControl 119 ActiveX control acEmptyCell 127 EmptyCell control acImage 103 Image control acLabel 100 Label control acLine 102 Line control acListBox 110 ListBox control acNavigationButton 130 NavigationButton control acNavigationControl 129 NavigationControl control acObjectFrame 114 Unbound ObjectFrame control acOptionButton 105 OptionButton control acOptionGroup 107 OptionGroup control acPage 124 Page control acPageBreak 118 PageBreak control acRectangle 101 Rectangle control acSubForm 112 SubForm control acTabCtl 123 Tab control acTextBox 109 TextBox control acToggleButton 122 ToggleButton control acWebBrowser 128 WebBrowserControl control وعندما نرغب الاشارة الى عنصر تحكم مثلا ن(عنصر تسميه) ممكن نصرح بنوعه مباشرة فيكون ctli.ControlType = aclabel او نشير الى قيمته بدون تصريح ليكون ctli.ControlType = 100 نعم ممكن ويكون الكود If Len(num.Value) > 55 Then Me.num.FontSize = 7 Else Me.num.FontSize = 12 End If هنا اذا كان عدد الاحرف للحقل الاسم اكبر من 55 يكون حجم الخط 7 وان كان اقل يكون 12 ويمكن اضافة اكثر من شرط النتيجة تكون ظاهرة في معاينة قبل الطباعة للتقرير مرفق مثال بسيط Database1601.accdb
  24. ههههههه اكيد استاذنا الفاضل الشرح للمبتدئين وكنت بكتبها في الرد السابق ولكني نسيت والله
×
×
  • اضف...

Important Information