PDA

View Full Version : سوال: کمک در نوشتن یک کد



soroush_k12
دوشنبه 07 تیر 1389, 08:56 صبح
با سلام خدمت دوستان عزیز
من نیاز به کدی دارم که مقداری را از روی یک تکست باکس از روی فرم خوانده و در صورت null بودن آن را به صفر تبدیل کند .در ضمن با کد زیر هم به نتیجه نرسیدم:
Dim r1 As Double
r1 = Me.Text598
If r1 = Null Then r1 = 0

amirzazadeh
دوشنبه 07 تیر 1389, 11:17 صبح
با سلام خدمت دوستان عزیز
من نیاز به کدی دارم که مقداری را از روی یک تکست باکس از روی فرم خوانده و در صورت null بودن آن را به صفر تبدیل کند .در ضمن با کد زیر هم به نتیجه نرسیدم:
Dim r1 As Double
r1 = Me.Text598
If r1 = Null Then r1 = 0
سلام
در چه رويدادي از اين كد استفاده ميكنيد؟

soroush_k12
دوشنبه 07 تیر 1389, 11:49 صبح
سلام
در چه رويدادي از اين كد استفاده ميكنيد؟
با سلام در رويداد on current
من فکر ميکنم نوع متغيير را اشتباه انتخاب ميکنم (double)
ايا متغيري داريم که بتواند هم مقدار عددي و هم مقدار null را قبول کند؟
لطفا کمک کنيد
در واقع من ميخواهم با رفتن به روي هر رکورد عدد اين تکست باکس خوانده شود و جهت محاسبه مقداري ديگر بکار رود ولي چون در بعضي ار رکوردها اين مقدار nullاست error ميدهد و پيغام run time و invalid use of null ميدهد .لذا من ميخواهم در آن رکرودهايي که اين مقدار null است ابتدا به صفر تغيير کند که در محاسبه مشکل ايجاد نشود

amirzazadeh
دوشنبه 07 تیر 1389, 12:42 عصر
با سلام در رويداد on current
من فکر ميکنم نوع متغيير را اشتباه انتخاب ميکنم (double)
ايا متغيري داريم که بتواند هم مقدار عددي و هم مقدار null را قبول کند؟
لطفا کمک کنيد
در واقع من ميخواهم با رفتن به روي هر رکورد عدد اين تکست باکس خوانده شود و جهت محاسبه مقداري ديگر بکار رود ولي چون در بعضي ار رکوردها اين مقدار nullاست error ميدهد و پيغام run time و invalid use of null ميدهد .لذا من ميخواهم در آن رکرودهايي که اين مقدار null است ابتدا به صفر تغيير کند که در محاسبه مشکل ايجاد نشود
سلام
معمولا متغيرهاي عددي به صورت پيشفرض مقدار صفر رو ميگيرند ولي به هر حال شما ميتونيد يكبار از كوئري اپديت استفاده كرده و تمامي مقادير null رو به صفر تغيير بديد.
...................
موفق باشيد

soroush_k12
دوشنبه 07 تیر 1389, 18:47 عصر
سلام
معمولا متغيرهاي عددي به صورت پيشفرض مقدار صفر رو ميگيرند ولي به هر حال شما ميتونيد يكبار از كوئري اپديت استفاده كرده و تمامي مقادير null رو به صفر تغيير بديد.
...................
موفق باشيد

با سلام از راهنمایی شما در خصوص استفاده از کوری آپدیت ممنونم.آیا دستوری وجود ندارد که بتوان در صورت null بودن یک فیلد آن را صفر کرد؟
البته این دستور را نوشتم ولی عمل نکرد:
if r1 = null then r1=0
لطفا راهمایی کنید

soroush_k12
دوشنبه 07 تیر 1389, 20:40 عصر
سلام
دوستان کسی نمیتونه کمکی بکنه. من کدی میخوام که در صورت null بودن یک متغیر اون رو به صفر تغییر بده.چون ادامه محاسبات رو دچار اشکال میکنه ( پیغام invalid use of null)
لطفا کمک کنید.

