-
Posts
9903 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
وعليكم السلام أخي أبومصطفى المنتدى لا يسمح بأكثر من سؤال في موضوع واحد ، فرجاء فتح موضوع جديد ، وان شاء الله نتساعد في مساعدتك جعفر
-
جلب بيانات من اكثر من جدول حسب قائمة اختيار!!
jjafferr replied to ahmad__0's topic in قسم الأكسيس Access
طبعا الافضل والاصح انك تدمج جميع الجداول في جدول واحد ، وتفرق بين السجلات بحقل "رقم الجدول" مثلا جعفر -
-
للرفع
-
هدئ اعصابك علينا أخوي أبومصطفى ، أحاول اساعدك بأسرع ما اقدر ، بس صبرك علي شوي 1. عندما تستخدم الدالة NZ ، فيجب ان تخبر البرنامج مالذي تريد الدالة ان تستعمل بدل NULL ، لذا ، واذا اردت ان تستعمل صفر بدل Null ، فلابد ان تكمل الدالة ، لتكون: xx=NZ(Myfield,0) 2. قيمة curbal_dr في الجدول Double وهو الصحيح (او يمكنك استخدام Long Integer) ، لأن ارقام curbal_dr كبيرة: . فاصلحت قيمة curbaldr في الجدول Tcustomer كذلك ليصبح Double : . وفي الكود ، انت اعطيت قيمة curbal_dr الى td ، ولكنك جعلت td Integer ، وهو غير مطابق للجدول ، وهنا كان الخطأ: جعفر 265.copy counter.accdb.zip
-
الله يطول في عمرك أخوي ناصر ، كيف تريده ان يعمل؟؟ يعني يعطيك درجات اي صنف؟ للحصول على اي معلومة من جدولك ، فانت بحاجة الى معطيات اثنين ، صنف ودرجات ، فاذا الغينا الصنف ، فالدرجات تكون لأي صنف؟؟ إلا اذا اردت ان تدمج الصنف والدرجات في الحقل cmb_daraja ، فهل هذا قصدك؟ جعفر
-
أخي ناصر طلبك غير واضح ، رجاء تفصّل اكثر ، واخبرني كيف طريقة العمل اللي تريدها لوسمحت جعفر
-
وعليكم السلام أخي ناصر لا تستطيع ان تستعمل cmb_daraja بدون cmb_Sinf ، فيجب اختيار الصنف عن طريق cmb_Sinf ، وبعدها تستطيع ان تختار الدرجة التي تريدها عن طريق cmb_daraja. جعفر
-
وعليكم السلام لوسمحت تجرب المرفق ، واذا الرسالة الخطأ لا تزال موجودة ، رجاء عدل في بيانات القاعدة واخبرني ماذا ادخل حتى اوصل للخطأ ، انا ادخلت البيانات ، ثم اخبرني البرنامج انه لا يوجد طحين واقفل علي النوذج ، فرجاء تضبيط البيانات وارفاقه (اذا لم يعمل) جعفر 265.copy counter.accdb.zip
-
تحويل تعبير في استعلام الى دالة بالفيجوال بيسك
jjafferr replied to شامل2's topic in قسم الأكسيس Access
تفضل التحويل Fail = 0 If [eslam] < 50 Then Fail = 1 Else Fail = 0 End If If [arab] < 50 Then Fail = Fail + 1 Else Fail = Fail + 0 End If If [engl] < 50 Then Fail = Fail + 1 Else Fail = Fail + 0 End If If [comp] < 50 Then Fail = Fail + 1 Else Fail = Fail + 0 End If If [Math] < 50 Then Fail = Fail + 1 Else Fail = Fail + 0 End If جعفر -
تفضل والكود اللي يضيف هو: Private Sub cmb_List_AfterUpdate() If Len(Me.Add_List & "") = 0 Then Me.Add_List = Me.cmb_List Else Me.Add_List = Me.Add_List & vbCrLf & Me.cmb_List End If End Sub جعفر 263.EXA.accdb.zip
-
وعليكم السلام ارفق الجزء من برنامجك اللي فيه المشكلة لوسمحت ، واخبرنا وين تحصل المشكلة جعفر
-
تفضل والكود: Function check_both_combos() 'No work without Sinf If Len(Me.cmb_sinf & "") = 0 Then MsgBox "Please select a Sinf" Me.cmb_sinf.SetFocus Exit Function End If If Len(Me.cmb_daraja & "") = 0 Then 'Only Sinf is selected Me.Sinf_Est = DLookup("[rakm istid]", "khibra", "[sinf]=" & Me.cmb_sinf) Me.Daraja_Est = "" Else 'both Sinf and Daraja are selected Me.Sinf_Est = DLookup("[rakm istid]", "khibra", "[sinf]=" & Me.cmb_sinf) Me.Daraja_Est = DLookup("[istidlal]", "khibra", "[sinf]=" & Me.cmb_sinf & " And [daraja]=" & Me.cmb_daraja) End If End Function Private Sub cmb_daraja_AfterUpdate() Call check_both_combos End Sub Private Sub cmb_sinf_AfterUpdate() Call check_both_combos End Sub Private Sub cmb_sinf_DblClick(Cancel As Integer) Me.cmb_sinf = "" Call check_both_combos End Sub Private Sub cmb_daraja_DblClick(Cancel As Integer) Me.cmb_daraja = "" Call check_both_combos End Sub جعفر 260.الشبكة الإستدلالية للمرتبات.accdb.zip
-
حياك الله يعني انت اخترت الطريقة الاولى او الثانية ، فقط للعلم جعفر
-
وعليكم السلام . أخي M_Hasanin انا مررت على هذا السؤال عدة مرات ، ولكني لم افهم الطلب فتركته ، فياريت لو انك تأخذ منك وقتك وتعطينا تفصيل عن سؤالك حتى نستطيع ان نساعدك . الآن وبفضل أخي الاستاذ علي ، قد عرفت ان الموضوع عن طباعة التقرير ، والجواب انه لا يمكن ان تجعل هوامش التقرير (اليمين او اليسار) = 0 ، والسبب ليس اكسس ، وانما الطابعة تحتاج مكان لجعل بكراتها من جانبي الورقة ، تسحب الورقة من الجانبين ، فهذا الهامش تحتفظ به الطابعة لنفسها ، ويختلف هذا الهامش من طابعة الى اخرى. والدليل: في التقرير ، في صفحة اعدادات الطابعة ، اختر الطابعة ، اجعل الهوامش الاربعة = 0 ، احفظ التقرير ، اغلق التقرير ، ثم افتح الاعدادات مرة اخرى ، ستجد ان التخاطب بين اكسس والطابعة نتج عنه اقل الهوامش التي تحتاج اليها الطابعة وللعلم ، اذا عملت التقرير على هوامش طابعتك ، ثم اخذتها لكمبيوتر آخر فيه طابعة اخرى ، فالهوامش سوف تتغير هناك ايضا الحل هو ، إما تصغر حجم الخط وحجم الحقول ، او تقلل عدد الحقول، او تختار الصفحة بالعرض ، او انك تلعب بمخطط التقرير ، وتوزع الحقول بطريقة غير اعتيادية ، بحيث تشمل جميع الحقول المطلوبة جعفر
-
السلام عليكم ورحمة الله وبركاته كنت اشتغل على برنامج يتطلب مني ان اعمل في نموذج رئيسي حوالي 6 نماذج فرعية على هيئة تبويب. للتجربة ، استعملت قاعدة بيانات تجريبية فيها جداول بمجموع 189,450 سجل (في الواقع قاعدة البيانات التجريبية عندي فيها اكثر من مليون سجل ، ولكن لكي ارفع البرنامج للموقع ، اضطررت ان اصغر قاعدة البيانات ) ، حتى اعرف الوقت الذي يأخذه النموذج لفتحه ، ومقدار الذاكرة التي يحتاجها الكمبيوتر للقيام بفتح النماذج فقررت ان اضع النتائج بين يديكم ، والكود الذي سوف استخدمه هو Tbl.1 ، حيث مصدر سجلات النماذج هو الجدول مباشرة ، مع بعض الحقول المفهرسة ، والكود هو: DoCmd.OpenForm "frm_Emplyees_Main", , , "[emp_no]=" & Me.cmb_Names والسبب انه اسرع من مثيله ، هو انه نعمل التصفية بحقل رقم ، حيث التصفية بحقل نص يكون ابطأ ، والشئ الآخر الذي فاجئني ، انه يستخدم كمية من الذاكرة اقل من امر الاستعلام Qry.1 !! ، وربما يكون هذا بسبب انني قد استخدمت مربع السرد ، فاتى بالمعلومات مسبقا !! والارقام تختلف قليلا عند استعمال قاعدة البيانات الكبيرة ، والنتيجة ان الكود اعلاه هو الافضل اترك لكم جدول المقارنة ، مع البرنامج النموذج احتاج الى الثواني التاليه لفتحه حجم BE حجم FE اسم الزر/النموذج لا توجد فهرسة لحقول الجداول ، ولا توجد علاقات بين الجداول 0 360KB Frm_Main 6,270MB 450KB Frm_Main, select a name 6,313MB 622KB Qry.1 10,535MB 697KB Tbl.1 Tbl.2 12,354MB 810KB Tbl.3 12,436MB 907KB Tbl.4 النموذج احتاج الى الثواني التاليه لفتحه حجم BE حجم FE اسم الزر/النموذج تم اغلاق البرنامج وعمل فهرسة لبعض الحقول في الجداول ، وعمل علاقات بين الجداول 5,909MB 528KB Qry.1 6,040MB 608KB Tbl.1 Tbl.2 6,744MB 724KB Tbl.3 6,805MB 800KB Tbl.4 جعفر Stress_Test.zip
-
السبب الذي قلت ان جدولك ليس صحيحا لقاعدة البيانات ، هو انك يجب ان تضيف حقل جديد كل شهر ، فالطريقة الصحيحة لعمل الجداول هو اضافة سجلات وليس اضافة حقول وهناك مثل مشهور في قواعد البيانات يقول : الحقول غالية والسجلات رخيصة اما اذا تريد تمشي حالك الان بالجدول الموجود ، ومجرد تريد ان تجمع قيم جميع الحقول ، اعمل استعلام فيه جميع الاسماء ، وننادي منه الدالة Add_Salaries والتي عملناها في الوحدة النمطية ، ونرسل معها اسم الشخص: . وهذا كود الدالة Add_Salaries: Function Add_Salaries(F As String) As Double 'F = Full Name Dim rst As DAO.Recordset Dim fld As Field 'get this Name Record from the table Set rst = CurrentDb.OpenRecordset("Select * From [salary2015+2014] Where Full_Name='" & F & "'") T = 0 'initial Total 'loop through the fields For Each fld In rst.Fields 'Debug.Print fld.Name & vbTab & fld.Value 'skip the Full_Name field name If fld.Name <> "Full_Name" Then 'add the field values T = T + fld.Value End If Next fld 'now send this Total to the query Add_Salaries = T End Function . حيث اننا في الدالة نطلب سجل الشخص من الجدول salary2015+2014 ، ثم نقول بقراءة الحقول وجمعها ، زنرسل النتيجة الى الاستعلام ، فتصبح نتيجة الاستعلام: . جعفر 262.salary2015+2014.accdb.zip
-
وعليكم السلام هناك طريقة افضل لحفظ سجلاتك في الجدول ، فطريقتك مأخوذة من الاكسل مثلا ، وليست صحيحة لقواعد البيانات . عملت لك جدول جديد ، وجلبت لك البيانات اليه: . والبيانات: . وعليه ، عملت عدد 2 استعلام جدولي ، واحد شامل لكل السنوات: . ونتائجه: . واستعلام سنوي (يعني استخدم خاصية التصفية) ، لكل سنة على حدة: . والنتيجة: . جعفر 262.salary2015+2014.accdb.zip
-
أخي الفاضل رمهان الكود الذي استخدمته انت هو: DoCmd.OpenReport "مساعد كشف الارصده", acViewPreview, , Me.تابع4.Form.Filter, acHidden DoCmd.OpenReport "مساعد كشف الارصده", acViewNormal DoEvents DoCmd.Close acReport, "مساعد كشف الارصده" وهو نسخة اخرى من الكود الذي وضعته انا سابقا والظاهر ان سبب عدم عمل كود الطباعة هو ، ان التصفية تتم بعد فتح التقرير !! لقد حاولت ان آخذ مصدر التقرير ، واضع فيه التصفية والفرز مباشرة ، وارجعه إما بصيغة SQL او Recordset ، بحيث يفتح التقرير على التصفية والفرز مباشرة ، ولكن لم افلح جعفر
-
حيا الله أخي وليد انا ما اعرف عن رقم 1 ، فانا استعمل صيغة 2010 ، وياريت المنتدى يعمل استفتاء لمعرفة النتيجة ، اما رقم 2 ، فياريت تخبرنا عن سبب افضليتها ، والاهم من هذا هو ذكر مصدر هذه المعلومة !! جعفر