نبراس كاظم قام بنشر يناير 10, 2021 قام بنشر يناير 10, 2021 السلام عليكم عملت دالة تقوم بجمع عددين في الفورم لكن ابي اعمل له شرط في حالة مربع النص يكون فارغ ابي مسج يظهر لكن عن طريق الدالة لا يعمل كيف استطيع التحكم في محتويات الفورم عن طريق الدوال في الموديول function.rar
محمد أبوعبدالله قام بنشر يناير 11, 2021 قام بنشر يناير 11, 2021 وعليكم السلام ورحمة الله وبركاته استخدم دالة NZ لتفادي الحقول الفارغة بتعويضها بصفر Me.txt3 = m(Nz(Me.txt1, 0), Nz(Me.txt2, 0)) function.rar تحياتي
نبراس كاظم قام بنشر يناير 11, 2021 الكاتب قام بنشر يناير 11, 2021 (معدل) 10 hours ago, محمد أبوعبدالله said: وعليكم السلام ورحمة الله وبركاته استخدم دالة NZ لتفادي الحقول الفارغة بتعويضها بصفر Me.txt3 = m(Nz(Me.txt1, 0), Nz(Me.txt2, 0)) function.rar 19.34 kB · 1 download تحياتي استاذي العزيز تسلم على الرد الجميل لكن الغاية هي اني هل استطيع ان اتحكم في مربع النص عن طريق الدالة الكاتبة في المثال مثل دالة اف الشرطية تم تعديل يناير 11, 2021 بواسطه نبراس كاظم
biskra قام بنشر يناير 11, 2021 قام بنشر يناير 11, 2021 msgbox "انتبه يوجد حقل أو أكثر فارغ", vbOKOnly Me.txt3 = m(Nz(Me.txt1, 0), Nz(Me.txt2, 0))
نبراس كاظم قام بنشر يناير 11, 2021 الكاتب قام بنشر يناير 11, 2021 1 hour ago, biskra said: msgbox "انتبه يوجد حقل أو أكثر فارغ", vbOKOnly Me.txt3 = m(Nz(Me.txt1, 0), Nz(Me.txt2, 0)) اول شي منور اخي العزيز شوف الصورة ولاحظ المثالث المرفق قصدي هل بالامكان ان اعمل هذا المسج او دالة اف الشرطية في الفنكشن وليس في الفورم
أبوبسمله قام بنشر يناير 11, 2021 قام بنشر يناير 11, 2021 وعليكم السلام مشاركه مع اخوانى واساتذتى جزاهم الله كل خير Function m(x, y As Variant) If IsNull(x) Or IsNull(y) Then MsgBox "enter the number" Else m = CDbl(x) + CDbl(y) End If End Function
jjafferr قام بنشر يناير 11, 2021 قام بنشر يناير 11, 2021 2 ساعات مضت, احمد الفلاحجي said: Function m(x, y As Variant) اذا لم تكتب نوع المتغير ، فتلقائيا يأخذه الاكسس على انه Variant ، لذا ، مافي داعي تكتب انه Variant 🙂 وبتوسع لما كتبه اخي احمد : Function m(x, y) As Double If Len(x & "") = 0 Then MsgBox "Please enter a value for X" ElseIf Len(y & "") = 0 Then MsgBox "Please enter a value for Y" Else m = CDbl(x) + CDbl(y) End If End Function جعفر 2
أبوبسمله قام بنشر يناير 11, 2021 قام بنشر يناير 11, 2021 45 دقائق مضت, jjafferr said: وبتوسع لما كتبه اخي احمد : وما احلى التوسع اخى ومعلمنا العزيز جعفر نعم صحيح ما ذكرت استاذى العزيز وتعلمت هذا الدرس يوم ذكرها الاخ هاوى ولكن زحمه الراس بتنسينى جزاك الله خيرا اخى ومعلمى العزيز جعفر
نبراس كاظم قام بنشر يناير 11, 2021 الكاتب قام بنشر يناير 11, 2021 1 hour ago, jjafferr said: اذا لم تكتب نوع المتغير ، فتلقائيا يأخذه الاكسس على انه Variant ، لذا ، مافي داعي تكتب انه Variant 🙂 وبتوسع لما كتبه اخي احمد : Function m(x, y) As Double If Len(x & "") = 0 Then MsgBox "Please enter a value for X" ElseIf Len(y & "") = 0 Then MsgBox "Please enter a value for Y" Else m = CDbl(x) + CDbl(y) End If End Function جعفر الدالة شغالة تمام اخي جعفر . بس في شغلة لماذا وضعنا دالة cdbl وافهم من حضرتك ان التعامل بالفكشن صعب وليس سهل ام انا مخطئ
jjafferr قام بنشر يناير 12, 2021 قام بنشر يناير 12, 2021 18 ساعات مضت, نبراس كاظم said: بس في شغلة لماذا وضعنا دالة cdbl لان المتغير X و Y عبارة عن Variant الشبية للنص String ، بينما انت تريد ان تجمع الرقمين ، فلابد من تحويلهم الى Double او Integer لتتم عملية الجمع بطريقة صحيحة ، فهنا اخبرنا الكود: اعمل تغيير للمتغير X الى رقم: Convert to Double ، او cDbl 🙂 الطريقة المثلى للتعامل مع دوالنا الخاصة (سواء في النموذج او الوحدة النمطية) هي ، ارسال القيمة جاهزة اليها ، اي نضبط القيم قبل ارسالها للدالة ، وفي حال موضوعك هو: عند ارسال المعلومة: If Len(Me.txt1 & "") = 0 Then MsgBox "Please enter a value" Me.txt1.SetFocus ElseIf Len(Me.txt2 & "") = 0 Then MsgBox "Please enter a value" Me.txt2.SetFocus Else Me.txt3 = m(Nz(Me.txt1, 0), Nz(Me.txt2, 0)) End If . فتصبح الدالة: Function m(x As Double, y As Double) As Double m = x + y End Function . ولكن لأنك قلت انك تريد الفحص في الفنكشن ، لهذا السبب شفت محاولات الشباب 🙂 : في ١١/١/٢٠٢١ at 00:12, نبراس كاظم said: كن ابي اعمل له شرط في حالة مربع النص يكون فارغ ابي مسج يظهر لكن عن طريق الدالة .. . . 18 ساعات مضت, نبراس كاظم said: وافهم من حضرتك ان التعامل بالفكشن صعب وليس سهل ام انا مخطئ من وين وصلتك هذه المعلومة ، فأنا لم اتكلم عنها لا من قريب ولا من بعيد !! في الواقع ، لذة البرمجة هي في عمل الدوال والتي بها يتم اختصار العمل وعدم عمل تكرار للكود 🙂 جعفر 1 1
نبراس كاظم قام بنشر يناير 12, 2021 الكاتب قام بنشر يناير 12, 2021 23 minutes ago, jjafferr said: لان المتغير X و Y عبارة عن Variant الشبية للنص String ، بينما انت تريد ان تجمع الرقمين ، فلابد من تحويلهم الى Double او Integer لتتم عملية الجمع بطريقة صحيحة ، فهنا اخبرنا الكود: اعمل تغيير للمتغير X الى رقم: Convert to Double ، او cDbl 🙂 الطريقة المثلى للتعامل مع دوالنا الخاصة (سواء في النموذج او الوحدة النمطية) هي ، ارسال القيمة جاهزة اليها ، اي نضبط القيم قبل ارسالها للدالة ، وفي حال موضوعك هو: عند ارسال المعلومة: If Len(Me.txt1 & "") = 0 Then MsgBox "Please enter a value" Me.txt1.SetFocus ElseIf Len(Me.txt2 & "") = 0 Then MsgBox "Please enter a value" Me.txt2.SetFocus Else Me.txt3 = m(Nz(Me.txt1, 0), Nz(Me.txt2, 0)) End If . فتصبح الدالة: Function m(x As Double, y As Double) As Double m = x + y End Function . ولكن لأنك قلت انك تريد الفحص في الفنكشن ، لهذا السبب شفت محاولات الشباب 🙂 : .. . . من وين وصلتك هذه المعلومة ، فأنا لم اتكلم عنها لا من قريب ولا من بعيد !! في الواقع ، لذة البرمجة هي في عمل الدوال والتي بها يتم اختصار العمل وعدم عمل تكرار للكود 🙂 جعفر قصدي لو عملنا المطلوب من النموذج حيكون الناتج بهذه الصيغة if isnull(trim(me.txt1.value) then msgbox"enter number" endif يبنما في الفكشن قمنا بخطوه اكثر وهي تعريف المتغير على انه رقم وليس سترنك
jjafferr قام بنشر يناير 12, 2021 قام بنشر يناير 12, 2021 5 دقائق مضت, نبراس كاظم said: يبنما في الفكشن قمنا بخطوه اكثر وهي تعريف المتغير على انه رقم وليس سترنك خليني احاول اقنعك 🙂 اعمل هذه المعادلة البسيطة في النموذج على النقر على Click : Me.txt3 = Me.txt1 + Me.txt2 والآن ، ادخل هذه القيم في الحقلين: txt1 : 1 txt2 : 3.1 واخبرني اذا حصلت على النتيجة الصحيحة عند النقر على الزر 🙂 جعفر
نبراس كاظم قام بنشر يناير 12, 2021 الكاتب قام بنشر يناير 12, 2021 43 minutes ago, jjafferr said: خليني احاول اقنعك 🙂 اعمل هذه المعادلة البسيطة في النموذج على النقر على Click : Me.txt3 = Me.txt1 + Me.txt2 والآن ، ادخل هذه القيم في الحقلين: txt1 : 1 txt2 : 3.1 واخبرني اذا حصلت على النتيجة الصحيحة عند النقر على الزر 🙂 جعفر الناتج يكون 4.1 مع العلم ان القيمة فلوت
jjafferr قام بنشر يناير 12, 2021 قام بنشر يناير 12, 2021 هل حصلت على هذه القيمة من النموذج؟ هذا ما حصلت عليه انا : . وهذه كانت المعادلة : . الخلاصة: لأننا في النموذج لم نذكر نوع الحقول ، فأخذها كنص ، وجمعها كنص !! لهذا السبب يجب ان نخبره نوع الحقل/المتغير علشان نحصل على الاجابة الصحيحة 🙂 جعفر 1325.function.accdb.zip
نبراس كاظم قام بنشر يناير 12, 2021 الكاتب قام بنشر يناير 12, 2021 1 hour ago, jjafferr said: هل حصلت على هذه القيمة من النموذج؟ هذا ما حصلت عليه انا : . وهذه كانت المعادلة : . الخلاصة: لأننا في النموذج لم نذكر نوع الحقول ، فأخذها كنص ، وجمعها كنص !! لهذا السبب يجب ان نخبره نوع الحقل/المتغير علشان نحصل على الاجابة الصحيحة 🙂 جعفر 1325.function.accdb.zip 37.32 kB · 1 download اتعبتك مع اخي العزيز الحين لو كان لدينا اكثر من مربع نص كيف حيمكنني التحكم به عن طريق الفنكشن كيف اضيف الجيك في الفنكشن هل مع الدالة ام مستقلة وكيف حيكون الاختيار اذا كان جمع او طرح
jjafferr قام بنشر يناير 12, 2021 قام بنشر يناير 12, 2021 1 ساعه مضت, نبراس كاظم said: الناتج يكون 4.1 مع العلم ان القيمة فلوت لا زلت انتظر الجواب !! 36 دقائق مضت, نبراس كاظم said: لو كان لدينا اكثر من مربع نص هذا الرابط يفيدك جعفر
نبراس كاظم قام بنشر يناير 12, 2021 الكاتب قام بنشر يناير 12, 2021 استاذ اعرف الطريقة من النموذج بس سؤالي واضح لو كان من الفنكشن كيف يحكون التحكم هل اعمل فنكشن خاصة بالجيك بوكس ام تدرج ضمن الفنكشن الخاصة بالجمع
jjafferr قام بنشر يناير 12, 2021 قام بنشر يناير 12, 2021 معظم المبرمجين يعتقدون بأن جمع قيم حقلين في نموذج ، سيعطي نتائج صحيحة ، ولكن المثال الذي ارفقته في مشاركتي السابقة اثبت بأن هذا غير صحيح. فالاكسس يتعامل مع الحقل كتعامله مع Variant ، لهذا السبب يجب ان نخبر الاكسس بأن الحقل (سواء نوع الحقل في الجدول عبارة عن رقم ، او عن طريق تنسيق الحقل ونخبره بأنه رقم) ، او قيمة الحقل نغيرها الى رقم (ونستعمل دوال مثل: Val او Int او cInt او cDbl ، مثل : Val(X) Int(X) cInt(X) cDbl(X) . والموضوع لا يتوقف على النموذج او الكود (سواء في النموذج او التقرير او الوحدة النمطية) ، وانما في الاستعلام والتقرير والماكرو ايضا. جعفر 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.