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

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

بدأه hagr في 11 أكتوبر 2010 · 12 رد · 1,094 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

موجود مع مداخلتى برنامج صغير مش فاضل الا كتابه الكود بداخله

الكود اللى محتاجه كالتالى

لديى جدولين

الجدول الاول هو المشروعات توجد بها كود المشروع واسمه ووصفه ومميز لو يساوى 0 اذا المشروع قائم اما لو يساوى 1 فالمشروع تم الانتهاء منه

الجدول الثانى هو جدول مراكز التكلفة توجد به

الخقل الاول = كود المركز الرئيسى = 1 وهذا سوف يتم الاعتماد عليه قثط

الحقل الثانى = كود المركز الفرعى

الحقل الثالث = مدين

الحقل الرابع = دائن

اللى محتاجه هو تحميل مصاريف الادارات الخدمية التى تساوى رقم 1 ومايتبعه على المشروعات القائمة فقط

اتمنى ان لا اكون ثقيل على حضراتكم

الملف المرسل مستوفى كل شىء ماعدا الكود

اتمنى ان لا تنسونا بكتابه الكود واكن شاكرا لو تم شرحه

loding.rar

#2

اللهم اعن اعضاء المنتدى الكرام على حل المشكلة

#3

الرجاء توضيح المطلوب لنتمكن من المساعدة

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#4
محمد مصطفي غريب كتب:

الرجاء توضيح المطلوب لنتمكن من المساعدة

استاذى الفاضل

طلبى ببساطة شديدة هو

بالنسبه لجدول مراكز التكلفة يتكون من نوعين

الاول يرمز له بكود 1 وتوجد به المراكز الخدمية التى محمل عليها مبالغ التى اريد تحميل تلك المبالغ على المشاريع القائمة والتى يرمز لها بالجدول الثانى جدول المشاريع والمشاريع القائمه يرمز لها بكود ind = 0

اما الجدول الثانى فهو جدول المشاريع يوجد به اكواد واسماء وتفاصيل المشاريع توجد مشاريع قائمة ويرمز لها بكود ind = 0 اما المشاريع المنتهية والتى لا يجب تحميل اى مصاريف خدمية عليها ويرمز لها بكود ind=1

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

مفروض اعرف عدد المشاريع القائمة من جدول project المتمثل بحق ind =0 نتيجته مشروعين فقط هنرمز له بحرف A

بعد ذالك اخذ معى جدول مراكز التكلفة المختلفة costing_sub التى يساوى حقل CODE = 1 فقط

بعد ذلك ناخذ اول سجل اذا وجد فيه مبالغ نقسمها / A هيعطينا رقم هنرمز له بحرف B

بعد ذلك نستخدم قاعدة If

لو كود المشروع قائم بجدول المشاريع ind = 0

حدث البيانات التالية بجدول costing_sub

Sum_DB=Sum_DB+ الرمز b

ثم يتم تصفير القيمة بصفر بالنسبه للمركز الخدمى الذى تساوى قيمه كوده 1

ثم السجل التالى

حتى يتم من تحميل جميع المراكز الخدمية على المشروعات القائمة

انا حاسس انى وسعت الموضوع اكثر

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

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

وبما ان هذه المصاريف عامه لا يمكن تحميلها على مشروعه بعينه

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

هو ده ببساطه اللى محتاجه ودايخ فى عمل الكود له

وشكرا للاخ الفاضل الذى رد على مداخلتى

#5

حسناً , الان فهمت المطلوب قليلاً لكن عندي استفسارين :

1-

اقتباس
اريد تحميل تلك المبالغ على المشاريع القائمة

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

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

اقتباس
حدث البيانات التالية بجدول costing_sub

Sum_DB=Sum_DB+ الرمز b

2-

اقتباس
ثم يتم تصفير القيمة بصفر بالنسبه للمركز الخدمى الذى تساوى قيمه كوده 1

اي حقل بالضبط تريد تصفيره ؟؟

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#6
محمد مصطفي غريب كتب:

حسناً , الان فهمت المطلوب قليلاً لكن عندي استفسارين :

1-

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

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

2-

اي حقل بالضبط تريد تصفيره ؟؟

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

