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

[تمت الاجابه]كتبت كود و لم يعمل، أين الخطاء

بدأه mahmoudbadwan في 18 أبريل 2010 · 7 رد · 930 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته يا صحبة الخير (بالمناسبة سمعت بالأمس في الراديو عن الصحبة السيئة و الصحبة الحسنة و عندها خطر هذا المنتدى في ذهني و أدركت وقتها أن بالفعل هناك من يستحق لقب الصديق و أن أحاديث رسولنا الشريف دائما حق، و بأن الخير في أمته إلى يوم الدين، و أنا أفخر بأن أكون بينكم)

هذه المقدمة من القلب، و بها أو بدونها أنا متأكد أنكم لن تقصروا في مساعدة أي عضو من أعضاء المنتدى، و إن لم تفعلوا فبالتأكيد هناك ما يشغلكم عن فعل الخير.

إلى صلب الموضوع:

لقد كتبت الكود، ليقوم عند الضغط على خانة الإختيار last_think بالترقيم في خانة last_think_no كل 50 سجل برقم التقرير الذي يتم طباعتهم فيه أي 1 ، 2 ، 3 ، ...الخ، إلى أن تنتهي السجلات، و الغرض من ذلك هو عند طلب طباعة التقرير رقم 1 مثلا تكون النتيجة واحدة دائما حتى لو تم إضافة سجلات جديدة أو حذفت أخرى قديمة.

Private Sub last_think_AfterUpdate()
On Error Resume Next

Dim MC As Integer
Dim CN As Integer
 MC = DMax("[last_think_No]![main_Table]")
 CN = Count(MC)
 If last_think.Value = True Then
 If CN <= 50 Then
 last_think_no = MC + 1
 Else
 last_think_no = 0
 End If
 ElseIf last_think.Value = False Then
 last_think_no = 0
 End If

End Sub

أرجو إدراك المشكلة دون طلب البرنامج لأنه كبير (على الأقل بالنسبة إلي أنا) مع العلم أن عملي قد توقف بسبب هذا الكود لذا أرجو السرعة في المساعدة قدر الإمكان

تم تعديل هذه المشاركة بواسطة mahmoudbadwan في 18 أبريل 2010 في 09:50

#2

اخى

حاول ان تعمل مثال مصغر

جدول + نموذج + تقرير لما تحاول عمله لانى لم استطع الوصول الى ما تريد

عموما

MC = DMax("[last_think_No]![main_Table]")

CN = Count(MC)

هذه الجزئية لم أفهمها

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

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#3

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

بارك الله فيك اخي محمود

في الحقيقة نحتاج الى مثال للتطبيق عليه ... ولكن لاحظت شئ ربما يكون فيه الحل

في هذا السطر بالكود

CN = Count(MC)

لنفرض ان اسم الحقل MC واسم الجدول TableName فسيكون هذا السطر كالتالي:

Dcount("MC","TableName")

ارجو ان يكون هو مطلوبك ... واذا ليس هو حاول ان ترفق مثال على الاقل ليتمكن الجميع من المساهمة في الحل

معذرة اخي الغالي mrnooo2000 رأيت ردك وانا احرر المشاركة ... بارك الله فيك وجعلك سباقاً للخير دائماً

بالتوفيق

#4

اخي محمود

هناك ملاحظة اخرى على الكود لم الاحظها من قبل وهي بخصوص استخدام الدالة DMax

DMax("FieldName","TableName")

وبإمكانك البحث عنها لمزيد من المعلومات

#5

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

جزيل الشكر للجميع و بالأخص الأفاضل السيد/mrnooo2000 و السيد/يوسف أحمد، على إفاداتهم و سرعة الإستجابة

صلب الموضوع:

لم تنفعل المحاولات السابقة، و عليه إليكم برنامج (إن صح تسميته ببرنامج) مصغر للإيضاح مرفق طيه، مع شرح وافي عن المطلوب و الكود:

لدينا جدول به بيانات أشخاص يفوق عدد سجلات الجدول الـ5000، بعد الانتهاء من معالجة بياناتهم نود تسليم ملفاتهم الى الارشيف على شكل دفعات، كل دفعة تحوي 50 ملف مع كشف (تقرير) باسمائهم.

لهذا أضفت على حقول الجدول خانة last_think وهي مربع إختيار لأتيح للمستخدم حرية اختيار الملفات التي يود تسليمها اولا و لكي تبقى له كمؤشر أن هذا الملف إنتهى منه.

