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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. فكرة ممتازة في الواقع كنت اريد استخدم GetRows بدلا عن rs_Report.MoveNext ، ولكني لأني لم استخدمها سابقا ، اعطتني خطأ ، فتركتها واتبعت الطريقة المألوفة rs_Report.MoveNext جعفر
  2. همممم في الواقع صادفت هذه المشكلة في البرنامج ، ولكن لما الحقول كانت نص!! هذا الرابط قد يعطيك فكرة عن الاشياء اللي يشوفها البرنامج ، وما تشوفها عيننا لكن في طريقة بلدية ممكن نعالج الممسوس ، شوية بخور ، وشيخ يعرف الطريقة ، بس ما ادري اذا يقدر على الحقل جعفر
  3. وعليكم السلام هذه طريقة معرفة الارقام الناقصة بين الارقام جعفر
  4. السلام عليكم المنتدى كان على هيئة نقاش ، فتم تغييره الى اسئلة واجوبة واحد اهم الفوائد من هذا التغيير هو: ليمكن اختيار الاجابة الصحيحة و تظهر تلقائيا بعد اول سؤال ان شاء الله نتعود على الحلّة الجديدة بسرعة ، ونستفيد منها بالاضافة الى ان المنتدى سيرتقي الى النسخة الاحدث: فنرجوا من الاعضاء ان يوسعوا صدورهم لهذا الكم الهائل من التغييرات ، والى الافضل دائما جعفر
  5. فكرة جميلة ولكن وقعت في نفس الفخ اخي أبو إبراهيم ففكرتك اذا كان الحقل رقم ، بينما الحقل نص بالاضافة الى ان الاستعلام يعطيك قيم سجل واحد فقط جعفر
  6. 1. نعم أخوي ابوخليل هذا واضح 2. في الواقع انا لما انتقل للكود بدل الاستعلام ، فتصبح يدي وشهيتي مفتوحة بدل ان نأخذ اعلى قيمة ثم نأخذ اللي بعدها ، خلينا نفرز جميع القيم من الاكبر الى الاصغر ، مثلا للموظف رقم 2 . ولاحظ بأني حذفت السنة 1916 . وبتغيير في كود أخوي ابوخليل ، فتم الموضوع Private Sub cmd_update_Click() On Error GoTo err_cmd_update_Click Dim db As DAO.Database Dim rs As DAO.Recordset Dim rs_Report As DAO.Recordset Dim j, i, ii, x As Integer Dim r, rr As String Set db = CurrentDb Set rs = db.OpenRecordset("emp") rs.MoveLast rs.MoveFirst For j = 1 To rs.RecordCount x = rs!emp_id Set rs_Report = db.OpenRecordset("SELECT Val([rep_year]) as r_Year, rep, emp_id FROM Report WHERE emp_id =" & x & " ORDER BY Val([rep_year]) DESC") rs_Report.MoveLast: rs_Report.MoveFirst i = rs_Report!r_Year r = rs_Report!rep rs_Report.MoveNext ii = rs_Report!r_Year rr = rs_Report!rep rs.Edit rs!rep_last = r rs!rep_befor = rr rs.Update rs.MoveNext Next j MsgBox "??" Set db = Nothing rs.Close: Set rs = Nothing rs_Report.Close: Set rs_Report = Nothing Exit Sub err_cmd_update_Click: If Err.Number = 3021 Then ii = "" rr = "" Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub . 3. وهاي عالجناها بأنه اذا مافي سجل ، لا تعطينا لا خطأ والقيمة ستكون "" ، وكذلك تراها في السجل الرابع ، حيث جعلت له سجل واحد فقط جعفر 655.3.db1.mdb.zip
  7. وكذلك من البحث في المنتدى حصلت على عدة روابط ، منها اختي رجاء ، اجعلي البحث هو مساعدك الرئيسي ، فبدل ان تنظري الى الروابط التي اعطيك اياها ، فهناك الكثير والكثير منها جعفر
  8. وعليكم السلام اذا فهمت سؤالك صح ، فهناك عدة مواضيع في المنتدى ، والبحث هو مساعدك الرئيسي تفضلي بعض الروابط جعفر
  9. حياك الله اخوي عبدالفتاح ، والطيبين دائما على راسي 1. كود اخي ابوخليل في المرفق هو نفسه الذي عرضه في المشاركة ، ولم يستخدم Val في امر Dmax ، وانما استخدمه في الاسطر التالية في الامر Dlookup 2. اضافة الجدول او الاستعلام مرة ثانية وثالثة و... في الربط يكون كأنك تتعامل مع جدول/استعلام جديد ، بشروطه ومعاييره ، ولا في اي شيء خاص ، ولكني للتجربة اضفت نفس الجدول 24 مرة ، فلاحظت في تأخير في الاستعلام 3. الرسالة تأتي لأنك تربط حقل رقم بحقل نص ، وهذا لا يقبله الاكسس وهذا الذي كنت اشير اليه في مشاركتي الثانية ، لهذا السبب قمت ببعض الخطوات الاضافية مثل Val و Int ، حتى يتم توحيد الحقول الى رقم ، ومنها يتم الربط جعفر
  10. السلام عليكم سألني الكثير من الاعضاء عن البرامج اللي استعملها في مشاركاتي والتي استعملها للصور والدوائر والاسهم والصور المتحركة ، وهذا رابط فيه شرح بسيط ومعظم البرامج التي استعملها هي مجانية ، والحمدلله هناك الكثير منها ، بكفاءة متناهية جعفر
  11. 1. هناك طريقتين لإضافة كائنات في Option Group: أ- اختار اللي تريده من قائمة التصميم Menu ، سنختار علامة الصح مثلا ، ثم لما تمرر الفأرة على Option Group ، سترى ان لونه اصبح اسود ، هنا تستطيع ان تضيف علامة الصح مع بقية الكائنات هناك ، ب- ان تعمل نسخ لكائن موجود مسبقا في Option Group ، وتلصقه مرة ثانية ، وبعد ها يجب ان تغير Option Value الكائن الجديد. 2. نعم تستطيع ، فانا كتبت لك "او" ، يعني عندك اختيارين وانت تختار الافضل لك ، وانا تعمدت ووضعت لك البديل الثاني (قائمة سرد وتحرير ListBox) ، حتى لما تضيف اي جديد في الجدول ، فانه يظهر لك مباشرة ، يعني عملية استباقية جعفر
  12. السلام عليكم انا عملت التنبيه مرتين باللون البني: ومرة اخرى هنا . ولكن الظاهر لم تنتبهوا لها ، فاعذروني اثبته لكم المشكلة كلها اننا نتعامل مع حقل نص وليس رقم: لذلك كود أخي ابوخليل يحتاج تعديل ، وملاحظة اخي عبدالفتاح غير دقيقة: . الى الاثبات: 1. حقل التاريخ في الجدول هو نص . اذا طبقنا كود اخي ابوخليل على التواريخ كما هي في الجدول ، فالنتيجة تكون صحيحة (وذلك بسبب الحرف الاول للسنوات كلها 1) : . بينما اذا استعملنا التواريخ التالية ، فنرى ان الكود يعطي نتائج غير صحيحة ، والسبب هو طريقة فرز الارقام يبدأ من الصغير الى الكبير ، بينما فرز النص يختلف ، فالفرز يكون بالحرف الاول ، والحرف 9 يكون دائما اكبر من الحرف 1 (1 و 12 و 100 و 1000 ، اول حرف لها هو 1) . لعلاج هذه المشكلة ، يجب ان نأخذ القيمة الرقمية لحقل التاريخ ، وليس قيمته كما هو في الجدول (قيمة نصّية) ، فعليه يصبح كود اخي ابوخليل: بدل i = DMax("rep_year", "report", "emp_id=" & x) ii = DMax("rep_year", "report", "emp_id=" & x) - 1 نغير rep_year الى Val([rep_year]) فيصبح الكود i = DMax("Val([rep_year])", "report", "emp_id=" & x) ii = DMax("Val([rep_year])", "report", "emp_id=" & x) - 1 . والنتيجة تكون صحيحة: . جعفر 655.2.db1.mdb.zip
  13. شكرا على البديل أخوي شفان هنا بدون بديل: . ثم الكود يصبح: Private Sub lst_Click() Me.نوع_التعامل = DLookup("[نوع اتعامل]", "التعامل", "[رمز الخدمة]=" & Me.lst) End Sub Private Sub opt_Click() Me.نوع_التعامل = DLookup("[نوع اتعامل]", "التعامل", "[رمز الخدمة]=" & Me.opt) End Sub جعفر 657.Database1.accdb.zip
  14. أحي لوسمحت لا تعمل اكثر من موضوع لنفس السؤال لقد تم حذف الموضوع الآخر شكرا لك أخي شفان جعفر
  15. تفضل ، حسب فهمي للسؤال . جعفر 657.Database1.accdb.zip
  16. رجاء ترفق البرنامج علشان نشوف اللي انت تشوفه جعفر
  17. انت عرضت النموذج ، ومشكلتك في التقرير ، ولم تعرض لنا التقرير من النظر في الصورة ، الظاهر ان عندك فراغ زائد في اسفل الحقول في التقرير ، لما تبدأ العمل في تصميم التقرير ، الاقسام في التقرير يجب ان تكون في حجم الحقول ، وبعدها غيّر احجامها حسب حاجتك جعفر
  18. وعليكم السلام واهلا وسهلا بك في المنتدى والله يخليك ، دائما خلي اسم الموضوع يرمز لما في الموضوع اذا كانت احدى الصفحات فاضية ، هذا معناه: المسافة التي تتركها الطابعة على اليمين + عرض التقرير + المسافة التي تتركها الطابعة على اليسار هي اعرض من الصفحة جعفر
  19. مافي فرق بين استعمال val او int في حالتنا ، فالقصد كان تحويل النص الى رقم ، خصوصا ان السنوات ليس فيها كسر جعفر
  20. لتوضيح ما قلته اعلاه: عملت جدول tbl_Numbers فيه حقلين ، احدهما نص str_Numbers والآخر رقم int_Numbers ، وادخلت الارقام من 1 الى 21 في كليهما ، 1 و 2. من النظر الى تنسيق البيانات في الجدول او الاستعلام ، نستطيع ان نعرف نوع الحقل ، نرى ان حقل الرقم 1 يميل الى اليمين ، بينما حقل النص 2 يميل الى اليسار ، 3. نستخدم حقل النص str_Numbers مع الامر Max ، ونرى انها ليست النتائج الصحيحة ، وهذا الذي كنت احذر منه في ملاحظتي في مشاركتي السابقة ، وللأسف وقع أخي ابوخليل في هذا الفخ (جرب الكود على الارقام التي وضعتها انا وسترى قصدي) والاسوء ان نتيجة الاستعلام ، احدهما نص والآخر رقم (انظر الى تنسيق الاستعلام وملاحظتي رقم 1 و 2 اعلاه) ، 4. تم تحويل بيانات الحقل str_Numbers الى ارقام ، وثم استعمل الامر Max ، فنحصل على النتائج الصحيحة بصيغة رقم ، وهذا الذي عملته في برنامجي اعلاه ولكن ، لا استطيع ربط نتائج الحقول هذه بحقل str_Numbers الذي بالجدول ، لأن الحقل في الجدول نص ونتائج الاستعلام ارقام ، لذا اضطررت ان احول بيانات الجدول من نص الى ارقام بواسطة val او int ، وهذا جواب السؤال: اذن ، كل هذه الخطوات عملناها ، بسبب ان السنة في المرفق الاصل هو حقل نص وليس حقل رقم ، 5. بينما لو كان الحقل رقم ، لكنا نقتصر على هذه الطريقة . جعفر
  21. السلام عليكم انا قرأت الموضوع بالخطأ ، قرأته اول وآخر سنه ، فأعتذر ارى انكم ما شاء الله اكملتوا الموضوع ، ولكني هنا اعطيكم الحل بنفس الطريقة السابقة : . والنتائج: . ولكن في شيء لم انتبه له البارحة لما وضعت جوابي ، وهو ان السنة في الجدول emp هو نص وليس رقم ، والذي معناه اننا يجب ان نحوله الى رقم قبل ان نأخذ Max ، وإلا فلن نحصل على السنة الصحيحة (صحيح ان النتائج الان ستكون صحيحة ، ولكننا نعرف ان تسلسل النص يكون غير صحيح ، وتسلسل الرقم يكون صحيح) أختي ، لا تهتمي بالاستعلامات الاولى ، فالاستعلام الاخير qry_Update_Values سيأخذ القيم بنفسه ويُتم التحديث جعفر 655.db1.mdb.zip
  22. ومثل ما قال أخي محمد ، فتستطيعين جلب الاستعلام قبل الأخير إلى التقرير مباشرة دون حفظ النتائج في الجدول جعفر
  23. وعليكم السلام أختي تابعيني بالصور: السنة الاعلى والاقل لكل رقم . والنتيجة . والآن لنستخرج القيم الاعلى والاقل . والنتيجة: . ثم نأخذ هذه النتيجة الى استعلام تحديث للجدول emp . والنتيجة في الجدول: . جعفر 655.db1.mdb.zip
×
×
  • اضف...

Important Information