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

كيف يعرف البرنامج رصيد الصندوق في اليوم السابق

مغلق
بدأه سعيد في 15 أغسطس 2001 · 17 رد · 1,674 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أيها الإخوة السلام عليكم

عندي نموذج بمثابة كشف حساب للصندوق به نموذجين فرعيين أحدهما يمثل سندات القبض والآخر يمثل سندات الصرف وفي النوذج الرئيسي الحقول التالية

مجموع سندات القبض

مجموع سندات الصرف

رصيد الصندوق لليوم السابق

الرصيد اليوم

الآن أريد منكم المساعدة بطريقة تجعل الحقل الخاص بالرصيد السابق يقرأ رصيد الصندوق في اليوم السابق بشكل فوري بمجرد فتح كشف الحركة لليوم .

أرجوا أن يكون السؤال واضحا

وأشكركم

#2

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

اتمنا ان يكون هذا المثال هو الذي تريده المثال يعمل على الاكسيس 2000

http://mypage.ayna.com/mesfer823/sum2002.zip

وتقبل تحياتي / مسافر

#3

استخدم الدالة التالية :

Function calctansvalue()
    Dim rs As DAO.Recordset
    Dim strSQL As String
    Dim vtranseValue As Integer
    'نبني جملة استعلام في البداية بناءا على التاريخ الموجود في النموذج

    strSQL = "select * from tblTranseAction " & _
      " WHERE transDate= " & "#" & Me.TDate & "#" & _
      "AND TranseType = 'سند قبض'"

    'فتح ريكوردست لقطه
    Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)

    'المتغير التالي يمثل مخزن لتجميع قيم أسناد القبض
    'التي  تطابق التاريخ المكتوب في النموذج

    vtranseValue = 0
    'ننتقل الى بداية السجلات
    rs.MoveLast
    rs.MoveFirst

    'نحسب قيم الأسناد
    While Not rs.EOF
       vtranseValue = vtranseValue + rs!transeValue
        rs.MoveNext

     Wend

    'بقي أن نكتب المجموع في حقل في النموذج
    Me.TXTtranseValue = vtranseValue

Exit Sub

كرر العملية لأسناد الصرف

#4

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

الأخ المسافر الرابط الذي كتبته ما يشتغل لا أعرف إيش السبب أرجو منك مراجعته

الأخ أبو لمى

أين أكتب الدالة هل في الديول العام أم في النوذج وكيف أربطها بالنوذج أرجو منك التوضيح أكثر أو إرسال مثال على الموضوع لإنه أفضل وسيلة لمساعدة أمثالي

وشكرا للجميع

#5

للرفع

#6

أيها الإخوة

أرجوكم لا تبخلو علي بالإجابة وإذاكان الأمر مستحيل أخبروني حتى لا استمر في الإلحاح عليكم

وشكر

#7

لنبدأ من البداية :

أين تخزن رصيد الصندوق ؟

ماذا تقصد بـ بمجرد فتح كشف الحركة لليوم ؟

ماهو كشف الحركة تقرير أم نموذج وهل هو نفس النموذج الذي يوجد فيه النموذجين الفرعيين وهل هو مبني على جدول أم ماذا ؟

وسؤال أخير أين تخزن رصيد اليوم ؟

ارجو التفصيل حتى إذا كنت أعرف الجواب أخبرتك وإلا قلت لك لا أعرف ولا أتعبك معي .

ولك تحياتي

#8

الأخ أبو حمود

عندي ثلاث جدوال

الأول لسندات القبض يحتوي على الحقول التالية

الرقم التاريخ المبلغ مجموع السندات القبض

الثاني لسندات الصرف يضم الحقول التالية

التاريخ رقم السند المبلغ مجموع سندات الصرف

الثالث و هو الجدل الرئيسي يضم الحقول التاليه

التاريخ مجموع سندات القبض مجموع سندات الصرف رصيد الصندوق لليوم السابق رصيد الصندوق

اليوم

الجدوال مرتبطة بعلاقة عند حقل التاريخ حيث أن الدول الرئيسي هو المفهرس

قمت ببناء نموذج على الجول الرئيسي ويضم نموذجين فرعيين أحدهما لسندات الصرف

والآخر لسندات القبض حيث تتجمع سندات القبض في حقل مجموع سندات القبض بالنموذج الرئيسي

وتتجمع سندات الصرف في حقل مجموع سندات الصرف

الآن في اليوم الاول يكون رصيد الصندوق هو الفرق بين الحقلين السابقين

أما في اليوم الثاني فلنفترض أنه هناك رصيد اليوم السابق أريد أن يظهر في حقل

