• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

msak2004

اعضاء
  • عدد المشاركات

    1,312
  • تاريخ الانضمام

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

السمعه بالموقع

213 ممتاز

عن msak2004

  • الرتبة
    عضو مميز جدا

معلومات الملف الشخصي

  • الجنس ذكر
  • الدولة : هي دارنا دار الرحيل وكلنا يوماً إلى دار البقاء

أحدث الزائرين لملفلك الشخصي

14,004 زياره للملف الشخصي
  1. عيب ظهر في برنامج

    وعليكم السلام ورحمة الله وبركاته .. بعد أذنك أخي محمد بارك الله بك.. أخي ايمن غير السطر التالي في كود النتيجة من If TEND > Dto Then الى If TEND > Dto And DatePart("m", FDate) < DatePart("m", TDate) Then تحياتي ..
  2. وعليكم السلام ورحمة الله وبركاته جزاك الله خير وبارك الله بك .. واضح أن البرنامج فيه مجهود وتعب .. ملاحظة : يجب أن لا يقبل النظام القيود الغير متوازنة أيضا نفس الموضوع في دفتر الاستاذ المساعد ولا يمكن حصر كامل الملاحظات الا عند العمل على البرنامج شاكر لك أخي الكريم وجعله الله في ميزان حسناتك.. تحياتي ..
  3. جزاك الله خير أخي العزيز عمر وبارك الله بك .. تحياتي
  4. السلام عليكم ورحمة الله وبركاته جزاك الله كل خير أخي أبو يوسف وبارك الله بك على هذا المجهود الطيب مع جميع الأعضاء ... تقبل تحياتي ..
  5. أخي الكريم tbazh مثال جميل جزاك الله خير وبارك الله بك تحياتي ..
  6. في الراط الخاص بمشاركتي المرفق كان هناك حقل واحد اسمه المبلغ ولكن تم توزيعه الى حقلين واحد دائن والثاني مدين في سجلين منفصلين.. يجب ان يكون هناك حقلين منفصلين واحد للقيم الدائنة والثاني للقيم المدينه .... وبالتأكيد هذا سيسهل عليك عمل رصيد للحركة اليومية الدائن الى الدائن والمدين الى المدين والرصيد = الفرق بينهما كما وضحنا بالمشاركة السابقة .. اما عمل مثل هذا على حقل واحد فلم اجرب ذلك ولا استطيع ان اقول لا يمكن ، واذا كان احد الأخوة له تجربة بذلك فليتفضل بإفادة أخي فتى الوادي .. تحياتي ..
  7. أخي العزيز حسان اشكرك على هذه السطور الجميلة وجزاك الله خير .. ما شاء الله مبرمج وشاعر .. بارك الله بك .. خليك بالاجواء .. وان شاء الله سنقدم لكم ما هو جديد وحصري بنفس الخصوص ، فجهز قلمك لقصيدة جديدة :) تحياتي ..
  8. وعليكم السلام ورحمة الله وبركاته راجع هذا الرابط ....وهو جديد ....وبنفس الخصوص .. http://www.arabteam2000-forum.com/index.php?showtopic=236987&st=0&p=1174823&fromsearch=1entry1174823 المشاركة تحتاج وقت ودراسة وافية لمعرفة الفكرة لان مثل هذا النوع من البرامج يلزمها تخطيط ومن ثم تنفيذ ،.. وهذا ايضا رابط بطريقة اخرى لاساذنا ومعلمنا الحبيب ايهاب عثمان .. http://www.arabteam2000-forum.com/index.php?showtopic=175602 تحياتي ..
  9. الله ينور عليك أخي العزيز فتى الوادي .. أما أنواع الحقول التي طبيعتها رقمية فاستخدم النوع المناسب حسب طبيعة الرقم الذي تريد تخزين البيان به وأليك شرح مختصر عن أنواعها : 1- بايت - تخزن به ارقام صحيحية فقط من صفر الى 255 2- عدد صحيح - تخزن به أرقام صحيحة فقط قيمتها من صفر الى 32768 3- عدد صحيح طويل تخزن به أرقام صحيحة فقط قيمتها من صفر الى 2147483648 4- مزدوج - تخزن به أرقم صحيحة وعشرية حتى 7 5- فردي - تخزن به أرقم صحيحة وعشرية حتى 15 وفي مثالك استخدم النوع مزدوج للحقول txtin و txtout تحياتي ..
  10. كيف اخذ قيمه من نموذج آخر

    شكرا أخي العزيز فتى الوادي جوابك صحيح ولكن ينقصه شئ بسيط (Form. ) .. ولو تسمح لي بارك الله بك .. لو فرضنا ان form salesهو النموذج الرئيسي و form transactions هو النموذج الفرعي وsales هي القيمة المطلوب نقلها اخي لاحضار قيمة من النموذج الفرعي الى الرئيسي استخدم الكود التالي : =Forms![form sales]![form transactions].Form![sales] ولاحضار قيمة من النموذج الرئيسي الى الفرعي استخدم الكود التالي : =Forms![form sales]![sales] تحياتي ..
  11. كلام جميل .. ممكن اختصار جميع الأكواد المستخدمة الى null والتعويض عنها بجملة SQL في الاستعلام الخاص بمصدر السجلات SELECT t_1.txtname, t_1.txtkin, t_1.id AS [Last ID], [txtout]+[txtin] AS txtlastm FROM t_1 WHERE (((t_1.id) In (Select max(t_1.id) from t_1 group by t_1.txtname))); هناك ملاحظة مهمة لم تذكر .. أخي فتى الوادى من الخطأ استخدام الخاصية نص لحقول طبيعتها رقمية مثل txtin و txtout فهذا سيبطل عمل بعض الاكواد الحسابية في بعض الاحيان، وأنت طبعا في غنى عن مثل هذه الأخطاء.. تحياتي .. مثال على استبدال قيمة حقل بشرط1.rar
  12. وعليكم السلام ورحمة الله وبركاته .. استخدم نفس الطريقة وحاول معرفة قيمة الحقل اذا كان 0 فخذ القيمة الثانية والعكس صحيح =IIf(DLast("[txtin]";"t_1";" [txtname]=[forms]![f_ksf]![txtname] ")=0;DLast("[txtout]";"t_1";" [txtname]=[forms]![f_ksf]![txtname] ");DLast("[txtin]";"t_1";" [txtname]=[forms]![f_ksf]![txtname] ")) وهذا المثال بعد التعديل تحياتي مثال على استبدال قيمة حقل بشرط.rar
  13. جزاك الله خير أخي الكريم فتى الوادي ولو تسمح لي بالمشاركة .. أخي الكريم حسان الكود صحيح ونتائجه صحيحية ولكن فيه أخطاء منطقية .. أولا الغي الكود من الوحدة النمطية المسمى NumberOfPages فلا داعي له وسنستخدم الكود الموجود في النموذج فقط ثانيا هناك خطأ في الكود يظهر عند عمل Debug - Compile للكود اي التدقيق على صحة الكود في هذا السطر Percentage = rs.Fields("Percentage").Value والسبب ان المتغير Percentage غير معرف وهنا استخدمنا في رأس الكود الامر Option Explicit الذي معناه عدم قبول اي متغير غير معرف لان اسم المتغير في التعريف Parcentage والصحيح Percentage وهنا اختلف الاسم وصرنا بمعرف آخر .. ولاحظ أخي الكريم نفس المتغير ايضا في النموذج ولكن لا يعطينا خطأ عليه والسبب كما قلت لك عدم وجود الامر Option Explicit ، وانصح باستخدام هذا الامر تلافيا لأخطاء برمجية أو منطقية نحن في غنى عنها .. ثالثا الكود تم الغاء بعض الاوامر والتي ليس لها علاقة بتنفيذ منطق الكود وتم بالمقابل اضافة بعض الاوامر ليصبح الكود على الشكل التالي Private Sub set_Line() On Error GoTo Err Dim NumberOfPages, Percentage As Double Dim dbs As Database Dim rs As Recordset Set dbs = CurrentDb NumberOfPages = 0 If IsNull(FromAya) Then Me.NuPag = "" Exit Sub End If If IsNull(ToAya) Then Me.NuPag = "" Exit Sub End If 'Loop Set rs = dbs.OpenRecordset("SELECT Percentage FROM tblAya WHERE (((SuraName)= '" & [Forms]![frmReview]![frmReviewDetails_Subform]![Sura] & "' ) AND ( (AyaNo)>= " & [Forms]![frmReview]![frmReviewDetails_Subform]![FromAya] & " ) AND ( (AyaNo)<= " & [Forms]![frmReview]![frmReviewDetails_Subform]![ToAya] & " ) ) ") While Not rs.EOF Percentage = rs.Fields("Percentage").Value NumberOfPages = NumberOfPages + Percentage rs.MoveNext Wend Me.NuPag = Format(NumberOfPages, "##.00") rs.Close dbs.Close Exit_Err: Exit Sub Err: MsgBox Err.Description Resume Exit_Err End Sub تم الغاء rs.MoveLast rs.MoveFirst وتم ايضا الغاء Sum = (NumberOfPages / 15) ولاحظ ان حساب الصفحات موجود في الاستعلام كحقل محسوب Pages: FormatNumber([Lines]/15;1) تم الغاء [code]If Not IsNull(FromAya) Then If Not IsNull(ToAya) Then وتم عمل البديل If IsNull(FromAya) Then Me.NuPag = "" Exit Sub End If If IsNull(ToAya) Then Me.NuPag = "" Exit Sub End If الآن الكود اصبح واضحا أكثر من الاول ، لنشرح الكود Dim NumberOfPages, Percentage As Double Dim dbs As Database Dim rs As Recordset الاول متغيررات لزوم عمليات حسابية والثاني متغير لقاعدة البيانات والثالث متغير قيمة السجل Set dbs = CurrentDb وضع الجدول في المتغير لنستطيع التعامل معه If IsNull(FromAya) Then Me.NuPag = "" Exit Sub End If اذا الحقل المسمى من رقم الآية فارغ يعني قيمة عدد الاسطر فارغ والخروج من الاجراء فلا داعي للتكملة If IsNull(ToAya) Then Me.NuPag = "" Exit Sub End If نفس الموضوع ولكن للحقل الى الآية.. Set rs = dbs.OpenRecordset("SELECT Percentage FROM tblAya WHERE (((SuraName)= '" & [Forms]![frmReview]![frmReviewDetails_Subform]![Sura] & "' ) AND ( (AyaNo)>= " & [Forms]![frmReview]![frmReviewDetails_Subform]![FromAya] & " ) AND ( (AyaNo)<= " & [Forms]![frmReview]![frmReviewDetails_Subform]![ToAya] & " ) ) ") هنا استخدمنا sql وهو استعلام لفلترة السجلات وذلك لتحديد الآية من الى حاول نسخ الكود ووضعه في الاستعلام لتعديل ما يلزمك وثم اعيد نسخه هنا ويعتبر هذا السطر هو بداية حلقة التكرار وذلك لقراءة جميع السجلات المطلوبة بالاستعلام While Not rs.EOF الكود لمعرفة هلى انتهت السجلات حسب الاستعلام المنفذ لفلترة السجلات ؟ اذا لم ينتهي نفذ التالي Percentage = rs.Fields("Percentage").Value NumberOfPages = NumberOfPages + Percentage هنا سيأتي الكود بقيمة Percentage من الجدول ووضعها بالمتغير يتم في السطر التالي تجميع القيمة حسب عدد السجلات rs.MoveNext قراءة السجل التالي ولاحظ السجلات لم تنتهي بعد Wend هنا نهاية الحلقة التكرارية الآن وعند انتهاء السحلات نفذ الاكواد التالية Me.NuPag = Format(NumberOfPages, "##.00") الآن وضع النتيجة بالحقل الموجود بالنموذج وهو عدد الاسطر rs.Close dbs.Close اغلق السجل ثم اغلق الجدول انتهى الكود اعدت تسمية الكود الى set_Line ليسهل علي تنفيذه في الحدث بعد التعديل (من الآية) والحقل (الى الآية) مرفق المثال بعد التعديل تحياتي .. برنامج القرآن الكريم - Copy.zip
  14. حياك الله أخي مالك ولكنك لم تحدد شكل التقرير وأنا فهمت من كلامك على نفس الترتيب تم اضافة التالي الى الاستعلامات سواء كان سنوي أو شهري وهذا ربما لا تكون هناك بيانات مطابقة للمطلوب وبالتالي يحدث خطأ وتم عمل ايضا التقرير الشهري ربما هناك طريقة افضل ولكن هذا الذي خطر على بالي، فقد استخدمت جدول مساعد لتنفيذ المطلوب ولكن اذا كان التقرير بغير هذا الشكل ربما نستغني عن الجدول .. ملاحظة : تم تبديل قاعدة البيانات لوجود رقم سري على VB تحياتي ,, tnfeeth_up.rar
  15. اهلا أخي مالك .. يوجد لديك تاريخ خطأ 209 عوض 2009 في بعض السجلات واقترح وضع قناع لعدم دخول التاريخ خطأ مرفق التقرير حسب المطلوب هذا المثال بعد التعديل تحياتي .. tnfeeth.rar