محمد أبوعبدالله قام بنشر نوفمبر 8, 2019 مشاركة قام بنشر نوفمبر 8, 2019 الاخوة الكرام السلام عليكم ورحمة الله وبركاته هل هناك بديل لــ IIF في الاستعلامات حيث اني لدي 10 شروط والاستعلام وهي كالتالي IIf([G1]<[R1]*.3;K1;IIf([G1]<[T1];"K1"; IIf([G2]<[R2]*.3;K2;IIf([G2]<[T2];"K2"; IIf([G3]<[R3]*.3;K3;IIf([G3]<[T3];"K3"; IIf([G4]<[R4]*.3;K4;IIf([G4]<[T4];"K4"; IIf([G5]<[R5]*.3;K5;IIf([G5]<[T5];"K5"; IIf([G6]<[R6]*.3;K6;IIf([G6]<[T6];"K6"; IIf([G7]<[R7]*.3;K7;IIf([G7]<[T7];"K7"; IIf([G8]<[R8]*.3;K8;IIf([G8]<[T8];"K8"; IIf([G9]<[R9]*.3;K9;IIf([G9]<[T9];"K9"; IIf([G10]<[R10]*.3;K10;IIf([G10]<[T10];"K10";"OK")))))))))))))))))))) والاستعلام يرقض كتابة باقي الصيغة فارجو ان يكون لدى الاخوة الكرام حل او بديل عن IIF لاستكمال المعادلة ولكم وافر الاتحية رابط هذا التعليق شارك More sharing options...
jjafferr قام بنشر نوفمبر 8, 2019 مشاركة قام بنشر نوفمبر 8, 2019 وعليكم السلام 🙂 استعمل وحدة نمطية ، زنادها من الاستعلام 🙂 جعفر رابط هذا التعليق شارك More sharing options...
محمد أبوعبدالله قام بنشر نوفمبر 8, 2019 الكاتب مشاركة قام بنشر نوفمبر 8, 2019 3 دقائق مضت, jjafferr said: استعمل وحدة نمطية استاذنا الفاضل بالنسبة للحقول G1 ; R1 ; K1 ... الخ كيف سيتم التعرف يها في الوحدة النمطية دمتم بالخيرات تحياتي رابط هذا التعليق شارك More sharing options...
jjafferr قام بنشر نوفمبر 8, 2019 مشاركة قام بنشر نوفمبر 8, 2019 تارة ممكن نرسل هذه البيانات من الاستعلام الى الوحدة النمطية ، وتارة ممكن نرسل ID السجل من الاستعلام ، ثم في الوحدة النمطية ننادي السجل بالكامل ، ونحصل منه على هذه البيانات ، هكذا: public function Add_All(myID) dim rst as dao.recordset set rst= currentdb.openrecordset ("Select * From myTable Where ID=" & myID) do while not rst.eof هنا ناخذ اسماء الحقول من الجدول if rst!G1 < rst!R1 then end if loop Add_All = myAnswer_back_to_the_query rst.close : set rst = nothing end function جعفر رابط هذا التعليق شارك More sharing options...
jjafferr قام بنشر نوفمبر 8, 2019 مشاركة قام بنشر نوفمبر 8, 2019 بالنسبة الى ارسال البيانات من الاستعلام الى الوحدة النمطية ، فتكون هكذا: A: myFunction([G1],[R1],K1,[T1],[G2],[R2]....) وفي الوحدة النمطية تستقبل هذه البيانات بنفس عدد المتغيرات ، هكذا: public function myFunction(G1,R1,K1,T1,G2,R2....) جعفر 1 رابط هذا التعليق شارك More sharing options...
محمد أبوعبدالله قام بنشر نوفمبر 8, 2019 الكاتب مشاركة قام بنشر نوفمبر 8, 2019 الله يجزيك خير يا غالي ممكن تطبيق على المثال المرفق ولك وافر التحية والتقدير D3.rar رابط هذا التعليق شارك More sharing options...
محمد أبوعبدالله قام بنشر نوفمبر 8, 2019 الكاتب مشاركة قام بنشر نوفمبر 8, 2019 (معدل) معذرة المثال الاول ناقص حقل T UP-D3.rar تم تعديل نوفمبر 8, 2019 بواسطه محمد ابوعبد الله رابط هذا التعليق شارك More sharing options...
jjafferr قام بنشر نوفمبر 8, 2019 مشاركة قام بنشر نوفمبر 8, 2019 تفضل 🙂 هذا الاستعلام ، وبسبب ان عدد الحقول كثيرة اللي نرسلها للوحدة النمطية ، استعملت الطريقة الاولى 🙂 هكذا ننادي الوحدة النمطية: وهذه النتيجة: وهذه الوحدة النمطية: Public Function Add_All(ID As Long) As String On Error GoTo err_Add_All 'G1, R1, K1, G2, R2, K2, G3, R3, K3, G4, R4, K4, G5, R5, K5, G6, R6, K6, G7, R7, K7, G8, R8, K8, G9, R9, K9, G10, R10, K10 Dim rst As dao.Recordset Set rst = CurrentDb.OpenRecordset("Select * From tbl1 Where ID=" & ID) If Nz(rst!G1, 0) < Nz(rst!R1, 0) * 0.3 Then Add_All = Nz(rst!K1, 0) ElseIf Nz(rst!G1, 0) < Nz(rst!T1, 0) Then Add_All = "K1" ElseIf Nz(rst!G2, 0) < Nz(rst!R2, 0) * 0.3 Then Add_All = Nz(rst!K2, 0) ElseIf Nz(rst!G2, 0) < Nz(rst!T2, 0) Then Add_All = "K2" ElseIf Nz(rst!G3, 0) < Nz(rst!R3, 0) * 0.3 Then Add_All = Nz(rst!K3, 0) ElseIf Nz(rst!G3, 0) < Nz(rst!T3, 0) Then Add_All = "K3" ElseIf Nz(rst!G4, 0) < Nz(rst!R4, 0) * 0.3 Then Add_All = Nz(rst!K4, 0) ElseIf Nz(rst!G4, 0) < Nz(rst!T4, 0) Then Add_All = "K4" ElseIf Nz(rst!G5, 0) < Nz(rst!R5, 0) * 0.3 Then Add_All = Nz(rst!K5, 0) ElseIf Nz(rst!G5, 0) < Nz(rst!T5, 0) Then Add_All = "K5" ElseIf Nz(rst!G6, 0) < Nz(rst!R6, 0) * 0.3 Then Add_All = Nz(rst!K6, 0) ElseIf Nz(rst!G6, 0) < Nz(rst!T6, 0) Then Add_All = "K6" ElseIf Nz(rst!G7, 0) < Nz(rst!R7, 0) * 0.3 Then Add_All = Nz(rst!K7, 0) ElseIf Nz(rst!G7, 0) < Nz(rst!T7, 0) Then Add_All = "K7" ElseIf Nz(rst!G8, 0) < Nz(rst!R8, 0) * 0.3 Then Add_All = Nz(rst!K8, 0) ElseIf Nz(rst!G8, 0) < Nz(rst!T8, 0) Then Add_All = "K8" ElseIf Nz(rst!G9, 0) < Nz(rst!R9, 0) * 0.3 Then Add_All = Nz(rst!K9, 0) ElseIf Nz(rst!G9, 0) < Nz(rst!T9, 0) Then Add_All = "K9" ElseIf Nz(rst!G10, 0) < Nz(rst!R10, 0) * 0.3 Then Add_All = Nz(rst!K10, 0) ElseIf Nz(rst!G10, 0) < Nz(rst!T10, 0) Then Add_All = "K10" Else Add_All = "OK" End If Exit_Add_All: rst.Close: Set rst = Nothing Exit Function err_Add_All: If Err.Number = 3265 Then 'No field Add_All = "" Resume Exit_Add_All Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function جعفر 1136.D3.accdb.zip 1 رابط هذا التعليق شارك More sharing options...
محمد أبوعبدالله قام بنشر نوفمبر 8, 2019 الكاتب مشاركة قام بنشر نوفمبر 8, 2019 يا اخي والله يعجز اللسان عن الشكر جزاك الله خيرا اخي الحبيب الغالي دمتم بكل خير تحياتي رابط هذا التعليق شارك More sharing options...
jjafferr قام بنشر نوفمبر 8, 2019 مشاركة قام بنشر نوفمبر 8, 2019 حياك الله 🙂 بس اجابات الاستعلام كانت غريبه ، فهل حصلت على النتائج الصحيحة من واقع بياناتك؟ جعفر رابط هذا التعليق شارك More sharing options...
محمد أبوعبدالله قام بنشر نوفمبر 8, 2019 الكاتب مشاركة قام بنشر نوفمبر 8, 2019 ابشر التجربة الاولى نجحت والحمد لله اقوم الان بالتطبيق على الملف الخاص باليانات بشرك الله بالجنة رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.