الرصيد لليوم السابق في النموذج الرئيسي بمجر إدخال حقل التاريخ لليوم ورصيد اليوم مخزن في حقل بالنموذج ويظهر أيضا في الجدول المصدر .

أرجو أن يكون هذا الشرح موضحا للمسالة

وأنا على أستعداد لأن أرسل هذا المثال لأي مشارك يرغب في الأطلاع عليه وحجمه صغير جدا

وشكرا

أخوكم

سعيد

#9

"أما في اليوم الثاني فلنفترض أنه هناك رصيد اليوم السابق أريد أن يظهر في حقل

الرصيد لليوم السابق في النموذج الرئيسي بمجر إدخال حقل التاريخ لليوم ورصيد اليوم مخزن في حقل بالنموذج ويظهر أيضا في الجدول المصدر ."

هذه الجملة لم أفهمها ليتك ترسل المثال على بريدي:

H_H123@Hotmail.com

ولك تحياتي

#10

If Me![رقم الكشف] > 1 Then

Dim db As Database

Dim rst As Recordset

Set db = Application.CurrentDb

Set rst = db.OpenRecordset("SELECT (-1*[مجموع المصروفات])+[مجموع المقبوضات]+[الرصيد السابق] AS الرصيد, Max([كشف الحركة].[رقم الكشف]) AS [Maxمنرقم الكشف] " _

& " FROM [كشف الحركة] Group BY(-1 * [مجموع المصروفات]) + [مجموع المقبوضات] + [الرصيد السابق] " _

& " HAVING (((Max([كشف الحركة].[رقم الكشف]))=(" & [Forms]![كشف الحركة]![رقم الكشف] & "-1)));")

Me![RR] = rst![الرصيد]

db.Close

End If

Me![مجموع المقبوضات] = [AS]

Me![مجموع المصروفات] = [QW]

ضع الكود السابق في زر تحديث البيانات .

جربه وانا بانتظار النتيجة .

ملاحظة كانت في بالي اهتم بأسماء الكائنات فنص فهم البرنامج على اختيار الأسماء المناسبة للوظائف ابتعد عن الرموز والحروف المفردة .

ولك تحياتي

#11

الأخ أبو حمود

السلام عليكم

أشكرك على مساعدتك لي فقد حصل الغرض ونجح الكود الذي أرسلته

فأسأل الله أن يجزيك عني خيرا

واشكرك مرة أخرى

أخوك محمد احميتي

#12

الأخ ابو حمود

لقد اشتغل معي الكود أول ما حطيت ولكن بعد ذلك بساعات جيت ابقي أنشغل صار يعطيني الرسالى التالية "القيمة التي أدخلتها غير صالحة لهذا الحقل ربما ادخلت قيمة أكبر من حجم الحقل أو ادخلت قيمة نصية في حقل رقمي "

ويجعل لي خط اصفر على العبارة Me![RR] = rst![الرصيد

علما بأن خصائص الحقل ما فيها أي مشكلة فالحقل حقل رقمي وحجمه عدد صحيح طويل

وأشكركم

أخوك محمد

#13

اكتب قبل هذه العبارة

Msgbox typename(rst![الرصيد])

Msgbox me![الرصيد]

وأخبرني عن النتيجة

وهل كانت الحقول مجموع المقبوضات ومجموع المصروفات تحوي أرقام عند النقر على زر تحديث البيانات .

ولك تحياتي

#14

الأخ أبو حمود

بعد التعديل صار يعطيني الرسالة التالية :

no current Record

ويجعل خط اصفر على السطر MsgBox TypeName(rst![الرصيد])

مع أن حقلي مجموع المقبوضات والمصروفات معبأ بمبالغ

بعدين ياماذا تقصد بالحقل [الرصيد] حيث أن حقل الرصيد السابق عندي أسمهRR

وشكرا

#15

سأوافك بالجواب قريباً إن شاء الله فأرجو منك الانتظار .

ولك تحياتي

#16

الأخ سعيد

لقد ارسلت لك الملف بعد التعديل على بريدك .

ارجو أبداء ملاحظاتك وأي تعديل مطلوب إذا رغبت .

واعتذر عن التأخر لحدوث مشكلة في الأكسس لم تحل إلا قريبا بسبب التاريخ .

ولك تحياتي

#17

الأخ أبو حمود

الظاهر انه لم تصل رسالتك

فارجوك أرسلها مرة أخرى

وشكرا

#18

اكتب بريدك أو راسلني على بريد :

H_H123@Hotmail.com

ولك تحياتي

هذا الموضوع مغلق.

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

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

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

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

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