اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

DMAX و أخواتها بأكثر من معيار ( شرط )


الردود الموصى بها

السلام عليكم ، تقبل الله طاعتكم و غفر لكم و بارك لكم في عيدكم و أعاده بالخير و اليمن و البركة .
لقد طرحت سؤالاً سابقاً عن إمكانية تحديث جدول باستعلام دفعة واحدة .

و قام الأخوة

@kaser906

@ابا جودى

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

و لدى البحث في الموقع وجدت بعض المشاركات للأخ

@jjafferr

يتحدث فيها عن طريقة لاستخدام هذه الدوال مع أكثر من معيار و لكن بدت و كأنهاخاصة بأوامر VBA

فهل من طريقة لجعل الاستعلام في المرفق يعمل بأكثر من شرط ؟

و لكم الشكر الجزيل

تحديث كامل الجدول.accdb

تم تعديل بواسطه Khalf
رابط هذا التعليق
شارك

منذ ساعه, Khalf said:

فهل من طريقة لجعل الاستعلام في المرفق يعمل بأكثر من شرط ؟

ممكن تشرح لنا المطلوب بالتفصيل 
اي تريد ان يتم تحديث اي حقل وبأي بيانات و بأي شروط

رابط هذا التعليق
شارك

الان, Shivan Rekany said:

ممكن تشرح لنا المطلوب بالتفصيل 
اي تريد ان يتم تحديث اي حقل وبأي بيانات و بأي شروط

كل و أنت بألف ألف خير ...

أستاذي الكريم .

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

و في جانبه حقل أقوم بتحديث البيانات فيه بناء على الأزرار أسفل النموذج .

و يكون التحديث بالرر الأول بتشغيل استعلام  بشرط و احد

و في الزر الثاني بتشغيل استعلام بشرطين .

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

و لك جزيل الشكر

و أحمد الله أن السؤال حظي بانتباهكم .

 

تم تعديل بواسطه Khalf
رابط هذا التعليق
شارك

31 دقائق مضت, Khalf said:

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

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

Private Sub Command18_Click()
    DoCmd.SetWarnings False
    DoCmd.RunSQL "UPDATE Table1 SET Table1.DATE4 = DMin(""[dATE3]"",""table1"","" [name11] ='"" & [name11] & ""'"" And ""[date4] <#"" & [date4] & ""#"");"
    DoCmd.SetWarnings True
    Me.Requery
End Sub

وهذا بشرط واحد

Private Sub Command19_Click()
    DoCmd.SetWarnings False
    DoCmd.RunSQL "UPDATE Table1 SET Table1.DATE4 = DMin(""[DATE3]"",""[Table1]"","" [name11]='"" & [name11] & ""'"");"
    DoCmd.SetWarnings True
    Me.Requery
End Sub


 

تحديث كامل الجدول.accdb

رابط هذا التعليق
شارك

شكراً لك و ألف شكر 

 

أستاذي الفاضل ..

في النموذج ستجد زراً كتب عليه تحديث كامل الجدول باستعلام بناء على شرطين .

عند الضغط عليه يعمل الاستعلام و كأن الدالة

Dmax

بلا شروط ..

لم أعرف ماذا أفعل كي أجعل الاستعلام يعمل بشرطين ..

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

Dmax

دون مراعاة أية شروط ..

و لا أدري كيف أستطيع كتابة الشروط حتى يعمل الاستعلام كما يجب

أعلم أني أتعبتك .. و أسأل الله أن ييسر أمرك كله .

رابط هذا التعليق
شارك

6 دقائق مضت, Khalf said:

عند الضغط عليه يعمل الاستعلام و كأن الدالة

Dmax

بلا شروط ..

افتح استعلام في وضع التصميم
شوف الصفوف الاخيرين هما صفوف لكتابة الشروط فيه
اذاً اعطيني اشرح لي شروطك اكثر لكي اعمل لك المطلوب باذن الله

رابط هذا التعليق
شارك

الان, Shivan Rekany said:

فتح استعلام في وضع التصميم
شوف الصفوف الاخيرين هما صفوف لكتابة الشروط فيه
اذاً اعطيني اشرح لي شروطك اكثر لكي اعمل لك المطلوب باذن الله

DMin("[dATE3] ";"table1";" [name11] ='" & [name11] & "'" And "[date4] <#" & [date4] & "#")

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

 لكافة السجلات

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

 

شكراً لك و بارك الله بك ... دعوة بالسر و العلن في هذه الليلة المباركة.

رابط هذا التعليق
شارك

31 دقائق مضت, Khalf said:

DMin("[dATE3] ";"table1";" [name11] ='" & [name11] & "'" And "[date4] <#" & [date4] & "#")

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

في ذلك الاستعلام حضرتك بيقول قم بتحديث كافة السجلات الحقل DATE4 في جدول Table1
بـــــ هناك مهم جدي بأي شي قلت بـ
 