المبالغ التى توجد فى مركز التكلفه التى يكون حقل code = 1 اى المراكز الخدمية مثل ادارة مالية وعمليات وخدمية وحركة عامه اذا وجد فيها مبالغ نأخذها معنا ونضعها مثلا فى متغير A

ثم ندخل على جدول المشروعات ونعطيه استعلام باحضار المشروعات القائمة ومازالت ind=0 اى ان المشروع لم ينتهى بعد كى يعطينا عددهم ونضعه فى متغير B

ثم نعمل كود لاستخلاص القيمة التى نريد اضافتها على جدول المشروعات القائمه ونضعها فى متغير C = A/B

المشروع القائمه له كود فى جدول المشروعات نقارنه بكوده فى جدول مراكز التكلفه تمام

يوجد به مبالغ وكودة هو Sum_DB = Sum_Db + C

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

وهذه صورة توضيحية اكثر

post-37583-009775400 1286916738_thumb.jp

المرفقات
pic1.jpg
#7

حسناً , قمت بتعديل المثال بما فهمته من المطلوب , إن لم يتم تحقيق المطلوب ارجوا توضيح الفكرة بمثال

بالتوفيق ,,,

loding2.rar

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#8
محمد مصطفي غريب كتب:

حسناً , قمت بتعديل المثال بما فهمته من المطلوب , إن لم يتم تحقيق المطلوب ارجوا توضيح الفكرة بمثال

بالتوفيق ,,,

اولا اشكر حضرتك شكرا جزيلا على مجهودك الرائع الذى ادى لتأدية الوظيفه المطلوبه فى الكود

ثانيا ارجو ان يتسع صدرك لى

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

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

شكرا اخى العزيز محمد على مساعدتى

#9

بالطبع اخي الكريم , في قواعد البيانات يمكننا تنفيذ 4 انواع اوامر على قاعدة البيانات , وهي SELECT , INSERT , UPDATE , DELETE

1-

SELECT : يقوم هذا الامر بعرض الحقول من جدول او اكثر بشرط او اكثر كما في المثال

Select * From MyTable Where MyField='FieldValue'

فهنا قمنا بعرض كل الحقول ( ويرمز لها بـ * ) من جدول MyTable بشرط ان يحتوي الحقل MyField على القيمة النصية FieldValue

2-

INSERT : ويقوم هذا الامر بإدخال سجل جديد الى الجدول ( كأمر AddNew في الـ Adodc )

3-

UPDATE : وهذا هو الامر الذي استخدمته هنا ويقوم هذا الامر بتعديل قيمة حقل او اكثر في الجدول ( كأمر Update في الـ Adodc ) لكن ميزة هذا الامر انه يمكن ان يقوم بتعديل قيمة حقل معين في اكثر من سجل او في كل سجلات الجدول في لحظة واحدة , ويستخد كالآتي :

Update MyTable Set Field1='Ahmed' , Field2='Mohamed' Where Age>12

وهنا يقوم الامر بتعديل قيمة الحقل الاول الى "Ahmed" وقيمة الحقل الثاني الى "Mohamed" في السجلات التي يكون حقل العمر فيه اكبر من 12

4-

DELETE : يقوم هذا الامر بحذف سجل او اكثر بشرط معين ويستخد كالآتي :

Delete From MyTable Where Code>10

ويقوم هذا الامر بحذف كل السجلات التي يكون قيمة حقل الكود بها اكبر من 10

ويمكن إستخدام الامر الاول SELECT مع الـ Adodc مباشرة بتغيير الـ CommandType الى adCmdUnknown ثم وضع الإستعلام في خاصية الـ RecordSource

لكن الاوامر الاخرى يفضل تعريف Connection خاص بها لتنفيذها كما في البرنامج فقد قمت بإنشاء امر Sub يقوم بتنفيز الامر الذي تقوم بتمريره له , وتجد في الاداه SQL_T الامر الذي يقوم يتوزيع المبالغ على المشاريع وهو كالآتي :

Update Costing_Sub 

Set Sum_DB=Sum_DB+ [Final_Amount]

Where Code=2 
and Code_acc in (Select Code_P From Project Where ind=0)

ونقوم عن بإستخدام الامر Replace بإستبدال المصطلح [Final_Amount] من الامر السابق بقيمة المستحق لكل مشروع من مراكز التكلفة والذي تم حسابه في الـ Adodc3 حيث تجد انه تم إستخدام الإستعلام التالي :

