الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عمل تسلسل في استعلام

بدأه عبدالله المجرب في 2 فبراير 2013 · 8 رد · 3,732 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم 

في اكثر من موضوع يتم طلب تسلسل في استعلام واغلب الردود تقرن الحل بربط الاستعلام بجدول

في المرفق قمت بالتعديل على دالة معرفة (منقولة) لعمل تسلسل في استعلام دون الحاجة الى ربطه بحقل في جدول

كما ان الدالة ستعمل مع اي استعلام 

الرجاء تجربة المرفق وابداء الرائ فهذه محاولات لتعلم الاكسس

للعلم فالتسلسل يعمل حتى مع المعايير (Qry بدون معييار و Qry1  بمعييار)

تسلسل استعلام.rar

7

حسابي على الفيسبوك

 

حسابي على التويتـــر

 

صفحتي الشخصية في منتدى أوفيسنا

 

اعذروني ففي الفترة القادمة سيكون تواجدي في المنتدى ضيق جداً وذلك للانشغال في دورة لمدة 6 شهور بعد الدوام

#2

اخي الفاضل : عبدالله

بارك الله بك وجزاك الله كل خير على هذا التعديل الأكثر من رائع وخاصة فيما يخص هذا السطر بالذات

 

 

MyName = CurrentObjectName
 
فهو فعلا لن يحتاج ان يتم وضع اسم الإستعلام في الدالة فليس محصورا الآن بإستعلام نعين كما في السابق
 
ولكن مع هذا كله يبقى استخدام حقل معين من الجدول مثل حقل ID او غيره من الحقول لأن الإستعلام اساسا مبني على الجدول 
 
ايضا تحتاج الى القيام بإضافة تصريح للمتغير RcNumq قبل استخدامه في الدالة بهذه الطريقة
 
Dim RcNumq
 
لأنك قمت بإستخدامه بهذه الطريقة
 
RcNumq = Null
 
 
بالتوفيق
2
#3

السلام عليكم ورحمة الله وبركاته

 

مشاركة أكثر من رائعة وأكيد +1

وبرأيي المتواضع لاداعي لاستخدام المتغير RcNumq 

عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ

(الحسن بن علي بن أبي طالب)

#4

هنيئا لك هذا  العمل عبدالله.. متمنيا لك  مزيدا من التوفيق والنجاح

 

+1 للمشاركة

 

Function RcNumq1(mID As Variant, fldName As String) As Variant
Dim RstClone As Recordset
Dim Fld As Field
Dim I As Long
Dim MyName As String
RcNumq = Null
MyName = CurrentObjectName
If IsNull(mID) Then Exit Function
Set RstClone = CurrentDb.QueryDefs(MyName).OpenRecordset
If RstClone.RecordCount = 0 Then Exit Function
Set Fld = RstClone.Fields(fldName)
With RstClone
.MoveFirst
Do Until .EOF
I = I + 1
If Fld = mID Then Exit Do
.MoveNext
Loop
End With
RstClone.Close
RcNumq1 = I
End Function

 

ملاحظات

- صرحت عن الوظيفة بمتغير (Variant) وأسندت إليها قيمة متغير (Long) يجب أن تساوي بينهما

- لماذا المتغير (Long) يكفي أن تستخدم (Integer) 

- إذا كان المتغير (RcNumq1) ليس له ارتباط.. فينبغي حذفه

- 

تحسينات

- يمكن استخدام الخصيصة (AbsolutePosition)  التابعة لـ (Recordset) للتعداد بدلا من المتغير (I)  مع إضافة +1 لأنها تبدأ العد من الصفر

- يمكن إضافة بداية العد ومقدار التغير ضمن محددات الوظيفة وجعلها اختيارية

- إضافة تعليقات بين سطور الشفرة توضح سريان عمل الشفرة لتصبح أكثر فائدة

1
#5

عمل ممتاز تشكر عليه اخي الكريم

 

ملاحظة بسيطة:

 

الكثير من الدوال, الكلاسز او المودلز التي يفوم بنشرها المطورين عادة تحتوي على حاجتين مهمتي

 

1- Comments: وهي الملاحظات التي توضح وظيفة الكود, مخرجاته , طريقة عمله الخ

2- مزاياه و عيوبه

 

لكن في الاخر هذا لاينقص هذا العمل الجبار

 

تحياتي +1

تم تعديل هذه المشاركة بواسطة Creative Man في 3 فبراير 2013 في 19:31

#6

السلام عليكمالاستاذة الفاضلة زهرةيكفيني ردك على المشاركة واشكر لك تشجيعي وهذه بداياتي مع الاكسس فخبرتي كلها اكسل

الاخوة الكرام اياد بيك الاستاذ القحمCreative Manاشكركم على التقييم بالنسبة للدالة فهي منقولة وتعديلي تم على مرونة الاستعلام وتطبيقها على الملف

حسابي على الفيسبوك

 

حسابي على التويتـــر

 

صفحتي الشخصية في منتدى أوفيسنا

 

اعذروني ففي الفترة القادمة سيكون تواجدي في المنتدى ضيق جداً وذلك للانشغال في دورة لمدة 6 شهور بعد الدوام

#7

هذه المشكلة واجهتني الاسبوع الماضي وبحثت عن حل لها بالمنتدى او في المنتديات الاجنبية لكن للاسف لم اصل لحل وخاصة في النموذج ....

ولكن بقليل من التفكير وما لدي من قدر متواضع من المعلومات حول الاكسيس وبالتفكير المنطقي ( وصلت لحل مقنع على الاقل بالنسبة لي ) وذلك بعد ان سألت  نفسي بعض الاسئلة !!! والتي اجبت لنفسي عليها .

س : ما فائدة الترقيم التلقائي بالنسبة لي ؟؟؟

ج : هو مفيد لي في حالة استخراج حساب عميل او مورد او كشف حساب لاي حساب لدي من خلال بعض الاستعلامات 

ماهي الخطوة التالية بعد عمل الاستعلام ؟؟؟

هو عمل تقرير بما وصلت له من معلومات من خلال الاستعلام اذن فانا بحاجه للترقيم التلقائي في التقرير وليس في الاستعلام 

واخذت فكرة الرصيد المتراكم او المرحل وطبقتها على حقل الرقم التلقائي في التقرير وافترضت الاتي 

حقل الترقيم : م ( مسلسل ) = 1 في حقل منضم 

في خصائص الحقل قمت باختيار runing sum >> over all 

وصلت للنتيجة ان كل سجل سياخذ رقم عبارة عن قيمة الحقل = ن +1 (رقم السجل السابق له +1 )

اعتذر للاطالة وشكراً لاستاذ عبد الله المجرب ....ولكل من تعلمت منهم الاكسيس ...

تم تعديل هذه المشاركة بواسطة alaaaboulela في 11 ديسمبر 2013 في 07:29

"اللهم إني أسألك عملاً خالصاً لوجهك الكريم وأعوذ بك من النفاق والرياء "


 


http://fmalaa.wordpress.com/


 


قسم البرامج والتدريب ونظم المعلومات المحاسبية والكورسات المجانية 


 

#9

شكرا أستاذ عبد الله

جزاك الله خيرا+

مواضيع مشابهة