و لضبط شرط الدفعات الأساسي بين لجنة التدقيق و الارشيف وهو تسليم 50 ملف في كل دفعة، انشأت خانة رقم last_think_no لتقوم بالحساب و العد تلقائيا عدد الملفات التي تم إضافتها بكل دفعة، أي أن عند استدعاء سجل فلان1 و وضع قيمة "نعم" في خانة last_think تلقائيا تتبدل قيمة خانة الرقم last_think_no من "0" إلى "1" و لحساب عدد اعلا قيمة في هذه الخانة الأخيرة إفترضنا المتغيير MC لإستخراج أعلى قيمة و المتغيير CN لإستخراج العدد الذي و صل إلية لأعلى قيمة و هي الـ"1" حتى إذا فاق عدد القيمة "1" الـ50 سجل يقوم النظام ببداء العد بالقيمة "2" و المراد من ذلك هو تثبيت رقم الكشف (التقرير) الذي انطبع به كل سجل في حال طلب نسخة ثانية للكشوفات التي تم على أساسها تسليم الملفات.

Private Sub last_think_AfterUpdate()

Dim MC As Integer
Dim CN As Integer

مرحلة تعريف البرنامج بالمتغييرات الإفتراضية MC و CN

MC = DMax("last_think_no","tblMain")

المتغيير MC الإفتراضي سوف يعطينا أعلى قيمة في خانة الـlast_think_no

CN = DCount (MC)

المتغيير CN الإفتراضي سوف يعطينا عدد أعلى قيمة في خانة الـlast_think_no

If last_think.Value = True Then

في حال تم الضغط على خانة نعم/لا و أخذت الشكر "صح" يتم الشرط التالي:

If CN <= 5 Then
last_think_no = MC + 1
Else
last_think_no = 0
End If

لو كان عداد كمية القيمة الأعلى لخانة last_think_no أصغر أو يساوي 5، فقيمة الخانة last_think_no سوف تساوي أعلى قيمة بها + "1"، و إن كان غير ذلك أي عدد القيمة العليا بها أكبر تكون قيمة خانة last_think_no في هذا السجل هي الـ"0"

ElseIf last_think.Value = False Then
last_think_no = 0
End If

End Sub

أما في حال تراجع المستخدم و حول قيمة الخانة last_think من "نعم" إلى "لا" أي رفع علامة "صح" من الخانة، فسوف تعود القيمة الإفتراضية للخانة last_think_no وهي الـ"0"

فما الخطأ في الكود، و هل هناك طريقة أخرى للحصول على النتيجة المرجوة؟

و شكرا لكم...

John Doe.rar

تم تعديل هذه المشاركة بواسطة mahmoudbadwan في 18 أبريل 2010 في 12:38

#6

أظن أني إكتشفت من إضافتي الأخيرة، أنه إن صلح الكود كتابياً فلن يصلح منطقيا أي أنه لن يصل بي إلى النتيجة المرجوة، أعتقد أن إيجاد الآلية المناسبة لتنفيذ أمر ما هي أصعب من كتابة الكود نفسة، و هنا يكمن الفن و المهارة ما بين مبرمج و أخر، فما الذى ترونة مناسبا في مثل هذه الحالة التي لازلت رغم فشلي في إيجاد آليتها المناسبة، أرى أنها بسيطة.

#7

تفضل أخي الكريم جرب هذه المحاولة

John Doe.rar

طبتم واهتديتم :)

===================================

إقرأ معي

رابط متجدد لكتاب أقرؤه فشاركني فيه

======

فضائح الرافضة ومخازيهم حين يكتب عنها أحد خصومهم فهذا شيء متوقع ،فإن كتب عنها أحدهم فهو شيء غير مألوف ، وإن كان الكاتب أحد مراجعهم وأخص خواصهم فهذا شيء متناهي الغرابة ، وإن علمت أن الكاتب قد قتل بعد نشر الكتاب فقد حان وقت قراءة الكتاب

الكتاب :

حسين الموسوي - لله تم للتاريخ ، كشف الأسرار وتبرئة الأئمة الأطهار

اضغط على الصورة لتحميل الكتاب

%E1%E1%E5%20%CB%E3%20%E1%E1%CA%C7%D1%ED%CE.jpg

-----------

كتب سابقة

سعد الدين الشاذلي - مذكرات حرب أكنتوبر

#8

ما شاء الله، عمل رائع و جميل و سريع، شكرا جزيلا لك أخي الكريم/ إيهاب عثمان، و أيضا لجميع الأخوة الذين إجتهدوا و هموا للمساعدة، جعله الله العزيز الجليل في ميزان حسناتكم.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…