Select Top 1 ((Select Sum(Sum_DB) From Costing_Sub Where Code=1)
/ (Select Count(*) From Project Where ind=0)) 
From Project

فهنا نقوم بحساب مجموع مبالغ مراكز التكلفة عندما يكون حقل الكود يساوي 1 ( اي انها مراكز تكلفه عامة كما قلت ) وهذا الجزء هو المختص بهذا الحساب

(Select Sum(Sum_DB) From Costing_Sub Where Code=1)

فهنا الدالة Sum تعني مجموع الحقل Sum_DB في الجدول لكل السجلات التي يكون حقل الكود لها = 1

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

(Select Count(*) From Project Where ind=0)

وهنا الدالة Count تعني عدد السجلات والتي يتوافق معه االشرط Where ind=0 اي ان المشروع قائم

,,,,,,,,,

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

ارجوا ان اكون قد يسرت الموضوع قليلاً ,,, وبالتاوفيق ,,,

تم تعديل هذه المشاركة بواسطة محمد مصطفي غريب في 13 أكتوبر 2010 في 14:59

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#10

شكرا اخى العزيز على توضيحك الرائع

اللهم اجعل ثواب خدماته لاخوته الاعضاء فى ميزان حسناته

ان الله فى عون العبد مادام العبد فى عون اخية

#11
محمد مصطفي غريب كتب:

بالطبع اخي الكريم , في قواعد البيانات يمكننا تنفيذ 4 انواع اوامر على قاعدة البيانات , وهي SELECT , INSERT , UPDATE , DELETE

1-

SELECT : يقوم هذا الامر بعرض الحقول من جدول او اكثر بشرط او اكثر كما في المثال

Select * From MyTable Where MyField='FieldValue'

فهنا قمنا بعرض كل الحقول ( ويرمز لها بـ * ) من جدول MyTable بشرط ان يحتوي الحقل MyField على القيمة النصية FieldValue

2-

INSERT : ويقوم هذا الامر بإدخال سجل جديد الى الجدول ( كأمر AddNew في الـ Adodc )

3-

UPDATE : وهذا هو الامر الذي استخدمته هنا ويقوم هذا الامر بتعديل قيمة حقل او اكثر في الجدول ( كأمر Update في الـ Adodc ) لكن ميزة هذا الامر انه يمكن ان يقوم بتعديل قيمة حقل معين في اكثر من سجل او في كل سجلات الجدول في لحظة واحدة , ويستخد كالآتي :

Update MyTable Set Field1='Ahmed' , Field2='Mohamed' Where Age>12

وهنا يقوم الامر بتعديل قيمة الحقل الاول الى "Ahmed" وقيمة الحقل الثاني الى "Mohamed" في السجلات التي يكون حقل العمر فيه اكبر من 12

4-

DELETE : يقوم هذا الامر بحذف سجل او اكثر بشرط معين ويستخد كالآتي :

Delete From MyTable Where Code>10

ويقوم هذا الامر بحذف كل السجلات التي يكون قيمة حقل الكود بها اكبر من 10

ويمكن إستخدام الامر الاول SELECT مع الـ Adodc مباشرة بتغيير الـ CommandType الى adCmdUnknown ثم وضع الإستعلام في خاصية الـ RecordSource

لكن الاوامر الاخرى يفضل تعريف Connection خاص بها لتنفيذها كما في البرنامج فقد قمت بإنشاء امر Sub يقوم بتنفيز الامر الذي تقوم بتمريره له , وتجد في الاداه SQL_T الامر الذي يقوم يتوزيع المبالغ على المشاريع وهو كالآتي :

Update Costing_Sub 

Set Sum_DB=Sum_DB+ [Final_Amount]

Where Code=2 
and Code_acc in (Select Code_P From Project Where ind=0)

ونقوم عن بإستخدام الامر Replace بإستبدال المصطلح [Final_Amount] من الامر السابق بقيمة المستحق لكل مشروع من مراكز التكلفة والذي تم حسابه في الـ Adodc3 حيث تجد انه تم إستخدام الإستعلام التالي :

Select Top 1 ((Select Sum(Sum_DB) From Costing_Sub Where Code=1)
/ (Select Count(*) From Project Where ind=0)) 
From Project

