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

أسالوا اهل العلم ان كنتك لا تعلمون

بدأه hagr في 25 مارس 2009 · 8 رد · 721 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدى جدولين واحد لقيود اليومية والثانى لميزان مراجعه لجمع حسابات مدينى ودائنى الموردين او العملاء

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

انشأت مثال بسيط حتى لا اثقل على كاهلكم

جهزت كل شىء فى هذا المثال مافى غير الا كتابه الكود الذى من خلال سوف اتعلم منه كفيه ترصيد ميزان المراجعه فى برنامجى لان احد زملائى المحاسبين قال لى لا تكتفى بالقيود وانشاء كشف حساب ليظهر مدينى او دائنى أى حساب

اتمنى من الزملاء الاعضاء ان يقفوا بجانبى كما عودنا دائما

مثال

جمع حسابات الجاني المدين مثلا للمورد = 1000

جمع حسابات الجاني الدائن مثلا للمورد = 3000

مدين = 0

دائن = 2000

______________.rar

#2

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

تحياتي

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#3

الاخ الكريم عضو فعال

بالنسبه للجدول sup_account الخاص بتجميع اصحاب الحسابات المختلفه الذى سوف يتم الترصيد فيه

code = يتم اضافه كود المورين والعملاء والبنك والمبيعات والمشتريات فرضا الموردين = 1 -------- كود الحساب

code_acc = يتم اضافه كود المورد أو العميل فرضا اننا اسم مورد = 1 -------- كود صاحب الحساب

بالنسبه للجدول T_bal الخاص بالقيود اليومية

code_m = يتم اضافه كود المورين والعملاء والبنك والمبيعات والمشتريات فرضا الموردين = 1 -------- كود الحساب

NameNum = يتم اضافه كود المورد أو العميل فرضا اننا اسم مورد = 1 -------- كود صاحب الحساب

العلاقه بين حقول الجدولين التى من وجه نظرى البسيطه التى حاولت جاهدا ان انفذ الترصيد حتى يتم حساب اجمالى مدينى وحساب دائنى اصحاب الحسابات فى جدول sup_account

#4

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

اخي الكريم مازال المطلوب غير واضح تماما ولماذا لم تسمي المفاتيح الرابطه بين الجدولين بنفس الاسم حتي يتضح اكثر

هذا اولا

وثانيا : حسب ما فهمت انت تريد تعمل ميزانية مراجعة طيب ممكن تستخرجها كبيانات فقط وذلك باستعلام ما الحاجة لحفظها في جدول ثاني

اخي وضح لي الفكرة اكثر وإن شاء الله ساساعدك

#5

اخى ذاكر

اخى عضو شرف

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

اللى بدى اياه وحاولت كثير لكنى فشلت هو تجميع القيود اليوميه المدينه والدائنه لاصحاب الحسابات المبينية فى جدول sub_account

عندما يتوافق العلاقه المرتبطه فى الجدولين من خلال الحقلين code and code_acc

وقد وضعت المثال بعد تعديل اسماء الحقول المرتبطه

______________.rar

#6

تفضل مثالك بعد التعديل

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

تحياتي

______________.rar

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#7

شكرا استاذى العزيز Omani

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

إن شاء الله ان يعوضك عن خدماتك خير جزاء فى الحياه الدنيا والاخرة

لى طلب اتمنى ان تضيفه لى الا وهو شرح كود ترصيد الحسابات حتى اقدر استخدمه فى مجالات اخرى

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

سوف نفترض ان بدايه فترة الترصيد = text 1 نهاية فترة الترصيد = text2 على سطح الفورم

اتمنى ان يتم تحديث الترصيد حسب الفترة

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

لثانى مره شكر اليك كتير

#8

هذا الكود المستخدم في عملية الترصيد

' انشاء متغير لفتح الجدولين . جدول الاب وجدول الابن
 Dim rsParnt As New ADODB.Recordset

 Dim rsChild As New ADODB.Recordset
