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

سؤال قد يكون تكرر من قبل ولكن لم أجده ؟

مغلق
بدأه أشرف خليل في 23 سبتمبر 2001 · 34 رد · 2,472 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#26

الأخ حارث

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

استكمالا لما سبق بخصوص عبارة SQL لا يجب عليك وضعها في متغير بل بإمكانك أدراجها مباشرة بين القوسين بين علامتي تنصيص أو فواصل مزدوجة .

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

الأخ بوب إذا أردت المثال أكتب بريدك .

وللجميع التحية

#27

الأخ أبو حمود :

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

#28

الإخوة الأفاضل :

حيث وجدت الكثير من الفائدة في المثال بعد تعديل الأخ أبو حمود عليه ، لذا تجدونه على الوصلة التالية :

http://mypage.ayna.com/harith77/H_H1WoSites.zip

الأخ أبو حمود :

المثال جدا جميل بعد تعديلكم عليه ، والأجمل أننا استغنينا عن عدد من النماذج بنموذج واحد ، لكني لم أجد فيه ما يضيف تاريخ انتهاء العمل في القسم السابق بمجرد كتابة تاريخ بداية العمل في القسم الجديد .

حاولت تطبيق ما ذكرته من استخدام عبارة : DoCmd.RunSQL (strSQL) ونجحت في ذلك إلى حد ما ، حيث تمكنت بواسطتها من إنشاء جدول جديد ، لكني في الحقيقة أجد أن استخدام مربع نص أفضل ، لذا أنشأت مربع نص جديد باسم cc لآخذ القيمة منه في تشغيل استعلام تحديث

وفي حدث في مربع التحرير والسرد man كتبت الكود التالي :

Dim db As Database

Dim rst As Recordset

Set db = Application.CurrentDb

Set rst = db.OpenRecordset("SELECT Max([Employee ID]) AS bb " _

& "FROM [Employee Work Site]WHERE ((([Employee Work Site].Man)=[forms]![النموذج الجديد]![Man]) AND (([Employee Work Site].[Employee ID])<[forms]![النموذج الجديد]![Emp]));")

Me.cc = rst.[Employee ID]

db.Close

لكن هذا لم ينجح معي ، ويأتيني debug ثم يظلل السطر قبل الأخير بالأصفر .

ولدي فكرة لا أدري هل هي صحيحة أو لا ؟ وهي أن أجعل بدل مربع النص متغير نصي يأخذ قيمته من استعلام ، ثم تؤخذ منه القيمة في تشغيل استعلام تحديث ؟

#29

يعطيكم الله الف عافيه جميعا شباب

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

#30

الأخ حارث

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

الأمر الثاني :

الخطأ في السطر :

Me.cc = rst.[Employee ID]

هو بسبب استبدالك علامة التعجب بالنقطة بعد rst والصحيح

Me.cc = rst![Employee ID]

لأنك تعرف [Employee ID] كخاصية أو طريقة لـ rst .

الخطأ الثاني وجود حقل Employee ID في العبارة :

Me.cc = rst![Employee ID]

وأنت قد حولت الاسم الى bb في عبارة الاستعلام والصحيح :

Me.cc = rst![bb]

وحتى لو عدلت هذين الخطأين السابقين فستظهر لك رسالة خطأ أخرى لوجود بارمترات في عبارة SQL تشير إلى نموذج دون أن تفصلها عن عبارة Sql انظر للعبارة كاملة بعد التعديل وقارنها باللتي كتبتها :

Dim db As Database

Dim rst As Recordset

Set db = Application.CurrentDb

Set rst = db.OpenRecordset("SELECT Max([Employee ID]) AS bb " _

& "FROM [Employee Work Site] WHERE ((([Employee Work Site].Man)=" & [Forms]![النموذج الجديد]![Man] & ") AND (([Employee Work Site].[Employee ID])< " & [Forms]![النموذج الجديد]![Emp] & "));")

