alsihran قام بنشر نوفمبر 14, 2022 قام بنشر نوفمبر 14, 2022 السلام عليكم لدي استعلام يقوم بتحديث حقل في جدول بناء على قيمة الحقل مثلا القيمة بالجدول ناجح يتم تحديثها الى رقم 1 الى هنا الامور كلها تمام اريد اضع شروط اخرى للتحديث مثلا اذا كانت قيمة الحقل فاشل يتم تحديث الحقل الى رقم 2 اذا كانت قيمة الحقل Na يتم تحديث الحقل الى رقم 3 استطيع عملها بعدد ثلاثة استعلامات ولكن اريد اختصارها الى استعلام واحد فقط qryi.accdb
jjafferr قام بنشر نوفمبر 14, 2022 قام بنشر نوفمبر 14, 2022 وعليكم السلام 🙂 ايش رأيك بشرح مفيد عن الدالة iif ، وان شاء الله يساعدك في مرادك . جعفر 1
alsihran قام بنشر نوفمبر 14, 2022 الكاتب قام بنشر نوفمبر 14, 2022 منذ ساعه, jjafferr said: ايش رأيك بشرح مفيد عن الدالة iif ، وان شاء الله يساعدك في مرادك شكرا استاذ الشرح عن الدالةiif في محرر الاكواد vba الجهاز اللي راح اضع عليه البرنامج متصل بسيرفر لايقبل تنفيذ اي استعلام من خلال الكود لذلك محتاج تنفيذ التحديث من خلال الاستعلام مباشرة لو امكن المساعده في هذه الجزئية 1
jjafferr قام بنشر نوفمبر 14, 2022 قام بنشر نوفمبر 14, 2022 الشرح عن طريقة عمل الامر iif في الاستعلام ، ولكني عملتها في VBA وكنت استطيع عملها في برنامج Notepad ، فقط لأشرح طريقة عملها بخطوات سهله ، ثم تجميعها (بحذف علامة _ ) وجعل الجملة في سطر واحد ، ثم اخذها الى الاستعلام 🙂 2
ابو جودي قام بنشر نوفمبر 14, 2022 قام بنشر نوفمبر 14, 2022 السلام عليكم ورحمة الله تعالى وبركاته وبعد اذن استاذى الجليل ومعلمى القدير و والدى الحبيب الاستاذ @jjafferr تسهيلا على اخونا السائل على اعتبار ان الحقل اسمه ff اولا باستخدام دالة Switch Switch(IsNull(Trim([ff])),3,[ff]="Na",3,[ff]="ناجح",1,[ff]="فاشل",2) ثانيا باستخدام دالة iif IIf(IsNull(Trim([ff])),3,IIf([ff]="Na",3,IIf([ff]="ناجح",1,IIf([ff]="فاشل",2)))) وطبعا انا افضل دالة Switch لا يصير منها لخبطة مع كثرة عدد الحروف بالكود وبخاصة مع كثرة المتغيرات واستخدام الاحرف العربية اللى تشقلب الكود رأسا على عقب وتجيب لمحرر الاكواد صداع 1
alsihran قام بنشر نوفمبر 14, 2022 الكاتب قام بنشر نوفمبر 14, 2022 1 ساعه مضت, ابو جودي said: تسهيلا على اخونا السائل تمام الدالتين ادت المطلوب فقط هناك ملاحظة لوكانت هناك قيمة بالجدول غير ناجح فاشل Na يتم تحديثها الى فراغ انظر الصورة والمرفق fr.rar
ابو جودي قام بنشر نوفمبر 14, 2022 قام بنشر نوفمبر 14, 2022 36 دقائق مضت, alsihran said: تمام الدالتين ادت المطلوب فقط هناك ملاحظة لوكانت هناك قيمة بالجدول غير ناجح فاشل Na يتم تحديثها الى فراغ انظر الصورة والمرفق طيب انت اخدت الاجابة تفصيلا بالتمام والكمال بناء على طلبك لم تذكر شئ عن قيم أخرى ومع ذلك يمكنك اضافة ما تشاء بالدالتين على نفس النهج و السياق ولا قدر الله ان تعثرت فى التطبيق فقط أخبرنى كل المتغيرات التى سوف يتم التعامل معاها لوضعها فى الحسبان الله يرضى عليك وعلى والديك الكرام 1
alsihran قام بنشر نوفمبر 15, 2022 الكاتب قام بنشر نوفمبر 15, 2022 12 ساعات مضت, ابو جودي said: طيب انت اخدت الاجابة تفصيلا بالتمام والكمال بناء على طلبك كلامك صحيح استاذ 13 ساعات مضت, ابو جودي said: الله يرضى عليك وعلى والديك الكرام جميعا ان شاء الله جزاك الله خير 13 ساعات مضت, ابو جودي said: ولا قدر الله ان تعثرت فى التطبيق فقط أخبرنى كل المتغيرات التى سوف يتم التعامل معاها لوضعها فى الحسبان استاذي البيانات يتم استيرادها من ملف أكسل وهي نصوص احتمالية خطأ المستخدم في ادخال النص المطلوب بالتحديد وارده بنسبة 50% فلو كان هناك امكانية تحديث اي نص اخر غير ناجح' فاشل' Na' الى رقم 3 شاكر ومقدر لك تعاونك
alsihran قام بنشر نوفمبر 15, 2022 الكاتب قام بنشر نوفمبر 15, 2022 ملاحظة ايضا اثناء التجربة لاحظت ان الاستعلام يقوم بحذف القيم التي تم تحديثها سابقا
jjafferr قام بنشر نوفمبر 15, 2022 قام بنشر نوفمبر 15, 2022 وعليكم السلام 🙂 مشاركة مع اخي ابو جودي 🙂 . . وهذه هي الدالة في الوحدة النمطية : Function Get_R(txt As String) As String If txt = "نجاح" Then Get_R = 1 ElseIf txt = "فشل" Then Get_R = 2 ElseIf txt = "Na" Then Get_R = 3 Else Get_R = 3 End If End Function جعفر fr.zip 2
alsihran قام بنشر نوفمبر 15, 2022 الكاتب قام بنشر نوفمبر 15, 2022 31 دقائق مضت, jjafferr said: مشاركة مع اخي ابو جودي الله يعطيك العافية المشكلة معاااي ذكرتها في مشاركة سابقة 20 ساعات مضت, alsihran said: لجهاز اللي راح اضع عليه البرنامج متصل بسيرفر لايقبل تنفيذ اي استعلام من خلال الكود لذلك محتاج تنفيذ التحديث من خلال الاستعلام مباشرة شكل المسألة عويصه 😇
تمت الإجابة jjafferr قام بنشر نوفمبر 15, 2022 تمت الإجابة قام بنشر نوفمبر 15, 2022 سيدي الفاضل 🙂 الرابط اللي اعطيتك ، فيه الطريقة اللي انا شخصيا استخدمها في برامجي ، وها انا ذا استخدمها هنا كذلك : في VBE او Notepad او الوورد او اي برنامج ، قم بتفكيك الامر iif الى سطور ، حتى يكون الامر سهل لك في فهم ما تقوم به ، وحتى الكلمات العربية ما تتداخل وسط الكود ويصبح الكود غير مفهوم : . IIf([ff] = "نجاح", 1, _ IIf([ff] = "فشل", 2, _ IIf([ff] = "Na", 3, _ IIf([ff] <> "نجاح" And [ff] <> "فشل" And [ff] <> "Na", 3, "")))) IIf([ff] = "نجاح", 1, IIf([ff] = "فشل", 2, IIf([ff] = "Na", 3, IIf([ff] <> "نجاح" And [ff] <> "فشل" And [ff] <> "Na", 3, "")))) . وفي النهاية ، احذف العلامة _ وضع الكود في سطر واحد (اوقف على نهاية السطر الاول ، واحذف العلامة _ ، ثم انقر على زر Del على لوحة المفاتيح حتى يأتي السطر الثاني في نهاية السطر الاول ، ويبقى لدينا سطر واحد فقط ، والذي سنأخذ نسخة منه الى الاستعلام مباشرة) . لاحظ في الاستعلام انه بالفعل قلب لنا المتغيرات والحقول ، بسبب اللغة العربية : . . رجاء احتفظ بملف النص ZZ.txt ، فكلما اردن ان تعمل تعديل على معادلة الاستعلام ، اعملها في ملف النص ، ثم انسخها الى الاستعلام 🙂 اما انا ، فبدل ان يكون عندي ملف اضافي في هذا المشروع ، فأقوم بعمل هذه الخطوات في VBE (طبعا ما اناديها برمجيا ولا استعملها) ، واللي تكون جزء من البرنامج 🙂 جعفر ZZ.zip fr.zip 1
alsihran قام بنشر نوفمبر 16, 2022 الكاتب قام بنشر نوفمبر 16, 2022 21 ساعات مضت, jjafferr said: سيدي الفاضل 🙂 الرابط اللي اعطيتك ، فيه الطريقة اللي انا شخصيا استخدمها في برامجي ، وها انا ذا استخدمها هنا كذلك : الله يعطيك العافية استاذ عذراً منك لاني أسأت الفهم تمام شكرا لك
Moosak قام بنشر نوفمبر 16, 2022 قام بنشر نوفمبر 16, 2022 في 14/11/2022 at 14:31, alsihran said: الجهاز اللي راح اضع عليه البرنامج متصل بسيرفر لايقبل تنفيذ اي استعلام من خلال الكود أخي @alsihran لدي فضول حول هذه النقطة .. 🙂 لماذا لا يقبل السيرفر تشغيل الأوامر البرمجية VBA ؟ هل بسبب تعطيل الصلاحيات من قبل فنيي الحاسب الآلي ؟
alsihran قام بنشر نوفمبر 16, 2022 الكاتب قام بنشر نوفمبر 16, 2022 2 ساعات مضت, Moosak said: لماذا لا يقبل السيرفر تشغيل الأوامر البرمجية VBA ؟ هل بسبب تعطيل الصلاحيات من قبل فنيي الحاسب الآلي ؟ نعم استاذنا الكريم تقوم ادارة تقنية المعلومات بالمنشأه بايقاف التعليمات البرمجية ( تنفيذ الاكواد البرمجية ) عن الاجهزة المرتبطة بالسيرفر الرئيسي في الفرع الرئيسي ومن ضمنها الاسكربت وتثبيت البرامج و . .و .. و الخ
jjafferr قام بنشر نوفمبر 16, 2022 قام بنشر نوفمبر 16, 2022 والجواب على مشاركتي انا انا ، هل حلت المشكلة 🙂 جعفر 1
alsihran قام بنشر نوفمبر 18, 2022 الكاتب قام بنشر نوفمبر 18, 2022 في 16/11/2022 at 11:14, jjafferr said: والجواب على مشاركتي انا انا ، هل حلت المشكلة 🙂 نعم استاذ حلة المشكلة الى نوع ما لانه اذا اعدت تشغيل الاستعلام مره ثانية يقوم بتحويل رقم 1 ورق 2 الى رقم 3 حسب الشروط تحياتي وتقديري شكرا لك
jjafferr قام بنشر نوفمبر 18, 2022 قام بنشر نوفمبر 18, 2022 49 دقائق مضت, alsihran said: يقوم بتحويل من يقوم بهذا التحويل؟
alsihran قام بنشر نوفمبر 18, 2022 الكاتب قام بنشر نوفمبر 18, 2022 2 ساعات مضت, jjafferr said: من يقوم بهذا التحويل؟ عفواً اقصد تحديث نفسها جملة الاستعلام التي قمنا من خلالها بتحديث النصوص نجاح فشل Na الى ارقام عند تشغل الاستعلام مرة اخرى قوم بتحول رقم 1 و 2 الى رقم 3 بسبب ان تشغيل الاستعلام مرة اخرى سيجد ان رقم 1 و 2 لاتساوي نجاح فشل يقوم بتحديثها الى رقم 3 هذه الجملة من الاستعلام المسؤولة عن الامر IIf([ff] <> "نجاح" And [ff] <> "فشل" And [ff] <> "Na", 3,
jjafferr قام بنشر نوفمبر 18, 2022 قام بنشر نوفمبر 18, 2022 اذا استعملنا اسماء الحقول اللي في ملفي (طبعا هذا جدول اخوي ابو جودي 🙂 )، فنحن نتحقق من الحقل ff ، ولكننا نحدث حقل آخر ، فما مهم اي عدد من المرات تقوم بهذا التحديث ، فالنتيجة دائما تكون نفسها (نعم جربت في البرنامج قبل ان اكتب هنا 🙂 ). واذا اردت المساعدة اكثر ، فرجاء ارفاق برنامجك وفيه حقول وبيانات صحيحة ، وخلينا نشوف وين المشكلة 🙂 جعفر
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.