بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
1,366 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
19
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو sandanet
-
اخي الكريم ارفق مثال بسيط لقاعدة البيانات التي لديك لكي يتسنى العمل عليها
-
جداول مدرسية وتوزيع آلي للمواد والحصص للمعلمين
sandanet replied to حمدى الظابط's topic in قسم الأكسيس Access
اخي الكريم حمدي يفضل ان تضع البرنامج بالكود السابق وشرح آلية عمله لكي يتم تفحصه وتجربته والمشاركة فيه من جميع الاخوة والاساتذة الكرام ولتعم الفائدة اكثر وان شاء الله الكل يساهم فيه .. ان مايبعد الشخص عن المشاركة في بعض الاحيان هو صعوبة فهم الفكرة التي تقوم بطرحها او جود اخطاء جذرية في البرنامج تمنع الوصول الى الهدف وو ..الخ لذلك عند طرح البرنامج يفضل ان يكون واضح وان تشرح آلية عمله بشكل سلس يفهمه الجميع لكي يستطيع اكثر عدد من الاشخاص المساهمة فيه تحياتي -
جداول مدرسية وتوزيع آلي للمواد والحصص للمعلمين
sandanet replied to حمدى الظابط's topic in قسم الأكسيس Access
اخي الكريم حمدي الكود الذي لديك هو للتوزيع التلقائي للحصص والمواد للمدرسين على الفصول خلال الاسبوع ... في البداية لديك تعريف للمتغيرات التي سوف يتم استخدامها في الكود وهي : بالنسبة للمتغيرات من tb1 الى tb4 فهي لتعريف جداول البيانات التي سيتم العمل عليها Dim i, sf, mrhla, sfofco, sfof(20) As String Dim tb1 As Recordset Dim tb2 As Recordset Dim tb3 As Recordset Dim tb4 As Recordset وبعدها لديك كود يقوم باسناد اسماء الجداول الى المتغيرات tb1 الى tb4 .. يعني ان tb1 هو الجدول teacher class والجدول tb2 هو جدول الفصل .. الخ Set tb1 = CurrentDb.OpenRecordset("teacher class", dbOpenDynaset) Set tb2 = CurrentDb.OpenRecordset("الفصل", dbOpenDynaset) Set tb3 = CurrentDb.OpenRecordset("بيانات المادة", dbOpenDynaset) Set tb4 = CurrentDb.OpenRecordset("بيانات المعلم", dbOpenDynaset) الكود بعد ذلك يقوم بالتأكد من احتواء جدولي tb3 و tb4 على بيانات .. فإن وجد فيهن بيانات عندها سيقوم بحذفها كلها .. الكود المسؤول عن هذه العملية هو If tb3.RecordCount <> 0 Then tb3.MoveFirst Do While tb3.EOF = False tb3.Delete tb3.MoveNext Loop End If If tb4.RecordCount <> 0 Then tb4.MoveFirst Do While tb4.EOF = False tb4.Delete tb4.MoveNext Loop End If بعد ذلك يتم حساب الصفوف والمراحل بالجدول 2 عن طريق هذا الكود tb2.MoveFirst sfofco = 1 sfof(1) = tb2![الصف] mrhla = tb2![المرحلة] Do While tb2.EOF = False If mrhla <> tb2![المرحلة] Then sfofco = sfofco + 1 sfof(sfofco) = tb2![الصف] mrhla = tb2![المرحلة] End If tb2.MoveNext Loop بعد ذلك يتم توزيع الصفوف والمراحل وعدد الحصص على عدد ايام الاسبوع في جدول بيانات المادة في الكود التالي For sf = 1 To sfofco tb1.MoveFirst Do While tb1.EOF = False For i = 3 To 100 Step 2 If tb1.Fields(i) = sfof(sf) Then tb2.FindFirst "[الصف] = " & "'" & sfof(sf) & "'" tb3.FindFirst "[الصف]=" & tb2![المرحلة] & " and [المادة] = '" & tb1.Fields(i + 1) & "'" If tb3.NoMatch = True Then tb3.AddNew tb3![الصف] = tb2![المرحلة] tb3![المادة] = tb1.Fields(i + 1) tb3![عدد الحصص] = 1 tb3.Update Else tb3.Edit tb3![عدد الحصص] = tb3![عدد الحصص] + 1 tb3.Update End If End If Next i tb1.MoveNext Loop Next sf واخيراً يتم توزيع المعلمين على ايام الاسبوع وعلى حسب المواد التي لديهم في الجدول عن طريق الكود التالي tb1.MoveFirst Do While tb1.EOF = False For i = 3 To 100 Step 2 tb4.FindFirst "[الفصل]='" & tb1.Fields(i) & "'" & " and [المادة] = '" & tb1.Fields(i + 1) & "'" & "and [رقم] =" & tb1.Fields(0) If tb4.NoMatch = True And IsNull(tb1.Fields(i)) = False Then tb4.AddNew tb4![رقم] = tb1.Fields(0) tb4![اسم المعلم] = tb1.Fields(1) tb4![الفصل] = tb1.Fields(i) tb4![المادة] = tb1.Fields(i + 1) tb2.FindFirst "[الصف]='" & tb1.Fields(i) & "'" tb4![الصف] = tb2![المرحلة] tb4.Update Else End If Next i tb1.MoveNext Loop ارجو ان يكون الشرح واضح .. اعتذر عن عدم تمكني من التفصيل اكثر لضيق الوقت ولان الكود طويل نوعا ما فارجو السماح -
مشكلة تكرار عملية الاختيار في كل النماذج
sandanet replied to أبو عبير 2005's topic in قسم الأكسيس Access
يرجى ارفاق القاعدة بصيغة mdb -
كود او علاقه تظهر لى قيمتين فى نموزج رئيسى
sandanet replied to khaledkamel's topic in قسم الأكسيس Access
استخدم دالة Dlookup كمصدر لعنصر التحكم الحساب السابق والاسم -
كود او علاقه تظهر لى قيمتين فى نموزج رئيسى
sandanet replied to khaledkamel's topic in قسم الأكسيس Access
أخي الكريم الكل هنا يرجوا المساعدة لكن ذلك لا يعني ان نخالف قوانين المنتدى .. عنوان موضوعك مخالف وسيتم اغلاقه من قبل الادارة لذلك ارجو منك التقيد في قوانين المنتدى حتى تستفيد انت ويستفيد الكل تحياتي -
بارك الله فيك اخ عادل .. ان شاء الله يستفيد منه اعضاء المنتدى الكرام تحياتي
-
كيف يمكننى عمل شرط بين خليتين منهم خلية فى اخر سجل
sandanet replied to محمد احمد لطفى's topic in قسم الأكسيس Access
حلول الخبراء دائما افضل .. فكرة جميلة بارك الله فيك استاذنا القدير رمهان -
كيف يمكننى عمل شرط بين خليتين منهم خلية فى اخر سجل
sandanet replied to محمد احمد لطفى's topic in قسم الأكسيس Access
نعم اخي الكريم هو كذلك بسبب عدم توضيحك للمطلوب جيداً من البداية .. كان من المفروض ان تقول عمل شرط بين خليتين منهم خلية في اخر سجل لكل شخص .. بهذا نستطيع ان نفهم انك لاتريد اخر سجل في الجدول بشكل عام ، وانما تريد اخر سجل لكل شخص في الجدول .. كما ان جدولك كان لايحتوي الا على اسم واحد وهو "محمد مجدى" وبعدها تقول "محمود اخر سجل عنده 10" ..اخي الفاضل يجب عليك تقديم السؤال بشكل صحيح لكي تحصل على جواب صحيح على العموم .. تفضل المرفق التالي test120.mdb -
طلب تعديل علي كود خاص بالتراجع عن التنفيذ
sandanet replied to يوسف السيد's topic in قسم الأكسيس Access
فقط ضع الامر on error resume next قبل الكود -
اعمل استعلام واختار الحقول المطلوب عرضها ومن ثم اجعل مصدر التقرير ذلك الاستعلام
-
كيف يمكننى عمل شرط بين خليتين منهم خلية فى اخر سجل
sandanet replied to محمد احمد لطفى's topic in قسم الأكسيس Access
اخي الكريم من قال لك بأنه يأتي بالرقم الأكبر من الاستعلام؟؟ الدالة المستعملة هي دالة Last يعني اخر سجل .. ليس لها علاقة بالرقم اذا كان كبير ام لا -
أخي الكريم @أكسس وبس هل اطلعت على ملفك بعد التعديل أم لا؟؟ ارجو الاهتمام بالاجابة
-
كيف يمكننى عمل شرط بين خليتين منهم خلية فى اخر سجل
sandanet replied to محمد احمد لطفى's topic in قسم الأكسيس Access
تفضل test120.mdb -
اعتقد ان المشكلة متعلقة بتعدد نسخ الاوفيس على الجهاز
-
كيف يمكننى عمل شرط بين خليتين منهم خلية فى اخر سجل
sandanet replied to محمد احمد لطفى's topic in قسم الأكسيس Access
في اي مكان يتم وضع الشرط؟ -
ارفق قاعدة بياناتك لتفحصها
-
اذا كانت قيمة txtbox فارغة فيجب عليك استعمال دالة Nz للتجنب القيمة الفارغة وتحويلها الى قيمة عددية كالتالي txtboxC = Nz(txtboxA,0) + Nz(txtboxB,0)
-
اولى الملاحظات هي : 1- في لوحة التقارير .. من الافضل جعل القائمة تغلق عند الضغط بالماوس خارج القائمة وليس عن طريق زر اغلاق في الاسفل 2- اضافة المستخدمين يجب ان تكون حصرية للمدير او المسؤول الرئيسي 3 - عند فتح نموذج اسماء الموردين والضغط على جديد ومن ثم اغلاق النموذج بدون تعبئة البيانات فستظهر رسالة خطأ بوجوب عدم ترك الخانة فارغة.. يجب عليك تلافي ظهور اي رسالة خطأ فيما اذا اراد الشخص اغلاق النموذج بدون تعبئة البيانات .. نفس الشيء في نموذج اسماء العروق 4- عند الضغط على زر الحظائر او الاوزان والنمو او الاعلاف والتغذية لايفتح اي نموذج وكذلك نفس الشيء عند الضغط على التقارير 5- في نموذج ادخال اجراءات التحصين اليدوي اجعل الادخال في خانة تاريخ الاجراء عن طريق اختيار اليوم والشهر والسنة وليس عن طريق كتابتها لانه قد تختلف طرق كتابة التواريخ من شخص الى آخر 6- عند الضغط على زر ادخال في النموذج السابق "نموذج اجراءات التحصين اليدوي" عند الضغط على زر ادخال بينما الخانات جميعها فارغة فسوف تظهر رسالة "تم ادخال اجراء التحصين الدوري على كافة الابقار الموجودة" المفروض لا ينفذ الاجراء مادامت الخانات فارغة واخيراً .. البرنامج رائع التصميم خصوصاً الازرار لكن تنقصه شرح آلية العمل عليه وهو مايجب عليك فعله في زر التعليمات تحياتي
-
تمام الان يعمل بصورة سليمة .. جاري الاطلاع
-
تفضل .. ارجو منك تقييم الاجابة اذا كانت صحيحة تحياتي جمعيات 2.accdb
-
-
تفضل جمعيات.accdb