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

متقاعد

الخبراء
  • Posts

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

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

  • Days Won

    25

كل منشورات العضو متقاعد

  1. نعم اخي وان كنت افضل ان يكون الحل مقدم من احد اساتذة الموقع او الخبراء الافاضل نعود للموضوع المطلوب نقل سجلات الطالب من جدول الى اخر عن طريق رقم الطالب والتأكد بعدم وجود حقول خاليه خلال عمليه النقل الفكرة على النحو التالي مع التأكيد بان الكود يمكن اختصاره في زر الامر نقل وضعنا الكود التالي Dim n As Integer n = IIf(IsNull([Text0]), 0, [Text0]) If DCount("*", "[Students]", "[ID]=" & n) = 0 Then Exit Sub Dim rst As Recordset Dim rs As Recordset Dim fld As Field Set rst = Me.RecordsetClone Set rs = CurrentDb.OpenRecordset("team") rst.FindFirst "[ID]=" & [Text0] For Each fld In rst.Fields If IsNull(fld.Value) Then MsgBox fld.Name DoCmd.OpenForm "frm_Stud", , , "[id]=" & [Text0] Exit Sub Else rs.AddNew rs.Fields(0) = rst.Fields(0) rs.Fields(1) = rst.Fields(1) rs.Fields(2) = rst.Fields(2) rs.Fields(3) = rst.Fields(3) rs.Fields(4) = rst.Fields(4) End If Next fld rs.Update rs.Close: rst.Close Set rs = Nothing: Set rst = Nothing السطر 1 و 2 و3 الغرض منها ايقاف تنفيذ الامر في حالة كون رقم الطالب غير صحيح او ان حقل البحث فارغ ويمكن استبدالها بامر معالجة الاخطاء الاسطر 4 و 5 و 6 حجز متغيرات اثنين مصدر سجلات وواحد حقل الاسطر 7 و 8 اسناد متغيرين الى مصدرهما السطر التاسع البحث عن رقم الطالب 10 و 11 عمل حلقة لفحص الحقول في السجل المطلوب نقلة 12 و 13 و 14 اضهار رسالة باسم الحقل الفارغ وفتح النموذج على بيانات الطالب لاستكمال الحقول الفارغة وانهاء الاجراء لحين استكمال البيانات يمكن الاستغناء عن سطر 12 من 15 الى 21 في حالة عدم وجود حقول فارغة انقل السجل كل حقل بمكانه المحدد ايضا ممكن اختصاره من 7 اسطر الى 3 اسطر طالما اسماء الحقول متطابقة باقي الاسطر لانهاء الشرط والحلقة الدوارة واغلاق مصدر السجلات ملاحظة جعلنا مصدر النموذج الخاص بتنفيذ الامر جدول الطالب بدون اضافة اي حقول وممكن الاستغناء عن الخطوة بجعل الربط والغاء الربط عن كريق الكود ولكن الامر ليس مهما الملف مرفق تحياتي النهر.accdb
  2. نعم ممكن عمل ذلك والفكرة تتلخص في عمل كود يبحث في البداية برقم الطالب الذي نرغب نقل بياناته هنا نستخدم مصدر السجلات Recordset ثم نعمل حلقة باستخدام For Each تمر على كافة حقول السجل المطلوب نقله ⬇️ For Each fld In rst.Fields If IsNull(fld.Value) Then اي في حالة وجود اي حقل فارغ نفذ الشرط وجواب الشرط يكون فتح نموذج الطالب وعلى نفس السجل الحالي لنقوم باستكمال الحقل او الحقول الفارغة DoCmd.OpenForm "frm_Stud", , , "[id]=" & [Text0] اي اننا نعمل نموذج يفتح عند تحقق وجود حقول فارغة واذا كان لديك مسبقا نموذج خاص بالطلاب فلادعي للنموذج الجديد اما في حالة عدم وجود حقول فارغة فيتم نقل السجل للجدول الاخر سواء عن طريق استعلام او عن طريق مصدر السجلات ونتوقف قليلا وندع الامر لاحد الاساتذة ربما لديه فكرة افضل تحياتي
  3. غير اسماء الحقول وفقا لما لديك الملف مرفق تنبيه بالتكرار.accdb
  4. نعم يا ابا جودي الفكرة ليست جديدة مع ذلك قالت العرب الافكار ملقاه كالحجارة على قارعة الطريق يعرفها العربي والعجمي والبدوي والحضري ولكن الشأن في جودة السبك. كثير من الاختراعات التي غيرت وجه العالم لم تكن من بنات افكار من اخترعوها وانما كانت لديهم الشجاعة والعزم والهمة لالتقاط تلك الافكار ووضعها محل التنفيذ . احسنتم جميعا ونفتخر بامثالكم تحياتي
  5. احسنت وشرحك جميل مداخلتي من باب طرح حلول وافكار اخرى بالنسبة لاجبار المستخدم على ادخال ارقام في حقل نصي انت استخدمت قناع الادخال وهي فكرة جيدة وتؤدي المطلوب تماما مع ذالك بعض قدامى المبرمجين لا يستخدمون قناع الادخال ويفضلون ان يكون التقييد عن طريق الكود لذا ممكن كتابة الامر التالي ⬇️ بدلا من قناع الادخال If Not IsNumeric([tx]) Or Len([tx]) <> 10 Then MsgBox "هذا الحقل رقمي فقط وبعدد 10 ارقام" Me.tx = "" End If ايضا بالنسبة لاغلاق النموذج لا داعي لكتابة اسمه والافضل كتابة الامر على النحو التالي ⬇️ DoCmd.close acForm, Me.Name اخيرا ماذا لو كان رقم الهوية غير موجود ؟ سوف يفتح النموذج فارغ والاجراء الامثل ان يتم فحص الرقم اذا كان مسجل يفتح النموذج او يظهر رسالة بان السجل غير موجود ويوقف الاجراء وتوجد امثلة بالموقع تشرح ذلك وهنا نتوقف ونشير كما اعتدنا ان الامر يتحدث عن افكار اخرى فقط تحياتي
  6. جميل جدا اخي ابو اشرف وممكن بطريقة اخرى ⬇️ Dim rs As Recordset Set rs = Me.RecordsetClone rs.FindFirst "[nn] = " & Me.nn If Not rs.NoMatch Then Cancel = True MsgBox "هذة القيمة مكررة" Else End If rs.Close تحياتي
  7. سبق ان تم ايضاح ذلك ⬇️ بل يوجد لكن الفكرة باختصار تتطلب وجود حقل في جدول يتم تحديثة بالقيمة الافتراضية كلما قمنا بتغييرها ويبقى الحقلين aa و bb غير منضمة bb يحدث القيمة و aa يحصل على القيمة الافتراضية باستخدام DLookup او احدى شقيقاتها ولكن ننتظر رأي الاساتذة ربما لديهم افكار افضل
  8. احسنت استاذنا العزيز الحقيقة كلما شاهدت مشاركة لك تذكرت اخ وصديق عزيز اقتعني بالعودة ثم اختفى 😃 اسأل الله ان يعود سالما غانما تحياتي
  9. ياهلا بالاستاذ موسى الحقيقة انا لست مهندس كنت مبرمج ثم تدرجت في هذا المجال الى ان انهيت مساري الوظيفي بطلب التقاعد نعود للموضوع دائما عندما اضع مشاركة لا اشير الى انها حل بديل وانما كطريقه اخرى للحل وعندما يكون هناك اكثر من حل وجميعها تؤدي للمطلوب فانني افضل حينها الاخذ بمبدأ اوكام اما بشأن ما نريده لاحقا فهناك دائما حلول ولكن لكل حدث حديث تحياتي وتقديري 🌹
  10. ايضا اذا اردنا التعامل مع حقل كحقلي نصي ويقبل جميع التنسيقات وبدون زيادة عدد اسطر الكود Dim x As String x = Nz(BB, "") DoCmd.OpenForm "form1", acDesign Forms!form1!AA.DefaultValue = "'" & x & "'" DoCmd.close acForm, "form1", acSaveYes DoCmd.OpenForm "form1" الملف مرفق قيمة افتراضية(2).accdb
  11. احسنت استاذنا الفاضل @Moosak والحقيقة لم احرص في مشاركتي على احترازات نوع الحقول لكون الطريقة في الاساس ليست عمليه ولن تعمل عند تحويل القاعدة وانما وضعت المشاركة ردا على سؤال الاستاذ مراد واشرت بوضوح الى انها ليست الاجراء الصحيح تحياتي
  12. القيم الثابتة هي مجموعة من الحقول تحتوي على بيانات نحتاج الى استخدامها في انحاء متفرقة من البرنامج مثال لدينا برنامج للمدرسة ونرغب في توزيعة او بيعة لعدة مدارس هل نقوم بكتابة اسم المدرسة وعنوانها وارقام الاتصال واسم المدير والمنطقة التعليمية وووو الخ في كل التقارير والنماذج الخ او اذا كان برنامج للفواتير هل نكتب كل مرة اسم المؤسسة وعنوانها والرقم الضريبي ونسبة الضريبة والحد الاعلى للحسم ... الخ الاجابة لا وانما يكون لدينا جدول لهذه الحقول ونموذج لادخال بيانات لهذا الجدول ويقوم المستفيد من البرنامج بادخال هذه البيانات عند اول استخدام للبرنامج فقط ساحول تبسيط الامر انت مثلا عملت برنامج لمدرسة اسمها مدرسة أكودة الاعدادية وترغب في وضع اسم المدرسة على التقارير بدون استخدام هذه القيم انت ستقوم بفتح التقرير في وضع التصميم ثم تستخدم حقل نص او عنوان وتكتب اسم المدرسة ولو اردت بيعة على مدرسة اخرى ستقوم بهذا التعديل اليدوي وهكذا كل مرة اما عند استخدام القيم كل المطلوب ان نضع حقل نصي لاسم المدرسة يحصل على قيمته من جدول القيم وبالتالي يقوم مدير المدرسة بكتابت اسمها مرة واحدة في الجدول وسيظهر الاسم في التقرير هذا هو المقصود بالقيم الثابتة تحياتي
  13. ممكن عمل ذلك ولكن الاجراء الصحيح ان يكون لدينا جدول للقيم الثابتة للبرنامج على كل حال في زر الامر نضع الكود Dim x As String x = BB DoCmd.OpenForm "form1", acDesign Forms!form1!AA.DefaultValue = x DoCmd.close acForm, "form1", acSaveYes DoCmd.OpenForm "form1" معنى الامر حسب ترتيب الاسطر احجز متغيير نصي اسمه اكس قيمة المتغيير اكسس تساوي المكتوب في حقل bb افتح النموذج في عرض التصميم اجعل القيمة الافتراضية للحقل aa تساوي المتغيير x اغلق النموذج مع حفظ التغيير اعد فتح النموذج ----------------------------- ملاحظة 1 هذا الكود لن يعمل اذا كانت القاعدة بصيغة Accde او mde ملاحظة 2 عند الرغبة كتابة نص للقيمة الافتراضية نكتب في حقل bb النص هكذا 'منتهي' اما الارقام فتكتب بشكل عادي تحياتي والملف مرفق قيمة افتراضية.accdb
  14. مع اني اشرت في ردي السابق مع ذلك تحقق الشرط الاول ونتجاوز عن الثاني الان الفكرة الاولى ان يكون اضافة الجهد من خلال قائمة منسدلة بالاشهر ولا علاقة لنا بالجهد 400 او 500 او مايكون ثم نعمل استعلام يكون مصدر للنموذج وفي هذا النموذج نفلتر بالشهر او بالشهر والجهد او بالجهد فقط ومرفق ملف بهذه الطريقة الطريقة الثانية بدون استخدام اكواد وبدون الحاجة الى جدول sd اي ان البيانات تبقى في جدول the main وبدل من جدول sd وكود الاضافة نعمل استعلامين الاول استعلام توحيد والثاني استعلام عادي يكود مصدر للنموذج وايضا يمكن الفلترة بالشهر او بالشهر والجهد او بالجهد فقط ومرفق ملف بهذة الطريقة تحياتي Database20.accdb Database211.accdb
  15. يامرحبا باخي واستاذي د.حلبي كما اشرت في ردي السابق ان عدم عمل الكود بسبب الخاصية مشروط وليس منبثق والكود يقوم بتعديل الخاصية مشروط الى لا عند تنفيذ الكود فقط ليتم تصغير النافذة وعند استعادة النافذة تجد انها لم تتغير منبثق نعم مشروط نعم انظر الفيديو المرفق مع العلم باني اعمل على نسخة 21 تحياتي
  16. بل يعمل يا د. محمد ولكن قبل ذلك نوضح الاتي خاصية منبثق نعم مشروط لا " يعمل الكود بدون مشكله " ------ منبثق نعم مشروط نعم " لن يعمل الكود " لكون الخاصية مشروط تعني تعطيل اي نافذة اخرى الى ان تغلق النموذج المشروط اخيرا اذا كنا نرغب في منبثق نعم ومشروط نعم ويعمل الكود هنا يتطلب الامر ان نعطل خاصية مشروط عند تنفيذ الامر فقط لذا ممكن وضع الامر التالي في بداية الكود لزر الامر Dim k As Boolean: Forms("form1").Modal = False ليصبح الكود ⬇️ Dim k As Boolean: Forms("form1").Modal = False keybd_event 91, 0, 0, 0 keybd_event 77, 0, 0, 0 DoEvents keybd_event 91, 0, KEYEVENTF_KEYUP, 0 keybd_event 77, 0, KEYEVENTF_KEYUP, 0 DoEvents تحياتي الملف مرفق مع الشكر للاستاذة لميا WIn+M_Lamyaa(1).accdb
  17. احسنت يا ابا جودي والحقيقة اني كتبت رد اشرت فيه الى مثل ذلك وامور اخرى ولكن اثرت عدم نشره حتى لا يفهم الامر بشكل اخر ويكفي ماحصل العام الماضي تحياتي لك ولكل من شارك ولنا لقاء في موضوع اخر قالت العرب يكفي من الزاد ما بلغك المحل
  18. تمام عليك يعمل بشكل صحيح السؤال هل نستطيع ان نلحق سجلات ونحذف سجلات ونحدث سجلات بدون بدون انشاء استعلام وبدون استخدام جملة sql الحقيقة نعم عن طريق التعامل مع مصدر السجلات وتوجد العديد من الامثلة بالموقع ولكن اذا كان هناك اكثر من طريقة للحل وهذه الطرق جميعها تؤدي المطلوب فان الحل الاسهل هو الحل الافضل "مبدأ اوكام" تحياتي
  19. مع ان الموضوع قديم المشكلة التي كانت تواجه الاستاذ العربي انه سخ الكود مباشرة من الاستعلام الى زر الامر فاصبح الكود ⬇️ والحقيقة انه بهذا الشكل لن يعمل DoCmd.RunSQL "INSERT INTO tabl2 ( id, INAME, sal_price, Qty )" SELECT tabl1.id, tabl1.INAME, tabl1.sal_price, tabl1.Qty FROM tabl1 WHERE (((tabl1.id)=1)); الان نعدل الكود من خلال تقسيمة بشكل صحيح وسوف يعمل باذن الله ⬇️ DoCmd.RunSQL "INSERT INTO tabl2 ( id, INAME, sal_price, Qty )" & _ "SELECT tabl1.id, tabl1.INAME, tabl1.sal_price, tabl1.Qty FROM tabl1 " & _ "WHERE (((tabl1.id)=1));" اذن الامر صحيح ولكن المشكلة كان في تقسيم الكود الى اسطر الملف مرفق برنامج مطعم - Copy.accdb
  20. نعم اتفق هذة الطريقة هي الافضل وكنا نستخدمها حتى في البرامج الكبيرة لانه من غير المجدي ان يكون لدينا اكثر من جدول للطلاب من وجهة نظر خاصة ليس من المجدي ان تتكر الحقول في اكثر من جدول الا ما يتعلق بحقول العلاقات وهذا التكرار يحكمة نوع العلاقة تحياتي
  21. ليس الامر كذلك وانما المشكلة في الاحكام القطعية من لم يقرا الكتاب بتمعن فلينسى اكسس وعلى كل حال قلت في ردي السابق اخيرا انا لست عبقري ولا عالم ولم ادعي ذلك. انا عضو في الموقع اشارك بما لدي واخطي واصيب ومن تجارب مريرة سابقة اشير في كل مداخلة قد تحتمل التأويل الى ان هذا رأي شخصي تحياتي
  22. مبالغة كبيرة وحكم قطعي بدون مستند على الرغم من الموضوع طويل جدا وواضح انه منقول مع ذلك حاولت ان اكمل ولكن كاتب الموضوع يقفز من فكرة لاخرى فجعله اقرب مايكون لاحلام العصر رأي شخصي غير ملزم ولكن البداية غير مشجعة قالت العرب كنت مثل الكتاب أخفاه طي ... فاستدلوا عليه بالعنوان تحياتي وتقديري لاخي العزيز derbali
  23. ياعبد اللطيف جرب تحديد عدد الاشهر تجد ان الكود يزيد شهر مثلا عدد الدفعات 12 تجد انها 13 لذا عدل السطر ⬇️ For i = 0 To CountAmunt الى ⬇️ For i = 0 To CountAmunt - 1 انظر للتعديل في مشاركتي السابقة دائما اذا بدانا بصفر لابد ان ننقص واحد من 1 الى 10 = 10 من 0 الى 10 = 11 تحياتي
×
×
  • اضف...

Important Information