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

kha9009lid

الخبراء
  • Posts

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

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

  • Days Won

    29

Community Answers

  1. kha9009lid's post in مساعدة في تمكين الحذف للعدة نماذج was marked as the answer   
    ممكن عملها
    ولكن لماذا لا نجعلها صلاحيات للاضافة والتعديل والحذف على مستوى النموذج ولكافة النماذج ويمكن مستقبلا اضافة نظام مستخدمين وربطها معا
    ولكن دعنا حاليا في الصلاحيات الثلاث
    بحيث يكون لدينا جدول ياخذ اسم النموذج بشكل تلقائي من جدول النظام المخفي MSysObjects
    وثلاث خانات اختيار اضافة تعديل حذف
    وبالتالي عند فتح النموذج يتم التأكد من هذة الخيارات الثلاث
    جرب الملف المرفق ربما يكون افضل من زر امر
    مع الشكر والتقدير لاستاذنا الفاضل @osama ababneh
     
    New Microsoft Access Database(2).accdb
  2. kha9009lid's post in مساعدة في جلب المجموع من استعلام was marked as the answer   
    =DSum("[genome]";"استعلام1")  
    micro.accdb
  3. kha9009lid's post in مساعدة في كتابة ثلاثة اكواد was marked as the answer   
    Me.AllowAdditions = False Me.AllowDeletions = True Me.AllowEdits = True  
  4. kha9009lid's post in استفسار بخصوص جمع عمود غير منظم was marked as the answer   
    في الحقل النموذج الرئيسي اجعل قيمته تساوي
    =IIf(Not IsNull([m]);DSum("[a]*[b]";"جدول3";"[المعرف1]=" & [المعرف] & "and [se]=-1");0) في حدث بعد التحديل للحقل se
    Forms![ÌÏæá2].Refresh النلف مرفق واختبرة زين راسي مصدع وعملتة بشكل سريع بدون اختبار للتأكد
     
    time(1).accdb
  5. kha9009lid's post in ما سبب تصغير ارتفاع فورم الى عملية ( نمط الحدود - مربع حوار ) was marked as the answer   
    بالامكان التحكم بابعاد النموذج الطول والعرض عن طريق الكود في حدث عند الفتح
    Me.InsideHeight = 7500 Me.InsideWidth = 7000 او هكذا
    Me.Form.InsideHeight =7500 Me.Form.InsideWidth = 7000 غير الرقم وفقا للحجم المناسب للفورم
     
     
    ارتفاع.accdb
  6. kha9009lid's post in استفسار بخصوص الغاء ctrl+o في الاكسس was marked as the answer   
    ممكن عن طريق مايكرو
    انشاء مايكرو
    مايكرو فرعي
    ^o ثم حفظ وسمي المايكرو AutoKeys
     

     
    Database1181.accdb
  7. kha9009lid's post in طهور رسالة ( type mismath ) was marked as the answer   
    جرب الان
    الاقساط.accdb
  8. kha9009lid's post in استفسار حول الفرق بين دالتين was marked as the answer   
    Requery يقوم بتحديث البيانات من مصدر السجل ويعكس كافة التغييرات التي تمت على السجلات ويعيدك للسجل الاول
    refersh يحدث البيانات الحالية في النموذج وماتم عليها من تعديل
     
  9. kha9009lid's post in ظهار التقرير على حسب الفراز من النموذج was marked as the answer   
    نعم كل شي ممكن في اكسس
    نستبدل الكود السابق بكود فلترة لحقلين
    Dim k As String Dim x As String k = "taxt_name1 like '*" & city & "*'" x = "[year_1] like '*" & cmbLocation & "*'" Me.frmOrder.Form.Filter = k & " and " & x Me.frmOrder.Form.FilterOn = True بالامكان الفلترة بالعام فقط او بالمدينة فقط او الفلترة بالحقلين
    الملف مرفق مع رجاء التقيد بتعليمات الموقع سؤال واحد حتى مايزعلوا علينا المشرفين ويغلقوا المشاركة
     
     
     
    عمل الفراز(1).accdb
  10. kha9009lid's post in عمل مربع نص يظهر رقم السجل was marked as the answer   
    لا اعلم اذا كان فهمي صحيح جرب الملف المرفق
     
     
     
    Database1121.accdb
  11. kha9009lid's post in ظهور تسمية الايقونة was marked as the answer   
    من خصائص زر الامر
     
     

  12. kha9009lid's post in الدالة dsum داخل الاستعلام was marked as the answer   
    Nz(DSum("[Expr1]";"[Q1]";"[id] =" & [id] & "And [Dat_bill] Between #01/01/2020# And #31/01/2020#");0)  
    مثال اوفيسنا الدالة dsum(1).accdb
  13. kha9009lid's post in مساعدة في اختبار امان قاعدة بيانات was marked as the answer   
    اخي @ازهر عبد العزيز
    لا يوجد خطأ اكسس ضعيف جدا في موضوع الحماية
    ايضا استخدام كلمة مرور في inputbox تكون كلمة المرور موجودة في محرر الاكواد وحتى وان كانت  القاعدة محولة الى ACCDE وبالتالي لا يمكن الدخول على الاكواد
    الا ان هناك طرق عديدة لتجاوز ذلك وهذه واحدة من الطرق
    تحياتي
     
  14. kha9009lid's post in كود جمع was marked as the answer   
    في الطريقة التي اشار اليها الاستاذ @أحمد الفلاحجى اعتمدت الاستاذة زهرة على وضع حقل غير منظم بالنموذج الفرعي
    وقيمته تساوي
    =Nz(Sum([total]);0) وفي حقل الاجمالي للنموذج
    =Forms![إجمالى فاتورة البيع(مبيعات الأسمنت]![تفصيل فاتورة البيع]!TOT ومكن اختصار الطريقة بدون الحاجة للحقل غير المنظم في الفرعي باستخدام دالة dsum
    =Nz(DSum("[total]";"تفصيل فاتورة البيع";"[im_id]='" & [im_ID] & "'");0) المثال في المرفق
     
    TOTAL.accdb
  15. kha9009lid's post in اجمالي فواتير اليوم was marked as the answer   
    اولا الشكر لله سبحانه
    ثانيا شرح الكود الاول
    اجمالي حقل am_re الموجود في جدول pu_inv بشرط تاريخ الفواتير يساوي تاريخ الفاتورة التي نستعرضها حاليا وان تكون الفاتورة فاتورة بيع وخلاف ذلك تكون النتيجة صفر
    ثالثا شرح الكود الثاني
    اجمالي حقل am_re الموجود في جدول pu_inv بشرط تاريخ الفواتير يساوي تاريخ هذا اليوم وان تكون الفاتورة فاتورة بيع وخلاف ذلك تكون النتيجة صفر
    اخيرا المديول كتبه استاذنا الفاضل @jjafferr جزاه الله عنا كل خير وهو يسهل وضع معايير التاريخ
    تحياتي وتقديري
     
  16. kha9009lid's post in عدد الاشهر was marked as the answer   
    توجد طريقة اسهل للتصفية بين تاريخين استخدمتها لبرنامج اقساط تعاوني
    ربما تفيدك
    السنة الماضية
    السنة الحالية
    اخر تسعة اشهر
    اخر ستة اشهر
    اخر ثلاث اشهر
    الخ
    جرب الملف المرفق علما باني ربما لم افهم مطلوبك بشكل صحيح
     
    الفلتره بين تاريخين.accdb
  17. kha9009lid's post in تنقل بين السجلات من خلال ازرار فورم اخر was marked as the answer   
    ممكن وهذه احدى الطرق
    في الفورم الرئيسي الذي يحتوى على السجلات نضع ثلاث ازرار امر مخفية
    الاول للانتقال للسجل التالي
    Public Sub c_1_Click() DoCmd.GoToRecord , , acNext End Sub الثاني للسجل الاول
    Public Sub c_2_Click() DoCmd.GoToRecord , , acFirst End Sub الثالث للسجل الاخير
    Public Sub c_3_Click() DoCmd.GoToRecord , , acLast End Sub هذة الازرار الثلاثة جعلناها مشتركة وليست خاصة من خلال استبدال العبارة الافتراضية للحدث من Private اي خاص الى Public وبالتالي يمكن استدعاء هذا الحدث من نموذج اخر
    ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
    الان العمل في الفورم الثاني
    ايضا في النموذج الثاني الخاص بازرار التنقل وضعنا في الامر الاول
    Form_Form2.SetFocus Call Form_Form2.c_2_Click اولا نقلنا التركيز للنموذج الخاص بالسجلات ثم ارسلنا امر لتنفيذ امر الانتقال للسجل الاول
    للانتقال للسجل التالي وضعنا الامر
    On Error GoTo ErrorHandler Dim rst As DAO.Recordset Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst rc = rst.RecordCount If Me.CurrentRecord < rc Then Form_Form2.SetFocus Call Form_Form2.c_1_Click End If Exit Sub ErrorHandler: MsgBox "السجل الاخير ", vbInformation, "تنبية" والهدف التخلص من رسالة خطا بعد السجل الاخير
    للانتقال لاخر سجل وضعنا الامر
    Form_Form2.SetFocus Call Form_Form2.c_3_Click ملفك في المرفقات
    ملاحظة ممكن اختصار الخطوات ولكن وحدت ان هذة الطريقة توضح الخطوات بشكل افضل
    تنقل بين سجلات من خلال ازرار فورم اخر.accdb
  18. kha9009lid's post in زر واحد يقوم باكثر من امر was marked as the answer   
    نعم ممكن ومن اسهل الطرقلتنفيذ ذلك
    If Me![c_8].Caption = "نساء" Then Me.Type = "نساء" Me.c_8.Caption = "رجال" ElseIf Me![c_8].Caption = "رجال" Then Me.Type = "رجال" Me.c_8.Caption = "اطفال" ElseIf Me![c_8].Caption = "اطفال" Then Me.Type = "اطفال" Me.c_8.Caption = "نساء" End If وتفسيرة كما يلي
    اذا كانت تسمية زر الامر نساء اجعل قيمة النوع نساء غير تسمية الامر الى رجال اذا كانت تسمية الامر رجال اجعل النوع رجال غير تسمية الامر الى اطقال اذا كانت تسمية الامر اطفال اجعل النوع اطفال غير التسمية لزر الامر الى نساء وذلك للاستمرار في دورة تنفيذ الكود اغلق الشرط الملف مرفق
    Database1011.accdb
  19. kha9009lid's post in استفسار حول تنسيق حقول في نماذج مختلفة من خلال نموذج منفصل was marked as the answer   
    مرحبا استاذ @ازهر عبد العزيز
    اولا اعتذر عن التعديل على مرفقك لعدم توفر اكسس لدي لكون عملي حاليا في بيئة عمل مختلفة
    وفي هذا الرد سوف اضع تلميح لكيفية التحكم بانواع الحقول من خلال الكود واعتذر مقدما اذا لم تجد فيه الجواب المطلوب
    لتغيير الحقل الى نوع رقم
    Dim x As Variant x = "ALTER TABLE [tbl1] ALTER COLUMN [tx8] LONG" DoCmd.RunSQL x ويمكن كتابتة بالشكل التالي
    DoCmd.RunSQL "ALTER TABLE [tbl1] ALTER COLUMN [tx8] Integer" او DoCmd.RunSQL "ALTER TABLE [tbl1] ALTER COLUMN [tx8] LONG" حسب نوع الحقل الرقمي
    تغيير الحقل الى نوع مزدوج يكون على النحو التالي
    DoCmd.RunSQL "ALTER TABLE [tbl1] ALTER COLUMN [tx8] Double" الى نوع نص
    DoCmd.RunSQL "ALTER TABLE [tbl1] ALTER COLUMN [tx8] String" واذا اردنا ان نحدد طول الحقل النص يمكن كتابتة
    DoCmd.RunSQL ("ALTER TABLE [tbl1] ALTER COLUMN [tx8] TEXT(30);") اما حقل التاريخ فيكون
    DoCmd.RunSQL "ALTER TABLE [tbl1] ALTER COLUMN [tx8] date" النوع العملة يكون على النحو التالي
    DoCmd.RunSQL "ALTER TABLE [tbl1] ALTER COLUMN [tx8] Currency" لتحويل تنسيق الحقل الى علمي
    Set db = CurrentDb db.TableDefs("tbl1").Fields("tx8").Properties.Append db.CreateProperty("Format", dbText, "scientific") بعد تعديل التنسيق بالكود السابق تحتاج الى التعديل اليدوي في حالة الرغبة في التغيير مرة اخرى
    في جميع الاحوال لا انصح بالعبث في الحقول والمفروض ان التخطيط الجيد قبل واثناء انشاء قواعد البيانات يغني عن الحاجة للتعديلات
    اضافة الى ان تغيير نوع الحقل قد يؤدي الى فقدان البيانات لهذا الحقل وخصوصا اذا كان الحقل مرتبط بجداول اخرى قد يعطل عمل القاعدة
  20. kha9009lid's post in مساعدة حول طرح رقم من تاريخ في الجدول was marked as the answer   
    اضافة لما تفضل به الاستاذ @أحمد الفلاحجى
    اذا لم ترغب في الاستعلام
    ممكن عملها في النموذج في حدث بعد التحديث للحقل time نضع الكود التالي
    Me.dated = DateAdd("d", -[time], Date)  
  21. kha9009lid's post in مساعدة في اظهار قيمة حقل بالنسبة لتاريخ في حقل اخر was marked as the answer   
    IIf([dateexp]<=[datee];"red";"green") ما اعرف انا فهمت المطلوب لكن قلت باشارك
    exp - Copy.accdb
  22. kha9009lid's post in زر يحتوي على كتابة وصورة was marked as the answer   
    انظر للصورة واعمل مثلها ترتيب التسمية التوضيحية اجعلة عام او يمين او يسار حسب رغبتك
    ويمكن تحميل الايقونات من الموقع في الاسفل
    موقع ايقونات
     


  23. kha9009lid's post in مشكلة في فتح تقرير was marked as the answer   
    اضف امر حفظ قبل الفتح
     
    TEST1 - Copy.accdb
  24. kha9009lid's post in عند عمل Requery was marked as the answer   
    بعد اذن اساتذتنا الافاضل @أحمد الفلاحجى و @محمد ابوعبد الله
    اذا كنت ترغب في استخدام الامر Me.Requery
    يمكن عملها عن طريق
    Dim x As Integer x = CurrentRecord Me.Requery Me.PCode.SetFocus DoCmd.FindRecord x, acAnywhere, , acSearchAll حجز متغير باسم x
    المتغير يساوي السجل الحالي
    تحديث
    نقل التركيز للحقل pcode
    البحث عن السجل الى كنا واقفين عليه
    في خاصية النموذج حقل pcode كان غير ممكن وغيرته الى ممكن
    النموذج مرفق
    بالتأكيد توجد طرق اخرى ولكن هذا ماجاء على بالي واعذرني في حالة عدم الرد لا نشغالي في ضل الاوضاع الكرونية اجارنا الله جميعا منها
     
    Dental.accdb
  25. kha9009lid's post in الرصيد ماقبل تاريخ من وترصيد الحساب was marked as the answer   
    اهلا اخي رعد
    شوف الصورة
     

    حركة صندوق 2.accdb
×
×
  • اضف...

Important Information