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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. وعليكم السلام 🙂 المنتدى مليء بمثل هذه المواضيع ، استخدم خاصية البحث وستجد المطلوب ان شاء الله 🙂 جعفر
  2. وعليكم السلام 🙂 لا تستخدم دوال Dsum, Dlookup, Dcount ..... في الاستعلام ، فأنت تكون قد حكمت على الاستعلام بالبطئ الشديد !! اعمل اول استعلام ، يكون استعلام مجاميع واجمع فيه (بدل Dsum) ، ثم اعمل استعلام آخر ، يكون احد مصدر بياناته هو استعلام المجاميع اعلاه ، ومصادر البيانات الاخرى ، واعمل بينهم علاقة حتى تكون السجلات صحيحة 🙂 جعفر
  3. وعليكم السلام 🙂 هذا الرابط به الجواب على طلبك جعفر
  4. السلام عليكم 🙂 معلومات اضافية عن هذا الموضوع جعفر
  5. السلام عليكم أخي الاستاذ حسين 🙂 انت اكبر من ان تسعك مثل هذه الكلمات ، ويشرفني ان ازف اليك شكر وتقدير مني شخصيا 🙂 وشكر وتقدير من ادارة الموقع لجميع المساهمين في نشر العلم في هذا الموقع 🙂 جعفر
  6. شكرا اخوي خالد 🙂 اخي يوسف: للتوضيح ، هذا ما فعله اخوي خالد لحل مشكلة الرسائل 🙂 في الاستعلام الجدولي ، او الاستعلام الذي يستعمل الاستعلام الجدولي ، لما يكون عندك اي معلمة/اشارة الى حقل في نموذج ، يجب إعلام/إخبار الاستعلام بمكان ونوع هذه الحقول ، هكذا: . جعفر
  7. وعليكم السلام 🙂 سيدي الفاضل ، سؤالك مهم ، ولكن صيغة الكود غير صحيحة !! لما نقول ان Dlookup بطيء ، فمقارنته تكون مع نتائج استعلام بدون Dlookup ، اما لما نقول لا تستعملوا Dlookup ، فهو في الاستعلام ، مثل: . اما اذا كانت مقارنتك في الكود بين Dlookup و Recordset : 1. لإستخراج قيمة واحدة فقط ، فطبيعي Recordset تكون ابطأ ، لأنها تعمل نسخة من البيانات وتحتفظه في الذاكرة المؤقته RAM في الكمبيوتر ، فهذه العملية تأخذ وقت ، 2. إستخراج اكثر من قيمة/سجل ، فيكون Recordset اسرع ، لأنه بعد حفظ القيمة في ذاكرة الكمبيوتر ، يكون الحصول على البيانات منها اسرع ، ولكن بشرط ان تعمل الكود بالطريقة الصحيحة (انظر الكود) ، انا عملت نسخة من الجدول test واسميته test2 ، وعملت حقل tst مفهرس، لأنك تستخدمه كمعيار للحصول على النتائج التي تريدها ، ثم ضغط واصلاح للبرنامج حتى يستفيد البرنامج من فهرست الحقل، وعليه ، اصبح جلب النتائج من الجدول الثاني اسرع بكثير !! اليك بعض التجارب التي عملتها للجدولين : Option Compare Database Private Sub Commande0_Click() Dim t, t11, t12, t13, t14, t21, t22, t23, t24 As Single Dim r As Long 'table test '1 Dlookup t = Timer r = Nz(DLookup("id", "test", "tst='mohamed'"), 0) t11 = Timer - t t11 = Format(t11, "#0.0####") '2 qry_test t = Timer r = DCount("*", "qry_test") t12 = Timer - t t12 = Format(t12, "#0.0####") '3 Recordset_1 t = Timer r = fff_1("test", "mohamed") t13 = Timer - t t13 = Format(t13, "#0.0####") '4 Recordset_2 t = Timer r = fff_2("test", "mohamed") t14 = Timer - t t14 = Format(t14, "#0.0####") 'table test2 '1 Dlookup t = Timer r = Nz(DLookup("id", "test2", "tst='mohamed'"), 0) t21 = Timer - t t21 = Format(t21, "#0.0####") '2 qry_test t = Timer r = DCount("*", "qry_test2") t22 = Timer - t t22 = Format(t22, "#0.0####") '3 Recordset_1 t = Timer r = fff_1("test2", "mohamed") t23 = Timer - t t23 = Format(t23, "#0.0####") '4 Recordset_2 t = Timer r = fff_2("test2", "mohamed") t24 = Timer - t t24 = Format(t24, "#0.0####") Debug.Print "Dlookup:" & vbCrLf & _ "table test: " & t11 & vbTab & " test2: " & t21 & vbCrLf Debug.Print "qry_test, test2:" & vbCrLf & _ "table test: " & t12 & vbTab & " test2: " & t22 & vbCrLf Debug.Print "Recordset_1:" & vbCrLf & _ "table test: " & t13 & vbTab & " test2: " & t23 & vbCrLf Debug.Print "Recordset_2:" & vbCrLf & _ "table test: " & t14 & vbTab & " test2: " & t24 MsgBox "Done" End Sub Public Function fff_1(tbl_Name As String, tt2 As String) As Long Dim db As DAO.Database Dim rs As DAO.Recordset Dim rr As Long Set db = CurrentDb Set rs = db.OpenRecordset("Select id, tst From " & tbl_Name) rs.FindFirst "[tst]='" & tt2 & "'" If rs.NoMatch Then fff_1 = 0 Else fff_1 = rs!id End If rs.Close: Set rs = Nothing End Function Public Function fff_2(tbl_Name As String, tt2 As String) As Long Dim db As DAO.Database Dim rs As DAO.Recordset Dim rr As Long Set db = CurrentDb Set rs = db.OpenRecordset("Select id, tst From " & tbl_Name & " WHERE tst='" & tt2 & "'") rs.MoveLast: rs.MoveFirst fff_2 = rs.RecordCount rs.Close: Set rs = Nothing End Function والنتائج من "كمبيوتري القديم" بالثواني واجزاء من الثانية : Dlookup: table test: 0.1875 test2: 0.0 qry_test, test2: table test: 0.375 test2: 0.00391 Recordset_1: table test: 1.19531 test2: 0.17578 Recordset_2: table test: 0.38281 test2: 0.00391 اما اذا وضعنا الدالة Dlookup في استعلام ، وهو الخطأ ، فنتيجة الاستعلام التالي ، والوقت الذي اخذته: والوقت الذي اخذته بالثانية وجزء من الثانية 997.8555 جعفر
  8. وعليكم السلام 🙂 اسهل طريقة ، وبدون انزال المرفق ، اتبع الخطوات التالية : اعمل استعلام جديد ، ومصدر هذا الاستعلام هو الاستعلام الجدولي ، انزل فيه جميع الحقول المطلوبة ، واعمل التصفية والفرز بالطريقة العادية 🙂 جعفر
  9. وعليكم السلام 🙂 طريقة اخوي ابوياسين هي ، اذا كان الحقل نص : اما هذه الطريقة ، فلحقل النص والرقم كذلك : =NZ(DSum("[chemical_element]","Qlaboratory","[typeelement]='active'"),0) جعفر
  10. وعليكم السلام 🙂 Dim X As Integer X = DCount("*", "[TBvirus]", "[virusid]='" & Me.idvirus & "' AND [idlaboratory]=Forms![Flaboratory]![idlaboratory]") If X > 0 Then MsgBox "error87", 48, "error" DoCmd.CancelEvent End If جعفر
  11. شكرا جزيلا 🙂 جعفر
  12. خلينا نسأل الاستاذ @صالح حمادي ان يضيف هذه الخاصية في برنامجه ، اذا ممكن ؟ جعفر
  13. السلام عليكم اخي حسين 🙂 عندي الجهاز اللي ممكن اجرب عليه ، ولكني لم استطع الحصول على برنامج او طرف خيط !! جعفر
  14. وعليكم السلام 🙂 تفضل : جعفر
  15. وعليكم السلام 🙂 هناك امر لكل جقل اسمه "القيمة القديمة/السابقة" ، هكذا: me.ABC = me.ABC.oldvalue او me.ABC.value = me.ABC.oldvalue والشرط الوحيد في توفر القيمة السابقة هي انك لم تقم بحفظ السجل بعد (او تنتقل الى سجل آخر). جعفر
  16. وعليكم السلام 🙂 نعم يمكن استعمال هذه الطريقة (صحيح انه ليس مكانها ، ولكن مافي مانع) في النموذج ، وفي التقرير في وضع المعاينة (اي ليس وضع الطباعة) ، ولكن بما ان سؤالك كان عن عرض (طباعة) التوقيع في التقرير: فإن الشفافية لن تظهر في التقرير في وضع الطباعة ، اي لما تطبع التقرير على ورق او تصدره الى pdf فلن تظهر الشفافية !! جعفر
  17. يعني قصدك: بسبب ان النجار يستطيع استعمال مفك البراغي في كل اعماله: . فمافي داعي لبقية الادوات: . او لأننا ممكن نستعمل حقل النص لكل البيانات: نص و رقم و تاريخ ، فمافي داعي استعمال انواع الحقول الاخرى !! احد اهم الاسباب ان لكل نوع ومتغير عمله ، هو السرعة والدقة في العمل 🙂 جعفر
  18. وعليكم السلام 🙂 اذا اعطيت القيمة في الكود mij= "jjafferr" u = mij اما اذا كانت القيمة في النموذج u = me.mij جعفر
  19. لاحظ الصورة اعلاه من التقرير ، في مشروع: انيميا ، يوسف عنده 3 سجلات ، وفي جميع السجلات حالته: مصاب ، طيب ، واذا سجله الثاني اظهر: سليم ، شو بتعمل ، هل تجمعه يوسف في الاحصائية ، كمصاب او سليم؟ جعفر
  20. السلام عليكم 🙂 علشان اعمل المقارنة ، البارحة حولت استعلامك الى كود (بعد يحتاج له شوية شغل) ، والمغرب ان شاء الله اتفرغ لموضوعك 🙂 جعفر
  21. اخي احمد ياريت تشوف هذا الرابط ، والذي فيه نقاش عميق عن حساب العمر ، وانا استعملت الموقع الذي اشرت اليه انت : والافضل ان تقرأ الموضوع كاملا 🙂 جعفر
  22. السلام عليكم 🙂 الفكرة اللي استعملتها ، هي معادلات الاكسس ، وبدون تحديد عدد ايام للشهر ، عندنا تاريخ المباشرة ، ومن تاريخ اليوم ، نضيف اليه الخدمة المضافة ، سنة ، ثم شهر ، ثم يوم ، بحيث نتوصل الى تاريخ جديد ، ومن التاريخ الجديد ، نستقطع ، سنة ، ثم شهر ، ثم يوم ، بحيث نتوصل الى تاريخ جديد ، ثم في النهاية ، نوجد الفرق بين تاريخ المباشرة وبين هذا التاريخ الجديد 🙂 : Private Sub cmd_Cal_Click() Dim Y As Integer: Dim M As Integer: Dim D As Integer Dim Y_Add As Date: Dim M_Add As Date: Dim D_Add As Date Dim Y_Ded As Date: Dim M_Ded As Date: Dim D_Ded As Date Dim Y_Fin As Date: Dim M_Fin As Date: Dim D_Fin As Date 'Now Me.dmy_Now = YMDDif(Me.ddd, Date, Y, M, D) Me.Y_Now = Y Me.M_Now = M Me.D_Now = D 'Add Y_Add = DateAdd("yyyy", Me.yerr, Date) M_Add = DateAdd("m", Me.mann, Y_Add) D_Add = DateAdd("d", Me.dyy, M_Add) Me.dmy_Add = D_Add 'Deduct Y_Ded = DateAdd("yyyy", -Me.yerrr, Me.dmy_Add) M_Ded = DateAdd("m", -Me.mannn, Y_Ded) D_Ded = DateAdd("d", -Me.dyyy, M_Ded) Me.dmy_Deduct = D_Ded 'Final Me.dmy_Final = YMDDif(Me.ddd, Me.dmy_Deduct, Y, M, D) ' Me.Y_Fin = Y ' Me.M_Fin = M ' Me.D_Fin = D End Sub Private Sub Form_Current() Call cmd_Cal_Click End Sub . والوحدة النمطية YMDDiff : Public Function YMDDif(ByVal sDate1 As Date, ByVal sDate2 As Date, _ ByRef Y As Integer, ByRef M As Integer, ByRef D As Integer) As String 'sdate1 earliest date sdate2 later Dim iYear As Integer Dim iMonth As Integer Dim iDay As Integer Dim dInterim1 As Date iMonth = DateDiff("m", sDate1, sDate2) If Day(sDate1) > Day(sDate2) Then iMonth = iMonth - 1 End If dInterim1 = DateAdd("m", iMonth, sDate1) iDay = DateDiff("d", dInterim1, sDate2) D = iDay M = iMonth Mod 12 Y = iMonth \ 12 'YMDDif = CStr(Y) & " Years " & CStr(M) & " months " & CStr(D) & " days" YMDDif = CStr(D) & " ي/" & CStr(M) & " ش/" & CStr(Y) & " س" End Function . والنتيجة: . ويمكننا عمل كل هذه المعادلات في الاستعلام ، بالاضافة الى مناداة الوحدة النمطية 🙂 رجاء التأكد من الارقام اولا. جعفر Database1.zip
  23. حياك الله اخوي يوسف ، وكل عام وانت والاهل بخير 🙂 نضيف هذه المعادلة لنجمع عدد المصابين والاصحاء (السليمين!!) . والنتيجة : . جعفر 1238.1.APE.accdb.zip
  24. نعم ، التاريخ مو مشكلة ، لأنك تعطي الحقل تاريخ اليوم بمعادلة واحدة ، ولمرة واحدة فقط 🙂 نعم ، هذا هو الكلام الجميل 🙂 جعفر
×
×
  • اضف...

Important Information