'التأكد من ان الريكورد ست غير مستخدم . أي غير مفتوح ... واذا كان مفتوح يتم اغلاقه 
 If rsParnt.State = 1 Then rsParnt.Close
'فتح الجدول بأكمله بدون اي شروط ... اسم الجدول هو
'  sub_account 

 rsParnt.Open " select * from sub_account ", Adodc1.ConnectionString, adOpenStatic, adLockOptimistic

'الانتقال الى بداية الجدول لاول سجل  
If rsParnt.BOF = False Then rsParnt.MoveFirst
'عمل لووب لجميع سجلات جدول الترصيد من البداية الى النهاية 
  Do Until rsParnt.EOF
  ' عند الدخول الى اول سجل في جدول الترصيد نقوم بفتح جدول الحركات اليومية بشرط ان تكون البيانات المطلوبة هي بمايتساوى مع السجل الحالي من جدول الترصيد
	  If rsChild.State = 1 Then rsChild.Close
	  DoEvents
'هنا فتح جدول الحركات واجراء الجمع مباشرة على الحقلين المخصصين بشرط تساوي حقل الكود ودود الحساب	  
	  rsChild.Open "select sum(NameDB)as DB ,sum(NameCR) as Cr from T_bal where T_bal.code=" & rsParnt.Fields("code") & " and T_bal.code_acc=" & rsParnt.Fields("code_acc"), Adodc1.ConnectionString, adOpenStatic, adLockOptimistic
' كتابة نتيجة الجمع في الخانة المخصصة في جدول الترصيد
	  rsParnt.Fields("Sum_DB") = rsChild.Fields("DB")

	  rsParnt.Fields("Sum_CR") = rsChild.Fields("Cr")
'اجراء عملية الطرح حسب الارصدة  اذا كان الدائن اكبر من المدين	  
		 If rsChild.Fields("Cr").Value > rsChild.Fields("DB").Value Then
		   rsParnt.Fields("CR") = rsChild.Fields("Cr").Value - rsChild.Fields("DB").Value
		   rsParnt.Fields("DB") = 0
'اما في حالة المدين اكبر من الدائن
		 ElseIf rsChild.Fields("Cr").Value < rsChild.Fields("DB").Value Then
			   rsParnt.Fields("DB") = rsChild.Fields("DB").Value - rsChild.Fields("Cr").Value
		   rsParnt.Fields("CR") = 0
		 Else
'هنا في حالة التساوي والنتيجة ستكون حتما صفر
			rsParnt.Fields("DB") = rsChild.Fields("DB").Value - rsChild.Fields("Cr").Value
			rsParnt.Fields("CR") = rsChild.Fields("DB").Value - rsChild.Fields("Cr").Value
		End If
'حفظ البيانات التي تم ادخالها على جدول الارصده 
	  rsParnt.Update
'الانتقال الى الحساب التالي في جدول الترصيد
	  rsParnt.MoveNext
	  DoEvents
  Loop

'بعد انتهاء العملية 
  MsgBox " تم الترصيد بنجاح"
  'اغلاق الجداول
 If rsParnt.State = 1 Then rsParnt.Close
 If rsChild.State = 1 Then rsChild.Close
 '
 Set rsParnt = Nothing
 Set rsChild = Nothing
 'اظهار النتئج على الجريد
 Adodc2.Refresh

اما بالنسبة للترصيد حسب فترة زمينه معينه فاستخدمي نفس الكود السابق

فقط التغيير عند استدعاء البيانات من جدول الحركات اليومي حسب الجملة التالية .. اضيفي على الشرط ان يكون حسب تاريخ معين انظري المثال المرفق

تحياتي

______________.rar

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#9

انا اسف النت كان مفصول

عن جد انت استاذ

جعل الله مساعدنك للاخرين فى ميزان حسانتك

وسوف يجازيك الله خيرا

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

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

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

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

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