فهنا نقوم بحساب مجموع مبالغ مراكز التكلفة عندما يكون حقل الكود يساوي 1 ( اي انها مراكز تكلفه عامة كما قلت ) وهذا الجزء هو المختص بهذا الحساب

(Select Sum(Sum_DB) From Costing_Sub Where Code=1)

فهنا الدالة Sum تعني مجموع الحقل Sum_DB في الجدول لكل السجلات التي يكون حقل الكود لها = 1

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

(Select Count(*) From Project Where ind=0)

وهنا الدالة Count تعني عدد السجلات والتي يتوافق معه االشرط Where ind=0 اي ان المشروع قائم

,,,,,,,,,

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

ارجوا ان اكون قد يسرت الموضوع قليلاً ,,, وبالتاوفيق ,,,

شكرا اخى العزيز على توضيحك الرائع

اللهم اجعل ثواب خدماته لاخوته الاعضاء فى ميزان حسناته

ان الله فى عون العبد مادام العبد فى عون اخية

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

loding03.rar

#12

رائع جداً اخي الكريم , اعجبتني طريقة إسخدامك للكود وإن دلت فإنما تدل على إستيعابك الجيد للكود وقد فعلت عكس ما يفعل الكثير من الاعضاء عندما يأخذون الكود Copy و Paste من دون التأمل في الكود ومحاولة فهمه وإضافة لمساتهم الخاصة اليه ما يجعلني اشعر بأن عملى ضاع هباءاً منثورا حيث لم يستفيد منه العضو بل حل به مشكلة بعينها فقط .

وانا لي تعليق واحد على كودك ارجوا ان يفيدك حيث سيختصر الكود والوقت ايضاً ,

استخدمت في كودك حلقة تكرارية للبحث عن المشاريع القائمة وتحميل مبلغ مراكز التكلفة اليها كما في الكود التالي :

اقتباس
    Str = "select * from project"
    RSt.Open Str, condb, adOpenDynamic, adLockOptimistic

While Not RSt.EOF

    If RSt.Fields("ind") = 0 Then

        str1 = "update costing_sub set Sum_DB = Sum_DB + " & Txt03 & " where code_acc = " & RSt.Fields("code_p") & ""
        condb.Execute str1

    End If

    RSt.MoveNext

str2 = "update costing_sub set Sum_DB = 0 where code = 1"
condb.Execute str2

Adodc1.Refresh

Wend

في جمله الإستعلام يمكننا وضع شرط على حقل معين كالتالي :

Select * From MyTable Where MyField='Ahmed'

وكما في الفيجوال بيسك يمكننا إستخدام المعاملات المنطقية مثل ( And , Or ) مع الجمل الشرطية فأيضاً يمكننا إستخدام هذه المعاملات في شرط جملة الإستعلام ,

فمثلاً إذا كنا نريد تنفيذ الامر عندما تساوي قيمة الحقل اياً من القيم Ahmed او Mohamed نستخدم الإستعلام التالي:

Select * From MyTable Where MyField='Ahmed' or MyField='Mohamed'

حسناً , ماذا إذا كان هناك عدد كبير من القيم مثل Ahmed , Mohamed , Said , Khalied , Kareem حينها ستكون جملة الإستعلام كبيرة إلا حداً ما , في هذه الحالة يمكننا إختصار الجملة كالتالي :

Select * From MyTable Where MyField IN (Ahmed,Mohamed,Said,Khalied,Kareem)

فمعنى هذا الجمله انه يتم عرض كل السجلات التي يكون الحقل MyField بها يساوي احدى القيم (Ahmed,Mohamed,Said,Khalied,Kareem)

حسناً , ماذا إذا كانت هذه القيم داخل جدول اخر في هذه الحالة يمكننا كتابة الإستعلام كالتالي :

Select * From MyTable Where MyField IN (Select Name From Users)

فهنا سينتج من الجزء (Select Name From Users) جدول فرعي يتكون من حقل واحد يحوي قائمة المستخدمين ( مثلاً ) ويسمى في لغة الإستعلامات ( Sub Query )

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

وبتطبيق هذا على الكود في البرنامج يمكننا إختصار هذا الكود :

اقتباس
    Str = "select * from project"
    RSt.Open Str, condb, adOpenDynamic, adLockOptimistic

