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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. ما فرقت العملية ، الطريقة نفسها اللي ذكرتها جعفر
  2. وعليكم السلام في VBA ابحث عن Msgbox ، وفيه مثال تأخير بالثواني اللي تريد فإعمل الكود قبل إعطاء امر فتح التقرير جعفر
  3. السلام عليكم ما هو مصدر النموذج ، جدول ام استعلام؟ هل تستطيع ادخال بيانات في المصدر مباشرة؟ جعفر
  4. وعليكم السلام انا لم استخدم AutoKeys Macro من قبل ، فلا تلومني اذا لم استطع مساعدتك علشان البحث يتم ، يجب ان تكون احد الحقول مختارة Setfocus ، واللي لاحظته ان الماكرو عندك يستعمل الامر الذهاب الى [Screen].[PreviousControl].[Name] ، واللي المفروض ان يؤدي نفس الغرض ، ولكن ، يجب عليك التأكد ان الحقل الذي تكون عليه قبل عملية البحث هو حقل "نص" وليس اي كائن آخر في النموذج مثل زر الامر مثلا جعفر
  5. وعليكم السلام هذا السؤال لا علاقة له بالموضوع ، وقوانين المنتدى لا تسمح بأكثر من سؤال في كل موضوع ، لذا يرجى عمل موضوع خاص به الموضوع يُغلق
  6. وعليكم السلام اعمل حقل في الجدول بإسم Bal ، اذا كان برنامجك على الاكسس 2007 فما فوق ، ففي الجدول حقل من نوع "حقل محسوب" ، تجعل فيه المعادلة التي تريد للحقل Bal ، وهو يحسبها تلقائيا اما الطريقة الاخرى ، ففي النموذج ، وعلى حدث "بعد التحديث" للحقل العدد المطلوب بيعة ، اعمل المعادلة: me.Bal= me.الرصيد - me.العدد والقيمة تلقائيا ستدخل النموذج والجدول جعفر
  7. وعليكم السلام أختي هكذا عمل الكود : اذا كان حقل عدد الاصناف نص ، فالمعادلة هي كما ذكرتي: =DCount("[رقم الفاتورة]";"الفاتورة";"[نوع الفاتورة] = 'شراء' And [عدد الأصناف]='" & [عدد الأصناف] & "'") بينما اذا كان حقل عدد الاصناف رقم ، فالمعادلة ستصبح =DCount("[رقم الفاتورة]";"الفاتورة";"[نوع الفاتورة] = 'شراء' And [عدد الأصناف]=" & [عدد الأصناف]) جعفر
  8. وعليكم السلام هناك 3 طرق للتعرف على الحقل الذي قيمته Null (لا قيمة ، او قيمة غير معروفة) ، سنعمل على هذا جدول ، ولاحظ السجلات الفاضية: . في الطريقة الاولى (IsNull) قلنا اذا الحقل Null ، فاعطنا النتيجة 0 ، في الطريقة الثانية (Len) قلنا اذا عدد حروف الحقل تساوي صفر ، فاعطنا النتيجة 1 ، . والنتيجة: . لكن الامر الاكثر إتباعا هو Nz ، ومعناه Null to Zero ، والامر هو NZ([Field_Name], Value to Replace)Q ، واليك 4 امثلة عليه: 1. الطريقة الخطأ في استعمال الامر ، حيث لم نخبر الامر النتيجة التي نريدها في حال اكتشف ان الحقل فاضي ، 2. اذا كان الحقل Null ، فحول نتيجة الحقل الى 0 (وهذه الطريقة الاكثر اتباعا) ، 3. وممكن ان ، اذا كان الحقل Null ، فحول نتيجة الحقل الى 1 (او اي قيمة ثابته) ، 4. والقليل يعرف ، اذا كان الحقل Null ، فتستطيع ان تعطي اي قيمة/معادلة شئت للحقل (لاحظ انا ضرب قيمة الحقل Field1 في 100 وفي 200 ، حسب قيمة Field1) ، وحتى يمكننا ان نستدعي دالة Function : . والنتيجة: . جعفر 292.Nulls.mdb.zip
  9. وعليكم السلام انا عملت لك طريقتين لعمل سجل جديد ، وتفتح النموذجين من ازرار النموذج الرئيسي: . . 1. الماكرو 1 يفتح النموذج frm_Table1 مباشرة على سجل جديد ، وهذه الطريقة هي الافضل ، 2. عند فتح النموذج frm_Table2 ، وعلى حدث "عند الفتح" ، يقوم ماكرو 2 بعمل سجل جديد (وهذا اللي انت قمت به) جعفر 291.English_wordings.mdb.zip
  10. السلام عليكم أخي ابو عبدالله هذا ليس برنامجي!! قلت لك جرب برنامجي ( Multilanguage3.zip )كما هو لوسمحت من النموذج الرئيسي تختار اللغة العربية ، ثم تضغط على زر Form Address ، وشوف مسميات الحقول والازرار بالعربي ، واضغط على زر ملاحظة1 وملاحظة2 حتى ترى الرسائل بالعربي هذا هو المطلوب جعفر
  11. السلام عليكم اخي العزيز / اخي الفاضل ، لو انا كنت فاهم الموضوع بالبيانات اللي انت ارفقتها من البداية ، لو صدقني من البداية تم الحل ، ولكن ، لا يغريك المسمى اللي على اسمي ، اني خبير وووو ، فانا ان لم افهم المطلوب ، لا استطيع المساعدة!! رجاء: جعفر
  12. انا جربت استعمل البرنامج ، بس ما عرفت شو المشكلة وشو المطلوب لهذا ، رجاء ادخل بيانات زيادة في برنامجك ، واخبرني شو اللي لازم يصير ، وفي اي حقل ، وياريت بالصور لأني مافهمت المطلوب جعفر
  13. السلام عليكم أخي عبدالله المسميات العربية نوعين: 1. اسماء الحقول والكائنات ، ومنها اسم افتراضي له امر1 ، وعند اضافة مربع نص يقوم بتسمية افتراضيا نص1 ، وليس عندي جواب لهذه الجزئية 2. واليك المثال التالي: الاسم مكتوب بالعربي ، وانا سأجعل ارتفاع هذا القسم اطول (القسم باللون الازرق) ، مستخدما الطريقة التقليدية في التسمية: . فيصبح الكود: Private Sub راس_التقرير_Format(Cancel As Integer, FormatCount As Integer) Me.راس_التقرير.Height = Me.Height + (2 * 1440) End Sub واليك التقرير التالي ، وهو نسخة طبق الاصل من التقرير السابق: . إلا اني لم اهتم بالمسميات العربية ، وانما استعملت اسماء فهرست الكائنات في التقرير ، فاصبح الكود: Private Sub Report_Open(Cancel As Integer) Me.Section(acHeader).Height = Me.Section(acHeader).Height + (2 * 1440) End Sub والنتيجة: . فقصدي هنا اننا يمكن ان نعالج جزء من المشكلة بهذه الطريقة جعفر 291.English_wordings.mdb.zip
  14. عفوا ، نسيت ارجع الاستعلام ليقوم بأخذ القيمة من النموذج الفرعي استخدم هذا SQL للاستعلام qry_Last_Disc_End_Date : SELECT DiscountEndDate FROM Cridi WHERE DiscountEndDate Is Not Null AND EmployeeID=[Forms]![frmCridi]![frmCridi_sub]![EmployeeID] ORDER BY ID DESC جعفر
  15. وعليكم السلام لم اتوصل لحل لأني بحاجة الى بيانات اكثر ، فالمثال الذي وضعته انت خطأ ، لأن فيه بيانات شهري 1 و 2 ، بينما اسم التقرير يقول بأن البيانات لشهر 2 !! والتاريخ ، هل نأخذه من جدول Daily؟؟ كيف والبيانات موجودة في الجدول det entry !! فرجاء تعبئة بيانات اكثر في قاعدة بياناتك ، ثم ضع مثال واضح بالارقام (يعني لا تخلي كل الارقام 5000 ، فبهذه الطريقة لن يمكنني معرفة هذا العدد ينتمي الى اي عمود). ورجاء جعل المثال واضح بالصور والاسهم (عن طريق power point مثلا) جعفر
  16. تفضل سؤالك لم يوضح انك تريد مقارنة تاريخ بداية الخصم مع تاريخ نهاية الخصم السابق!! هذا هو الكود الجديد: Private Sub DiscountStartDate_BeforeUpdate(Cancel As Integer) 'get the last Discount End Date 'mySQL = "SELECT DiscountEndDate FROM Cridi" 'mySQL = mySQL & " WHERE DiscountEndDate Is Not Null AND EmployeeID =" & Me.EmployeeID 'mySQL = mySQL & " ORDER BY ID DESC" 'Debug.Print mySQL ' 'Dim rst As DAO.Recordset 'Set rst = CurrentDb.OpenRecordset(mySQL) 'rst.MoveLast: rst.MoveFirst 'Last_Disc_End_Date = rst!DiscountEndDate Last_Disc_End_Date = DLookup("[DiscountEndDate]", "qry_Last_Disc_End_Date") If Me.DiscountStartDate <= Last_Disc_End_Date Then MsgBox " تاريخ بداية الخصم أكبر أو يساوي تاريخ نهاية الخصم السابق" Cancel = True Me.Undo End If End Sub جعفر 289.FrmCridi.mdb.zip
  17. وعليكم السلام خلينا نترجم كلامك الى لغة الاكسس انت قصدك بالعُهد هنا ، السجلات 1. طيب اذا كانت سجلات الشخص تتعدى الصفحة الواحدة ، مثلا صفحة ونصف ، فهل تريد ان تكتب تحت الصفحة الاولى مجموع سجلات الصفحة والنصف؟ طيب وفي نهاية سجلاته ، نهاية الصفحة ونص ، هل عندك مجموع هناك كذلك ، طبعا لا الطريقة الاسهل لحل هذه المسألة هي في التجميع والفرز في التقرير ، انظر المثال المرفق ، حيث سأعمل تجميع للحقل nam_Student (انت تستطيع ان تعمل التجميع لحقل العُهد): هذا شكل التقرير العادي ، واذا عملت مجموع العُهد ، فستأتي آخر التقرير (لآحظ لا يوجد قسم الصفحات هنا ، بدل قسم رأس وذيل التقرير) ، اضغط على 1 ، ثم 2 . الآن عملنا قسم/مجاميع خاصة للحقل nam_Student ، وظهر له رأس وذيل (وهنا تستطيع بهذه الطريقة ان تعمل مجموع العُهد في ذيل هذا القسم ، وسيكون صحيحا) . وفي الرابط التالي ، لاحظ الصورة الثانية والثالثة ، لنفس الغرض: http://www.officena.net/ib/topic/67329-حصر-اجمالي-عدد-الاجازات-لكل-موظف-في-التقرير-عنوان-معدل/?do=findComment&comment=437803 جعفر
  18. وعليكم السلام أستاذ عبدالعزيز لوسمحت تعمل موضوع منفصل لكل سؤال ، وان شاء الله تحصل على الاجابه جعفر
  19. وعليكم السلام بالنسبة الى اسماء اقسام النماذج او التقارير ، فيمكنك اللجوء الى اسماء البرنامج بدل الاسماء بالعربي (او حتى بدل الاسماء بالانجليزي): انظر المثال التالي: استعمل Me.InsideHeight = Me.Section(acDetail).Height * 10 بدل Me.InsideHeight = Me.Detail.Height * 10 . فمسمى Me.Section(acDetail)K هو مسمى البرنامج لجميع الاصدارات جعفر
  20. دي حركة جامدة اوي يا سيد جمال جعفر
  21. السلام عليكم أستاذ عبدالعزيز في مثل امريكي يقول: اذا الشئ ما مكسور ، لا تصلحه ليش غيرت اسم الحقل الى esm-altalep ؟ هذه كانت مشكلتك ، فارجعتها الى a3 ، والسلام ، طبعا شكرا انك اعطيتني رابط البرنامج الاصل ، اللي به عملت المقارنة واكتشفت الخطأ . والنتيجة: جعفر 288.المعلم اليمني1.mdb.zip
×
×
  • اضف...

Important Information