Me.cc = rst![bb]

db.Close

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

Me.cc = DMax("[Employee ID]", "Employee Work Site", "Man =" & Forms![النموذج الجديد]![Man])

DoCmd.RunSQL ("UPDATE [Employee Work Site] SET [Employee Work Site].ToDate = [Forms]![النموذج الجديد]![date] " _

& " WHERE ((([Employee Work Site].[Employee ID])=[Forms]![النموذج الجديد]![cc])); ")

والسطر الأول يغنيك عن استعمال DAO لمعرفة الرقم الأخير للعامل .

علما أنني قد وضعته في زر أمر .

وأما طريقة وضع القيمة العائدة من الاستعلام أو من دالة DMax في متغير فهي فكرة ممتازة وطريقة أفضل ولاشك لأنها تغنينا عن وضع مربع نص على النموذج ، وإليك الكود بعد تعديله على طريقتك :

Dim Num As Long

Num = DMax("[Employee ID]", "Employee Work Site", "Man =" & Forms![النموذج الجديد]![Man])

DoCmd.RunSQL ("UPDATE [Employee Work Site] SET [Employee Work Site].ToDate = [Forms]![النموذج الجديد]![date] " _

& " WHERE ((([Employee Work Site].[Employee ID])= " & Num & ")); ")

ولك تحياتي

#31

الأخ أبو حمود :

طبقت ما ذكرته في الكود الأول وأدى الغرض تماما ، أثابك الله .

أما الكود الثاني والثالث فأشكل علي فيهما أنه لم يتم فيهما مراعاة التاريخ ( الحقل date ) ومن ثم فإن الكود يعطينا أكبر رقم في الحقل Employee ID لنفس الموظف ، ولو كان تاريخه أكبر من تاريخ السجل الحالي .

وقد جمعت بين الكود الأول وجزء من الكود الثالث في كود جديد في المثال التالي :

http://mypage.ayna.com/harith77/WorkSite3.zip

وجزاك الله الجنة ويسر لك طريقها على ما تقدمه لنا جميعا ولهذا المنتدى من فوائد أغرقتنا بها.

الأخ بوب :

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

جزاكم الله جميعا كل خير .

#32

الأخ حارث

جزاك الله خير وتقبل الله دعائك .

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

ولك تحياتي

#33

الأخ أشرف :أعتذر لك فكأننا خرجنا عن موضوعك ، وأراك قد توقفت عن المشاركة في هذا الموضوع ، ولعلك وجدت ضالتك ، لكن اعتذارا لك ورغبة في الإفادة لدي هذا المثال قد تستفيد منه :

أكسس 2000 : http://mypage.ayna.com/harith55/Ars2.zip

ربما تجد فيه بعض الفائدة ، ولن أستغني عن ملاحظاتك وملاحظات الإخوان وإضافاتهم .

هذا ولأخينا أبي هادي شكري ودعواتي ، حيث استفدت مما ذكره في الوصلة التالية :

http://arabteam.nicmatic.com/vb/showthread...3?threadid=3287

وفق الله الجميع.

#34

الأخ العزيز الحارث :

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

جزاكم الله جميعا الخير والثواب .

معذرة لعدم الانتظام بالرد للإنشغال بالعمل بعض الشيء .

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

شكرا للجميع دون إستثناء

أشرف خليل

#35

الى الأخوة جميعا لكم منى الف شكر وتقدير

اولا على الأهتمام

وثانيا على المثال وهو موجود فعلا على الوصلة الثانية ياأخ اشرف لك كل الشكر

ولكن هناك مشكلة بسيطة وهى اننى اريد ان تظهر المصروفات

فى عمود والإيرادات فى عمودمنفصل فى التقرير

التاريخ الإيرادات المصروفات الرصيد

ان امكن

ولكم جزيل الشكر والدعاء بالتوفيق

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

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

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

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

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

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