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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. انا اعطيتك رابط فيه مثال ، فهل جربته؟ جعفر
  2. السلام عليكم ومشاركة مع أخي محمد اخي خالد ، المشكلة انك استعملت الاشهار للمتغير Exam_no مرتين : في الوحدة النمطية ، وهذا هو المكان الصحيح لها : . واستعملتها في النموذج Exam ، فيجب عليك حذفها من هنا: جعفر
  3. السلام عليكم انا اتعامل مع برامجي FE بهذه الطريقة: جعفر
  4. شكرا على الملاحظة ، وتم تعديل المثال في موضوعي بالنسبة للتاريخ ، فالافضل ان تعمل التنسيق للحقل من اعدادات الحقل في النموذج ، هكذا مثلا: dd/mm/yyyy جعفر
  5. السلام عليكم شباب عيدكم مبارك وايامكم سعيدة ان شاء الله جعفر
  6. وعليكم السلام هذه طريقتي: Private Sub ÃãÑ56_Click() Dim a_rr As Error Dim X As String On Error GoTo a_rr X = InputBox("enter text", "text ") If Len(Trim(X)) = 0 Then MsgBox "error " Exit sub end if For i = 1 To Len(X) If IsNumeric(Mid(X, i, 1)) Then MsgBox "contains Numbers" Exit Sub End If Next i DoCmd.OpenReport "Rep_sadder", acViewPreview, , "Go_sad like '" & X & "'" Exit Sub a_rr: MsgBox " error " End Sub جعفر
  7. فكرة ممتازة في الواقع كنت اريد استخدم GetRows بدلا عن rs_Report.MoveNext ، ولكني لأني لم استخدمها سابقا ، اعطتني خطأ ، فتركتها واتبعت الطريقة المألوفة rs_Report.MoveNext جعفر
  8. همممم في الواقع صادفت هذه المشكلة في البرنامج ، ولكن لما الحقول كانت نص!! هذا الرابط قد يعطيك فكرة عن الاشياء اللي يشوفها البرنامج ، وما تشوفها عيننا لكن في طريقة بلدية ممكن نعالج الممسوس ، شوية بخور ، وشيخ يعرف الطريقة ، بس ما ادري اذا يقدر على الحقل جعفر
  9. وعليكم السلام هذه طريقة معرفة الارقام الناقصة بين الارقام جعفر
  10. السلام عليكم المنتدى كان على هيئة نقاش ، فتم تغييره الى اسئلة واجوبة واحد اهم الفوائد من هذا التغيير هو: ليمكن اختيار الاجابة الصحيحة و تظهر تلقائيا بعد اول سؤال ان شاء الله نتعود على الحلّة الجديدة بسرعة ، ونستفيد منها بالاضافة الى ان المنتدى سيرتقي الى النسخة الاحدث: فنرجوا من الاعضاء ان يوسعوا صدورهم لهذا الكم الهائل من التغييرات ، والى الافضل دائما جعفر
  11. فكرة جميلة ولكن وقعت في نفس الفخ اخي أبو إبراهيم ففكرتك اذا كان الحقل رقم ، بينما الحقل نص بالاضافة الى ان الاستعلام يعطيك قيم سجل واحد فقط جعفر
  12. 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
  13. وكذلك من البحث في المنتدى حصلت على عدة روابط ، منها اختي رجاء ، اجعلي البحث هو مساعدك الرئيسي ، فبدل ان تنظري الى الروابط التي اعطيك اياها ، فهناك الكثير والكثير منها جعفر
  14. وعليكم السلام اذا فهمت سؤالك صح ، فهناك عدة مواضيع في المنتدى ، والبحث هو مساعدك الرئيسي تفضلي بعض الروابط جعفر
  15. حياك الله اخوي عبدالفتاح ، والطيبين دائما على راسي 1. كود اخي ابوخليل في المرفق هو نفسه الذي عرضه في المشاركة ، ولم يستخدم Val في امر Dmax ، وانما استخدمه في الاسطر التالية في الامر Dlookup 2. اضافة الجدول او الاستعلام مرة ثانية وثالثة و... في الربط يكون كأنك تتعامل مع جدول/استعلام جديد ، بشروطه ومعاييره ، ولا في اي شيء خاص ، ولكني للتجربة اضفت نفس الجدول 24 مرة ، فلاحظت في تأخير في الاستعلام 3. الرسالة تأتي لأنك تربط حقل رقم بحقل نص ، وهذا لا يقبله الاكسس وهذا الذي كنت اشير اليه في مشاركتي الثانية ، لهذا السبب قمت ببعض الخطوات الاضافية مثل Val و Int ، حتى يتم توحيد الحقول الى رقم ، ومنها يتم الربط جعفر
  16. السلام عليكم سألني الكثير من الاعضاء عن البرامج اللي استعملها في مشاركاتي والتي استعملها للصور والدوائر والاسهم والصور المتحركة ، وهذا رابط فيه شرح بسيط ومعظم البرامج التي استعملها هي مجانية ، والحمدلله هناك الكثير منها ، بكفاءة متناهية جعفر
  17. 1. هناك طريقتين لإضافة كائنات في Option Group: أ- اختار اللي تريده من قائمة التصميم Menu ، سنختار علامة الصح مثلا ، ثم لما تمرر الفأرة على Option Group ، سترى ان لونه اصبح اسود ، هنا تستطيع ان تضيف علامة الصح مع بقية الكائنات هناك ، ب- ان تعمل نسخ لكائن موجود مسبقا في Option Group ، وتلصقه مرة ثانية ، وبعد ها يجب ان تغير Option Value الكائن الجديد. 2. نعم تستطيع ، فانا كتبت لك "او" ، يعني عندك اختيارين وانت تختار الافضل لك ، وانا تعمدت ووضعت لك البديل الثاني (قائمة سرد وتحرير ListBox) ، حتى لما تضيف اي جديد في الجدول ، فانه يظهر لك مباشرة ، يعني عملية استباقية جعفر
  18. السلام عليكم انا عملت التنبيه مرتين باللون البني: ومرة اخرى هنا . ولكن الظاهر لم تنتبهوا لها ، فاعذروني اثبته لكم المشكلة كلها اننا نتعامل مع حقل نص وليس رقم: لذلك كود أخي ابوخليل يحتاج تعديل ، وملاحظة اخي عبدالفتاح غير دقيقة: . الى الاثبات: 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
  19. شكرا على البديل أخوي شفان هنا بدون بديل: . ثم الكود يصبح: Private Sub lst_Click() Me.نوع_التعامل = DLookup("[نوع اتعامل]", "التعامل", "[رمز الخدمة]=" & Me.lst) End Sub Private Sub opt_Click() Me.نوع_التعامل = DLookup("[نوع اتعامل]", "التعامل", "[رمز الخدمة]=" & Me.opt) End Sub جعفر 657.Database1.accdb.zip
  20. أحي لوسمحت لا تعمل اكثر من موضوع لنفس السؤال لقد تم حذف الموضوع الآخر شكرا لك أخي شفان جعفر
  21. تفضل ، حسب فهمي للسؤال . جعفر 657.Database1.accdb.zip
  22. رجاء ترفق البرنامج علشان نشوف اللي انت تشوفه جعفر
  23. انت عرضت النموذج ، ومشكلتك في التقرير ، ولم تعرض لنا التقرير من النظر في الصورة ، الظاهر ان عندك فراغ زائد في اسفل الحقول في التقرير ، لما تبدأ العمل في تصميم التقرير ، الاقسام في التقرير يجب ان تكون في حجم الحقول ، وبعدها غيّر احجامها حسب حاجتك جعفر
  24. وعليكم السلام واهلا وسهلا بك في المنتدى والله يخليك ، دائما خلي اسم الموضوع يرمز لما في الموضوع اذا كانت احدى الصفحات فاضية ، هذا معناه: المسافة التي تتركها الطابعة على اليمين + عرض التقرير + المسافة التي تتركها الطابعة على اليسار هي اعرض من الصفحة جعفر
  25. مافي فرق بين استعمال val او int في حالتنا ، فالقصد كان تحويل النص الى رقم ، خصوصا ان السنوات ليس فيها كسر جعفر
×
×
  • اضف...

Important Information