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

رمهان

الخبراء
  • Posts

    2,390
  • تاريخ الانضمام

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

  • Days Won

    24

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

  1. شكرا استاذ مارد ومشاركة معكم وبعد اذنك اخي المتفائل : جميل عملك ويظهر ان لديك الاساسيات للانطلاق في عالم الاكسس ! حيث انشاء العلاقات السليمة هي الاساس ونقطة الانطلاق ! وقد رايته في مرفقك ولكن لدي تعليقات واقتراحات بسيطة قد تفيدك وهي تحسينات فقط : 1. كانت المشكلة ان حقل رقم الموظف في جدول التسجيل مفهرس بدون تكرار من ما يجعل العلاقة تكون راس براس وقد قام الاستاذ مارد بتغيير خاصية الحقل للاصح مشكورا ( اسف استاذ محمد عصام مشكورا لم ارى مشاركتك الا بعد الرفع ) 2. وجدت مسمى مساقات ودورات وفي النهاية اصبح مصطلح دورات في الجداول المرتبطة لذلك غير اسم مساقات الى دورات او قد يكون هناك جدول ناقص وهو الدورات حيث للمساق الواحد اكثر من دورة 3. بما ان جدول المساقات هو بمثابة الدورات الآن فعليك بتحريك عمودي بداية الدورة ونهايتها الى جدول المساقات ! طبعا ستكرر اسماء المساقات عند تكرار المساق بتواريخ جديدة لذلك حبذا وجود جدول الدورات مرتبطا بالمساقات ويصبح المساق بمثابة الفتة او التصنيف ويحل محل المساقات في العلاقات الحالية 4. لاداعي لوجود جدول العلامات فيمكن تحريك عمود العلامة الى جدول التسجيل ولايظهر في نماذج ادخال بيانات التسجيل ويظهر في نموذج ادخال العلامات : فاصبح نقول في جدول التسجيل هذا الطالب في هذه الدورة وبهذا المدرس وبتسجيل هذا الموظف وهذه علامته ! 5. احيطك علما فقط وحسب تصميمك الحالي لو سالنا سؤالا يقول ( فلسفة رمهانية) : نريد ان نعين (نضع) المدرسين في الكورسات التي سيدرسونها (جدولة المدرسين على الدورات) ثم نقوم بتسجيل الطلاب لاحقا حيث الطالب سيسجل في دورة وقد علم من مدرسها : هنا ستقول لامشكلة نقوم بادخال بيانات الدورة والمدرس في جدول التسجيل ولاحقا نقوم بادخال الطلاب كتعديل على السجلات السابقة ! ولكن هنا لو حبيت اعرف من الموظف الذي ادخل البيانات السابقة او تاريخ فتح الدورة ومعرفة من قام بتسجيل الطلاب وتاريخ التسجيل ! هنا لابد من فصل جدول تعيين او جدولة المدرسين على الدورات وجدول تسجيل الطلاب بجدول اخر ! هذا وكذلك لوحبينا نعرف من رصد الدرجة والتاريخ فلابد من جدول العلامات منفصل وبه رقم الموضف وتاريخ الرصد !! تحياتي وبالتوفيق
  2. جزاك الله خيرا استاذ محمد عصام تعديل بسيط على الكود : سنجعل جملة التعديل تاخذ القيمة حسب قيمة العنصر وبدون قيم صريحة في الكود : DoCmd.SetWarnings False DoCmd.RunSQL "UPDATE sss SET sss.a =" & ch Me.Requery DoCmd.SetWarnings True تحياتي
  3. اخي وائل اولا خلينا نعدل على شغلك وبنفس فكرتك ان لكل صنف زر امر مكتوبا عليه اسم الصنف ! وعند الضغط على الزر يشيك اذا موجود يقوم باضافة 1 على الكمية واذا مش موجود يقوم باضافته كسجل جديد ويكمية 1 ! طبعا هذا نفس السيناريو الذي مشيت به ولكن سننفذه بطريقة رمهانية ( اتهمني احد الاعضاء بانني اختصر الاكواد واختزلها ليس احتراف وانما دمج اسطر وعدم تعريف متغيرات ) !! هنا احتاج فرصة وقت وسارفعه هنا ! اما مسالة ماهي الطريقة الاصح لعمل فاتورة بيع مناسبة لشاشة لمس وقائمة مطعم !! فسيكون موضوع جديد وان شاء الله قريبا اخي وائل حيث يحتاج لوقت ! تحياتي
  4. اخي وائل الموضوع مش موضوع تنسيق ! ركز فيما سألت واجب بما ستعمل!! تنبيه : انت تقوم باضافة اكواد الاصناف من خلال الكود ؟ ماهذا اخ وائل ؟؟ لو تغير رقم الصنف ماذا ستفعل بل لو عندك 10 اصناف ولن اقول 1000 ؟!! هل ستضيف 10 اكواد شرطية ؟! البرنامج يحتاج الى اعادة بناء !! وان كنت تريد المواصلة ضع هذا السطر في اول كود لكل من زري الامر Me.F_ordersubform.Form.Recordset.FindFirst "itemcode='1001'" Me.F_ordersubform.Form.Recordset.FindFirst "itemcode='1002'" بالتوفيق
  5. الموضوع فعلا غريب ! واتوقع ان الحل الصحيح هو ان تكون الجملة insert وليس update وحسب العنوان : الحاقي وليس تحديث !! كما ان جملة التحديث السابقة بها ملاحظة وهي ان الجملة لا تستطيع اخذ القيمة المتغيرة من النموذج ! بالتوفيق جميعا
  6. حياكم الله اخواني جميعا خلونا نسال الاخ وائل : وضعت الازرار على النموذج وبعناوين لاصناف ثابتة !! كيف لما تسلم البرنامج لعميل ان تتغير عناوين الازرار حسب الصنف ؟؟؟ بل العدد كذلك ؟؟؟ ام هذا البرنامج خاص فيك !! حتى ولو خاص فيك شلون لو حذفت اصناف كيف تتغير ازرار الامر تلقائيا !! بالتوفيق
  7. هل هذا ماتقصد تم اضفة عمود بالجدول لتثبيت العملة لكل مورد على حدة ! لاحظ الحدثين بعد التحديد لمربع التحرير والسرد وكذلك الحالي للنموذج الفرعي لاحظ انه يمكن تغيير التنسيق من خصائص مربع التحرير والسرد ومن قائمة القيم بالتوفيق Database21.rar
  8. اخي الكريم ما ذكره الاستاذ مارد في انه غير منطقي عين الصواب وخليني نقول لك ليش : كيف تقول لمورد اعطيناك 500 جنيه ! وهي امامك 500 دولار !! هذه من ناحية نظرية ! لو جينا من ناحية عملية : يجب ان تعلم انه العملة متغيرة بناء على الحركة التجارية سواء بيع - شراء - سداد - قرض- ايا كانت الحركة بل هي تعتبر من الميزات في البرامج لما يقول لك متعدد العملات بس مش معناته زي ما انت فاهم هي عملية تنسيق فقط بل هناك عمليات تحويل معقدة في الخلف مع الحفاظ على الحسابات المرتبطة ! وخليني اسالك هل من المعقول اثبت نوع وحدة القياس للبضاعة لكل عميل على حدة ؟؟ والا ممكن العميل يشتري على مزاجه اي وحدة قياس هوه عايز مثلا بالحبة بالكرتونة بالحاوية .. الخ ! لذلك ضع عمود جديد في تفاصيل الفاتورة باسم العملة وكذا كل صف في تفاصيل الفاتورة له عملة مختلفة مع عمل التحويلات اللازمة والمسالة ستصبح سهلة في الطباعة اوالعرض ! اخيرا : مارأيك : هل اقتنعت والا تريد عمل ماطلبت كتنسيق فقط وتغير القيم مش مهم >>> انظر المرفق !! بالتوفيق Database21.rar
  9. موضوع جميل جدا اعزائي ! وحبيت اشارك بالمعلومات التالية : 1. يعتبر فكرة مناسبة لاكسس زمان ! ايام 2003 ! وقد طرح في موقع الفريق العربي على ما اذكر ومن اخ اسمه هشام ! وهذا رابط الشرح بالفيديو إنشاء قاعدة بيانات علي الانترنت وربطها بمايكروسوفت إكسيس - YouTube 2. هناك حلول جديدة من ميكروسوف وهي : - باستخدام الشير بوينت حيث يوجد به خدمة اضافية اسمها اكسس سيرفيس تتيح الربط بملفات اكسس ليعمل ملف على الانترنت طبعا لابد ان يكون نوع الملف اكسس انترنت وذلك من خيارات انشاء ملف جديد في الاصداري 2010 و 2013 لان الشاشات والتقارير لابد ان تكون صديقة لمستعرض الويب ! - استخدام sql azure وهو ضمن التحول للتقنية السحابية clouding طبعا مشاركتي هي معلومة فقط وليس لي خبرة في ذلك ! اي هي مفاتيح فقط وعليك البحث عن التفاصيل وفي اي من المصادر التعليمية الموثوقة ! تحياتي
  10. هل البرنامج للتطبيق العملي !! ام انها مسألة لديك او مشروع وتريد تنفيذ ماتم رسمه كما بالصورة ! اي ان اي مربع هو كينونة وتريد تحويلها لجدول ! لو الموضوع برنامج : جدول واحد فقط وهو الحضور والباقي يمكن ان تكون قوائم منسدلة فقط بل مارأيك انه يمكن استخراجها حسابيا! يمكن جدول الطلاب كجدول ثاني ! حسب تحليل رمهان ! بالتوفيق
  11. اهلا بك اخينا راعي الغنم !! وبعد اذن الاستاذ مارد ! اذا ممكن تضعه موضوع جديد ! تحياتي
  12. اهلا بك اخينا راعي الغنم !! وبعد اذن الاستاذ مارد ! اذا ممكن تضعه موضوع جديد ! تحياتي
  13. مشاركة معكم اعزائي وللفائدة ! يمكن استخدام الدالة الجديدة weekdayname وسيكون اللغة بناء على اعدادات الويندوز لديك ! وهي تطلب رقم اليوم والكفيل بارجاع رقم اليوم الدالة weekday او format مع الوسيط w !! وكذلك حسب اعدادت اول يوم في الاسبوع من الاعدادات الاقليمية ! =WeekdayName(Weekday((Date()))) =WeekdayName(Format(Date();"w")) بالتوفيق
  14. نبارك لكما وتستحقون اكثر .. ونشكر الاستاذ عبدالله المجرب !
  15. صحيح ولكن : dcount لابد من ادخال شروط اضافية مثلا التاريخ او تحديد المجال !! ولكن فكرة الاستاذ جعفر هو انه : يجمع السجلات الظاهرة فقط حتى ممكن تعمل فلترة يدوية على النموذج كتحديد الجنس ومرة تحديد التاريخ ومرة تحديد القسم وهذا سهل في فلترة النموذج ومعقد في dcount: ملخص الفكرة: حساب الظاهر امامك !! تحياتي
  16. اضافة بسيطة هنا : expr هو تعبير اي ممكن اسم حقل او اي تعبير مقبول مثلا [qty]*[unitprice] وهنا ميزة اضافية وكل هذا ينطبق على جميع دوال المجال ! dsum,dcount,dfirst ! مشكورين
  17. طبعا وحشتنا اخي جعفر ! وتحية لاخ الرائع محمد عصام ! ممكن بدون iif وكالتالي =-Sum([pselect]) تحياتي
  18. تفضل باشا !! وما تتعاودها مرة ثانية باسئلة زي كذا ! !!! مرة ثانية حندفعك !! Set rs = CurrentDb.OpenRecordset("t1"): rs.MoveFirst Do Until rs.EOF For i = 1 To 9 If InStr(1, Trim(rs(0)), i & " ") > 0 Then xx = Replace(Trim(rs(0) & " "), i & " ", "0" & i) rs.Edit rs(0) = xx rs.Update End If Next i rs.MoveNext Loop DoCmd.RunSQL "update t1 set clas = Replace([clas],Right(Trim([clas]),2),Format(Right(Trim([clas]),2),' 00')) where clas is not null" DoCmd.OpenTable "t1" بالتوفيق
  19. ممكن تشرح هذه العبارة ؟ اي كيف تتكرر ؟ اي الية الاستخدام ؟ حاب اعرف الية العمل ؟
  20. حياك الله اخي اذكرك فقط باختيار افضل اجابة ! تحياتي
  21. اخي الوجه الحسن ! هذا الكود المختصرالذي ذكرته سابقا !! وفي حدث قبل التحديث للنموذج ! Private Sub Form_BeforeUpdate(Cancel As Integer) If DCount("*", "table2", "rkm_alktah=form!rkm_alktah") = 0 Then Cancel = MsgBox("غير موجود") If DCount("*", "table1", "rkm_alktah=form!rkm_alktah") = 1 And (Me.NewRecord Or alktah.Value <> alktah.OldValue) Then Cancel = MsgBox("مكرر") End Sub وهذه فكرة اخرى Private Sub Form_BeforeUpdate(Cancel As Integer) If DCount("*", "table2", "rkm_alktah=form!rkm_alktah") = 0 Then Cancel = MsgBox("غير موجود") If DLookup("[id]", "table1", "rkm_alktah=form!rkm_alktah") <> ID Then Cancel = MsgBox("مكرر") End Sub ملاحظة : ان تلك الاكواد البسيطة هي درس كذلك في كيفية الخروج من الفخ او مصيدة الحدث قبل التحديث للنموذج لكشف المكرر ! حيث ان الفخ هو عبارة عن كيف تتجاهل قيمة السجل الحالي من التكرار ! تحياتي
  22. وليش تحذف الايام يمكن استخدام التنسيق التالي وحسب اجابة الاخ الفاضل مارد MonthYear: Format([dates];"yyyy/mm") بالتوفيق
  23. مشاركة معكم اعزائي ممكن الاستغناء عن الحدث عند اغلاق التقرير والاكتفاء بسطر اس كيو ال لتعديل القيمة في الجدول !! Private Sub Command6_Click() Dim stDocName As String stDocName = "re1" DoCmd.OpenReport stDocName, acPreview '' DoCmd.Restore DoCmd.RunSQL "update table1 set c=false" End Sub
  24. اخي عبدالله ادخل معي دردشة في اعلى صفحة الموقع عرفت الحين فائدتها !
  25. اي كود !! هو سطر واحد فقط في المشاركة السابقة ! انسخه والصقه مكان كودك السابق ! اي عند حدث قبل التحديث للنموذج !
×
×
  • اضف...

Important Information