19-10-13, 05:56 PM
السلام عليكم...
إذا كنت تقصد التسطير الأخضر تحت عبارة End Function فالسبب هو أن الـ Compiler ينبهك إلى احتمال أن الدالة قد تعيد NULL ما قد يتسبب في حدوث خطأ أثناء التنفيذ. لكن الخطأ قد لا يحدث إذا تم استدعاء الدالة بالقيم المناسبة.
الدالة قد تعيد NULL إذا كانت قيمة المتغير My_No_Digits لا تساوي إحدى القيم الثلاث 0 أو 2 أو 3.
الحل: إما أن تحدد في البداية قيمة افتراضية تعيدها الدالة في حالة لم تكن قيمة My_No_Digits هي 0 أو 2 أو 3، أو أن تضيف إلى كتلة Select Case عبارة Case Else لإرجاع القيمة الافتراضية:
* هكذا:
* أو هكذا:
*** لاحظ أن القيمة الافتراضية - سواءً قبل عبارة Select Case أو داخلها باستعمال Case Else - سيتم إرجاعها في حالة أن قيمة My_No_Digits ليست 2 و ليست 3.
نرجو الاستفادة و السلام.
إذا كنت تقصد التسطير الأخضر تحت عبارة End Function فالسبب هو أن الـ Compiler ينبهك إلى احتمال أن الدالة قد تعيد NULL ما قد يتسبب في حدوث خطأ أثناء التنفيذ. لكن الخطأ قد لا يحدث إذا تم استدعاء الدالة بالقيم المناسبة.
الدالة قد تعيد NULL إذا كانت قيمة المتغير My_No_Digits لا تساوي إحدى القيم الثلاث 0 أو 2 أو 3.
الحل: إما أن تحدد في البداية قيمة افتراضية تعيدها الدالة في حالة لم تكن قيمة My_No_Digits هي 0 أو 2 أو 3، أو أن تضيف إلى كتلة Select Case عبارة Case Else لإرجاع القيمة الافتراضية:
* هكذا:
كود :
Module My_function
Public Function format_my_Number(ByVal st As String) As String
Dim val As Double
If Trim(st) = "" Then st = 0
val = st
format_my_Number = val.ToString("##,###,###") ' تحديد قيمة افتراضية
Select Case My_No_Digits
Case 2
format_my_Number = val.ToString("##,###,###.##")
Case 3
format_my_Number = val.ToString("##,###,###.###")
End Select
End Function
End Module* أو هكذا:
كود :
Module My_function
Public Function format_my_Number(ByVal st As String) As String
Dim val As Double
If Trim(st) = "" Then st = 0
val = st
Select Case My_No_Digits
Case 2
format_my_Number = val.ToString("##,###,###.##")
Case 3
format_my_Number = val.ToString("##,###,###.###")
Case Else
format_my_Number = val.ToString("##,###,###") ' تحديد قيمة افتراضية
End Select
End Function
End Module*** لاحظ أن القيمة الافتراضية - سواءً قبل عبارة Select Case أو داخلها باستعمال Case Else - سيتم إرجاعها في حالة أن قيمة My_No_Digits ليست 2 و ليست 3.
نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