DMin("[dATE3] ";"table1";

بأصغر قيمة للحقل dATE3 في جدول Table1 بشرط 

" [name11] ='" & [name11] & "'"

الاسم في حقل الاسم بيكون يساوي الاسم
 

" [name11] ='" & [name11] & "'"

وايضا التاريخ في حقل داتا4 بيكون يساوي او اصغر من التاريخ داتا4
 

And "[date4] <#" & [date4] & "#")

اي الاستعلام بيحضر لك اضغر قيمة ويعمل لك التحديث لان شروطك متواجدة لكن خاطئة ( يجب ان يكون هناك مثلا مربع نصي او كومبوبوكس للاسماء في النموذج وترتبط الشرط معه ) اذا انت تريد ان تقوم بتحديث السجلات حسب اسم المختارة في الكومبوبوكس او مكتوب في المربع النصي
او ان تكتب التاريخ في المربع وتكتب فيه التاريخ اللي تريد لان الان عند تراوح بين السجلات البرامج يقوم بالبحث ما هو اصغر التاريخ يمسكه ويروح للسجل الاول هل الاسم بيكون يساوي بنفسه طبعا نعم وهل التاريخ في حقل داتا4 هو يساوي بنف التاريخ طبعا نعم لذلك يقوم بالتحديث

ارجوا ان وصلت لك المفهوم لان انا ضعيف جدا باللغة العربية 🙂

رابط هذا التعليق
شارك

أستاذي 

@Shivan Rekany

 

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

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

شكراً لك من كل قلبي ...

و جزاك الله كل خير ...

 

رابط هذا التعليق
شارك

2 دقائق مضت, Khalf said:

و إنما سيأخذ شرطاً واحداُ فقط .....

لا , تقدر تكتب اكثر من شرط لكن يجب ان تعلم كيف و اين تكتب الشرط
بعد انا ما فهمت من ماذا تريد ان تعمل والا كان كتبت لك الكود بشرط و اكثر

رابط هذا التعليق
شارك

الان, Shivan Rekany said:

لا , تقدر تكتب اكثر من شرط لكن يجب ان تعلم كيف و اين تكتب الشرط
بعد انا ما فهمت من ماذا تريد ان تعمل والا كان كتبت لك الكود بشرط و اكثر

البرنامج في أصله من أجل تحديد ولاية عضو في مجلس إدارة

عند انتخابه مرة ثانية أضغط زر التحديث فيقوم بتسجيل تاريخ نهاية ولايته السابقة بحساب تاريخ انتخابه الجديد - 1

اعتمدت الدالة DMAX أو  DMIN

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

 

آمل أن تكون فكرتي اتضحت ....

و شكراً لك على أي حال

رابط هذا التعليق
شارك

16 ساعات مضت, Khalf said:

اعتمدت الدالة DMAX أو  DMIN

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

انتبه جيدا هل انا فهمت من قصدك بالضبط ام  لا 
هل تريد مثلا لسجل اول اسمه حسن يبحث لهذا الاسم و بعدين يمسك باعلى تاريخ لهذا الاسم في الحقل dATE3 ويعطي هذا التاريخ للحقل DATE4 لهذا الاسم 
مثال : الاسم حسن .... التواريخ تابعه في حقل dATE3 هما 02/03/2000 و 01/11/2000 هل تريد ان يعطي التاريخ الاكبر وهو 01/11/2000 في الحقل DATE4 ؟ هذا صحيح ؟
وهذا لكل اسم 

  • Thanks 1
رابط هذا التعليق
شارك

33 دقائق مضت, Shivan Rekany said:

انتبه جيدا هل انا فهمت من قصدك بالضبط ام  لا 
هل تريد مثلا لسجل اول اسمه حسن يبحث لهذا الاسم و بعدين يمسك باعلى تاريخ لهذا الاسم في الحقل dATE3 ويعطي هذا التاريخ للحقل DATE4 لهذا الاسم 
مثال : الاسم حسن .... التواريخ تابعه في حقل dATE3 هما 02/03/2000 و 01/11/2000 هل تريد ان يعطي التاريخ الاكبر وهو 01/11/2000 في الحقل DATE4 ؟ هذا صحيح ؟
وهذا لكل اسم 

بارك الله بك

ما أبحث عنه

في المثال استخدام Dmin 

أريد أن يبحث لكل اسم على أصغر تاريخ و لكن أكبر من التاريخ الخاص بالسجل

مثلاً محمد .. لديه ثلاث ولايات

السجل ١: ١١/٢/٢٠٠٠

السجل ٢: ١/١/١٩٩٨

السجل٣: ١/١/٢٠١٠

أريد أن يضع في الحقل date4 في السجل ١

١/١/٢٠١٠

و في السجل ٢ ١١/٢/٢٠٠٠

و يبقى السجل ٣ فارغاً 

و ذلك لكل اسم لأن الدالة كما وضعت شروطها لم تعمل .

رابط هذا التعليق
شارك

جزاك الله كل خير و وهبك من عطاياه الجزيلات و وسع رزقك و بارك بعمرك و هداك سبله  ، أنت و كل من قرأ .

آمين آمين آمين 

و كل عام و أنت بخير 

تم تعديل بواسطه Khalf
  • Like 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information