-
Posts
3,015 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
4
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
مشاركات المكتوبه بواسطه عبد الفتاح كيرة
-
-
هذا إبداع
أولا فى فهم المطلوب تماما
ثانيا جارى الفحص و الدراسة و من ثم الرد عليكم
وشكرا جزيلا لك
-
في ١٠/٧/٢٠١٨ at 01:15, عبد الفتاح كيرة said:
Set rs = CurrentDb.OpenRecordset("SELECT Students.sery, Students.Group, Students.kolaf, Students.mazroof FROM Students where (group =" & fs & ") order by group")
خزن فى قاعدة البيانات الحالية currentdb جملة الاستعلام التالية
مع ملاحظة
Where (group=)
Fs
اسم المتغير الذى سيتم استدعاء الوظيفة به
وعند الاستدعاء نجعل المتغير يساوى رقم المجموعة من 1 إلى 11
داخل حلقة تكرارية
والبقية تأتى إن تيسر الحال
- 1
-
في ١٠/٧/٢٠١٨ at 01:15, عبد الفتاح كيرة said:
Function myfun(fs As Integer)
بداية الوظيفة
واسمها
وما بين القوسين متغير تطلبه عند استدعائها
في ١٠/٧/٢٠١٨ at 01:15, عبد الفتاح كيرة said:Dim rs As Recordset Dim rrr As Integer rrr = 1 Dim i, ii, iii As Integer Dim r As Integer Dim rr As Integer
حجز مكان فى الذاكرة لتخزين السجلات عنوانه rs من النوع recordset
ثم مجموعة من المتغيرات من النوع الرقمى تعرف عند استخدامها
- 1
-
أستاذنا جعفر
تم حل المشكلة بفضل الله
فبدلا من استخدام مربعات نصوص غير منضمة
استخدمت الاستعلام الجدولى
وهو حل رائع
حقول عناوين الصفوف هى
حقل الصف
ثم حقل الفصل
وحقل عناوين الأعمدة هو حقل حالة الطالب و فيه مستجد/معيد
لكن لا مانع من إكمال ما بدأنا لإفادة المنتدى
وهناك مشكلة عامة فى الاستعلام الجدولى
وهى أنه لا يضع عنوانا لعمود فى حال كان خاليا
يعنى لو عمود به 5 قيم
واحدة منها غير مستعملة ليس فيها بيانات
فإن الاستعلام الجدولى لا يعرضها
-
-
إن شاء الله لما نرجع من العمل أقوم بما تيسر من الشرح
مع أنى لم أعرف نتيجة الكود الذى أدرجته
- 1
-
نعم أذكر و هو مستخدم للآن
لكن هذه التى معنا الآن مربعات غير منضمة
-
المشكلة فى الصفوف
وليست فى الأعمدة فالأعمدة ثابتة
حسب فكرتك
ندرج مثلا فى 10 مربعات تحت بعضها
ونتحكم بالكود فى ارتفاعاتها وفى المسافات بينها
ونخفى الزائد منها
سأجرب ذلك و أرد عليك
مع خالص شكرى
وأرجو إرشادى برابط لمواضيع مشابهة فى المنتدى
-
السلام عليكم
عدد الفصول فى كل صف يختلف من عام لآخر
مثلا الصف الأول فى العام الماضى كان 4 فصول
هذا العام صار 5 فصول
هل يمكن إدراج مربع نص للتقرير حسب الحاجة
بحيث لو كان العدد 4 فصول يتم إدراج 4 فصول
وإذا كان العدد 5 فصول يتم إدراج 5 فصول
طبعا كل هذا بالكود
ما اقتراحاتكم لتنفيذ ذلك
والتقرير هو عبارة عن ميزانية مدرسة فى أعوام مختلفة
-
لا نتعدى على معلمينا و أساتذتنا
لكنه تعدد الردود و تبادل الأفكار
- 1
- 1
-
هذا مختصر و سريع
أنشأت وظيفة لهذا الغرض
Function myfun(fs As Integer) Dim rs As Recordset Dim rrr As Integer rrr = 1 Dim i, ii, iii As Integer Dim r As Integer Dim rr As Integer rr = 1 Set rs = CurrentDb.OpenRecordset("SELECT Students.sery, Students.Group, Students.kolaf, Students.mazroof FROM Students where (group =" & fs & ") order by group") rs.MoveFirst Do Until rs.EOF rs.Edit rs!kolaf = rr rs.Update If rrr Mod 50 = 0 Then rr = rr + 1 End If rrr = rrr + 1 rs.MoveNext Loop rs.MoveFirst rr = 1 rrr = 1 rs.Close Set rs = Nothing End Function
و تستدعى هكذا
Private Sub test1_Click() Dim i As Integer For i = 1 To 11 myfun i Next i End Sub
و التنفيذ سريع حوالى 7 ثوان مع ملاحظة أن بالجدول أكثر من 15 ألف سجل
كيرة رقم الغلاف والمظروف2003.mdb
كيرة رقم الغلاف والمظروف.accdb
و هذا الكود للمظروف
Private Sub maz_Click() Dim rs As Recordset Dim rr As Integer Dim rrr As Integer rr = 1 rrr = 1 Set rs = CurrentDb.OpenRecordset("SELECT Students.sery, Students.Group, Students.kolaf, Students.mazroof FROM Students order by sery") Do Until rs.EOF rs.Edit rs!mazroof = rr rs.Update If rrr Mod 50 = 0 Then rr = rr + 1 End If rs.MoveNext rrr = rrr + 1 Loop rs.Close Set rs = Nothing End Sub
- 1
-
وفقكم الله
أسباب دفع العقوبة عشرة، وهي:
🔹ثلاثة من العبد:
- التوبة
- الاستغفار
- الحسنات الماحية
🔹ثلاثة من الناس:
- دعاءالمؤمنين
- إهداءالعمل الصالح له
- شفاعتهﷺ
🔹أربعة يبتديها الله:
- المصائب المكفرة في الدنيا
- الفتنة في البرزخ
- أهوال القيامة
- مغفرة الله بفضله- 1
-
بالتو فيق إن شاء الله
- 1
-
إذا كان عدد المحافظات كبيرا
فالأفضل إنشاء جدول للمحافظات
كود المحافظة
اسم المحافظة
ثم تستخدم هذا الكود لاستخراج رقم المحافظة من الرقم القومى ووضعه فى حقل رقم المحافظة
وكذا - بالمرة - استخراج يوم و شهر و سنة الميلاد و تحويلها إلى تاريخ ميلاد كامل ووضعه فى حقل تاريخ الميلاد
و هذا لكل السجلات
وبسرعة مذهلة
Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("tblmain") rs.MoveFirst Do Until rs.EOF rs.Edit rs!Mohafza = Nz(mID(rs![CHqawmy], 8, 2)) rs!CHBDay = Nz(mID(rs![CHqawmy], 6, 2)) rs![CHBmonth] = Nz(mID(rs![CHqawmy], 4, 2)) If Nz(mID(rs![CHqawmy], 1, 1)) = 2 Then rs![CHYear] = Val(mID(rs![CHqawmy], 2, 2)) + 1900 Else rs![CHYear] = Nz(mID(rs![CHqawmy], 2, 2)) + 2000 End If rs!Tmelad = DateSerial(rs!CHYear, rs!CHBmonth, rs!CHBDay) rs.Update rs.MoveNext Loop Me.Requery DoCmd.GoToRecord , , acFirst Set db = Nothing Set rs = Nothing
فالنتيجة هى وضع رقم المحافظة فى مربع تحرير و سرد يظهر الحقل الثانى و هو اسم المحافظة و ليس رقمها
- 2
-
مشكور أخى
بارك الله فيك
- 1
-
بارك الله فيكم
بارك الله فيكم
-
أيضا هناك بعض الجداول و النماذج لا تفتح
بارك الله فيكم
-
بارك الله فيكم
- 1
-
تمام
بارك الله فيكم
- 2
-
متابع
- 1
-
بارك الله فيكم
-
53 دقائق مضت, jjafferr said:
والآن اجيب على اسئلتك:
1. هناك نوعين من Recordset ، نوع يخص DAO وآخر يخص ADO ، ومع تشابههما ، إلا ان هناك الكثير من الاوامر التي تختلف بينهم ،
فإذا لم نخصص نوع الـ Recordset ، فالاكسس يستعمل مكتبة الاولى في القائمة ، مثلا ، في الصور التالية ، مكتبة ADO قبل مكتبة DAO ، فعند كتابة Recordset فقط ، فالاكسس يعتبرها تابعه لـ ADO:
في الاكسس 2003
.
وفي الاكسس 2010 فما فوق تم دمج مكتبة DAO في MS Office 14 Access Database engine object
.
2. هذا امر OpenRecordset ، فيه عدة اختيارات ، والمبرمج اختار هذه لأسبابه ، ويمكنك الاستغناء عن الجزئين الاخيرين منها ، حيث هذا يكفي:
(Set rst = db.OpenRecordset(strSQL
.
3. المؤشر في سجلات Recordset يكون كما في القائمة التالية:
BOF
Record1
Record2
..
..
EOF
حيث BOF = Begining Of File
EOF = End Of File
فإذا كنا على BOF او EOF فلا يوجد هناك سجلات ،
فالسطر معناه ، اننا مادمنا لسنا قبل بداية ولا بعد نهاية الـ Recordset ، فقم بالخطوة التالية ،
4. انتقل الى اول سجل تصادفه (رجاء متابعة النقطة التالية) ،
5. اذا اردنا ان نجعل الـ Recordset بالكامل في ذاكرة الكمبيوتر ، فعلينا ان نأخذ المؤشر الى آخر سجل ، ثم عندما نأخذ المؤشر الى اول سجل ، فيعرف البرنامج عدد سجلات هذا الـ Recordset ،
بينما في الرقم#4 اعلاه ، فنحن طلبنا منه البدء من اول سطر وبدون معرفة عدد السجلات ،
والنقطتين معناها سطر جديد في الكود ، يعني:
بدل كتابة For i = 1 To RC childrst.Delete childrst.MoveNext Next i يمكننا كتابة For i = 1 To RC: childrst.Delete : childrst.MoveNext : Next i
.
ولكننا اذا عملنا هذا الشيء لكل الكود ، فلن نعرف كيف نتصيد الخطأ ، ولا نستطيع استعمال Goto ،
فنحن نستعمله في نطاق نعمل انه لن تكون لدينا اخطاء فيه
جعفر
معلومات قيمة أستاذ جعفر
أظنها رد فى موضوع آخر
عموما شكرا لك
-
بارك الله فيك أستاذى الفاضل
-
نعم هو حقل متعدد
أنا فرغت فرع الداتا فقط
- 1
إضافة مربعات نصوص بالكود حسب الحاجة فى تقرير
في قسم الأكسيس Access
قام بنشر
أستاذ جعفر حفظه الله
الفكرة أننا جعلنا التقرير مبنيا على استعلام
لنستفيد بتسلسل و تجدد عدد الفصول فى كل مرة
و النتائج مرضية جدا و الحمد لله
نقطتان:
أولا لماذا يفضل عمل كل شىء فى الاستعلام
ثانيا : نود شرح طريقتكم فى التحليل كما تقول الصورة
و شكرا لحضرتكم