alirezabahrami
سه شنبه 08 تیر 1389, 08:44 صبح
سلام
دوستان کسی نمیتونه کمکی بکنه. من کدی میخوام که در صورت null بودن یک متغیر اون رو به صفر تغییر بده.چون ادامه محاسبات رو دچار اشکال میکنه ( پیغام invalid use of null)
لطفا کمک کنید.
سلام
فكر مي كنم اگر نمونه خودت را اينجا قرار بدهيد بهتر و زودتر ميتوان به نتيجه رسيد.
موفق باشيد

soroush_k12
سه شنبه 08 تیر 1389, 09:54 صبح
سلام
اين هم نمونه. با رفتن به روي سومين رکورد پيغام خطا ميدهد . ولي من ميخواهم در صورت null بودن فيلد nomber1 ابتدامقدار آن صفر شود تا در محاسبات اشکالي ايجاد نشود. صفر کردن تمام رکودها هم با آپديت کوري به درد من نميخورد.
مشکل من در واقع در اين دستور است که نميدانم چرا عمل نميکند:
If a1 = Null Then a1 = 0
با تشکر فراوان

alirezabahrami
سه شنبه 08 تیر 1389, 10:41 صبح
سلام
اين هم نمونه. با رفتن به روي سومين رکورد پيغام خطا ميدهد . ولي من ميخواهم در صورت null بودن فيلد nomber1 ابتدامقدار آن صفر شود تا در محاسبات اشکالي ايجاد نشود. صفر کردن تمام رکودها هم با آپديت کوري به درد من نميخورد.
مشکل من در واقع در اين دستور است که نميدانم چرا عمل نميکند:
If a1 = Null Then a1 = 0
با تشکر فراوان
سلام
چرا از كد كنترل خطاي ران تايم استفاده نميكنيد ؟
در ابتداي كدها ، كد زير را بنويس:


On Error GoTo a

در انتهاي كدها هم كدهاي زير را وارد كن :


a:
If Err.Number = 94 Then
Me.nomber1 = 0
End If

سپس كد زير را حذف كن !


'If a1 = Null Then a1 = 0 ' 'Çíä ÏÓÊæÑ Úãá äãí˜äÏ

موفق باشيد

mazoolagh
سه شنبه 08 تیر 1389, 16:11 عصر
تابع nz همین کاری رو که میخواین انجام میده


nz(me.text598,0)


در اینجا اگر me.text598 مقدارش null باشه این عبارت 0 برمیگردونه و بجای 0 میتونین هر عبارت دلخواه بگذارین

ضمنا این تابع برای مقادیر حرفی هم کار میکنه

alirezabahrami
سه شنبه 08 تیر 1389, 16:50 عصر
تابع nz همین کاری رو که میخواین انجام میده


nz(me.text598,0)


در اینجا اگر me.text598 مقدارش null باشه این عبارت 0 برمیگردونه و بجای 0 میتونین هر عبارت دلخواه بگذارین

ضمنا این تابع برای مقادیر حرفی هم کار میکنه
سلام
در تائيد فرمايش جناب mazoolagh ، بهترين و كوتاه ترين راه براي عمليات جمع و تفريق و ... بايك يا چندفيلد كه مقدارش null است استفاده از nz است .
بنابراين در كدهاي شما بجاي كد a1 = Me.nomber1 كد زير را جايگزين نمائيد!
ضمناً ديگر نيازي به كد If a1 = Null Then a1 = 0 را نخواهيد داشت .



a1 = Nz(Me.nomber1, 0)

موفق باشيد

soroush_k12
سه شنبه 08 تیر 1389, 19:02 عصر
سلام
در تائيد فرمايش جناب mazoolagh ، بهترين و كوتاه ترين راه براي عمليات جمع و تفريق و ... بايك يا چندفيلد كه مقدارش null است استفاده از nz است .
بنابراين در كدهاي شما بجاي كد a1 = Me.nomber1 كد زير را جايگزين نمائيد!
ضمناً ديگر نيازي به كد If a1 = Null Then a1 = 0 را نخواهيد داشت .



a1 = Nz(Me.nomber1, 0)

موفق باشيد
از همه دوستان به خاطر توجه به این موضوع ممنونم...