While Not RSt.EOF

    If RSt.Fields("ind") = 0 Then

        str1 = "update costing_sub set Sum_DB = Sum_DB + " & Txt03 & " where code_acc = " & RSt.Fields("code_p") & ""
        condb.Execute str1

    End If

    RSt.MoveNext

str2 = "update costing_sub set Sum_DB = 0 where code = 1"
condb.Execute str2

Adodc1.Refresh

Wend

الى هذا الكود :

    str1 = "update costing_sub set Sum_DB = Sum_DB + " & Txt03 & " where code_acc in  (Select Code_P From Project Where Ind=0)"
    condb.Execute str1

str2 = "update costing_sub set Sum_DB = 0 where code = 1"
condb.Execute str2
condb.Execute str2

Adodc1.Refresh

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

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

وارجوا لك التوفيق والعلم النافع دائماً ,,

تم تعديل هذه المشاركة بواسطة محمد مصطفي غريب في 14 أكتوبر 2010 في 17:45

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#13
محمد مصطفي غريب كتب:

رائع جداً اخي الكريم , اعجبتني طريقة إسخدامك للكود وإن دلت فإنما تدل على إستيعابك الجيد للكود وقد فعلت عكس ما يفعل الكثير من الاعضاء عندما يأخذون الكود Copy و Paste من دون التأمل في الكود ومحاولة فهمه وإضافة لمساتهم الخاصة اليه ما يجعلني اشعر بأن عملى ضاع هباءاً منثورا حيث لم يستفيد منه العضو بل حل به مشكلة بعينها فقط .

وانا لي تعليق واحد على كودك ارجوا ان يفيدك حيث سيختصر الكود والوقت ايضاً ,

استخدمت في كودك حلقة تكرارية للبحث عن المشاريع القائمة وتحميل مبلغ مراكز التكلفة اليها كما في الكود التالي :

في جمله الإستعلام يمكننا وضع شرط على حقل معين كالتالي :

Select * From MyTable Where MyField='Ahmed'

وكما في الفيجوال بيسك يمكننا إستخدام المعاملات المنطقية مثل ( And , Or ) مع الجمل الشرطية فأيضاً يمكننا إستخدام هذه المعاملات في شرط جملة الإستعلام ,

فمثلاً إذا كنا نريد تنفيذ الامر عندما تساوي قيمة الحقل اياً من القيم Ahmed او Mohamed نستخدم الإستعلام التالي:

Select * From MyTable Where MyField='Ahmed' or MyField='Mohamed'

حسناً , ماذا إذا كان هناك عدد كبير من القيم مثل Ahmed , Mohamed , Said , Khalied , Kareem حينها ستكون جملة الإستعلام كبيرة إلا حداً ما , في هذه الحالة يمكننا إختصار الجملة كالتالي :

Select * From MyTable Where MyField IN (Ahmed,Mohamed,Said,Khalied,Kareem)

فمعنى هذا الجمله انه يتم عرض كل السجلات التي يكون الحقل MyField بها يساوي احدى القيم (Ahmed,Mohamed,Said,Khalied,Kareem)

حسناً , ماذا إذا كانت هذه القيم داخل جدول اخر في هذه الحالة يمكننا كتابة الإستعلام كالتالي :

Select * From MyTable Where MyField IN (Select Name From Users)

فهنا سينتج من الجزء (Select Name From Users) جدول فرعي يتكون من حقل واحد يحوي قائمة المستخدمين ( مثلاً ) ويسمى في لغة الإستعلامات ( Sub Query )

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

وبتطبيق هذا على الكود في البرنامج يمكننا إختصار هذا الكود :

الى هذا الكود :

    str1 = "update costing_sub set Sum_DB = Sum_DB + " & Txt03 & " where code_acc in  (Select Code_P From Project Where Ind=0)"
    condb.Execute str1

str2 = "update costing_sub set Sum_DB = 0 where code = 1"
condb.Execute str2
condb.Execute str2

Adodc1.Refresh

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

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

وارجوا لك التوفيق والعلم النافع دائماً ,,

احيك على قدرتك على استخدام الكود السهل الجميل

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

شكرا اخى العزيز على مجهوداتك الرائعه بالمنتدى

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

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

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

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

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