PDA

View Full Version : کاربرد nz



انگوران
پنج شنبه 05 بهمن 1385, 17:04 عصر
دوستان سلام ـ عبارت x=nz(me.text1.value)l یعنی چه ؟

Neeloofar
پنج شنبه 05 بهمن 1385, 20:37 عصر
دوستان سلام ـ عبارت x=nz(me.text1.value)l یعنی چه ؟

سلام

تابع فوق تقریبا شبیه IIF هست. این تابع یک مقدار میگیره و اگر مقدار برابر Null باشه مقداری که شما تعیین میکنی رو برمیگردونه. اگر مقدار برابر Null نباشه خودش رو برمیگردونه.


MsgBox Nz(Text1, "جعبه خالی است")

در مثال فوق اگر مقدار Text1 برابر Null باشه یعنی خالی باشه مقدار "جعبه خالی است" رو برای ما برمیگردونه. اگر Text1 پر باشه خب همان مقدار فعلی Text1 برگردونده میشه.
در ضمن اگر آرگومان دوم رو خالی بگذارید بجاش مقدار "" رو برمیگردونه.

خلاصه با کمک تابع NZ هرگز مقدار Null از Textها دریافت نمیکنیم که باعث بشه برنامه خطا بده. برای مثال شما Text1 رو خالی بگذار و دستور ذیل رو اجرا کن و نتیجه رو با بالا مقایسه کن.


MsgBox Text1

موفق باشید.

صبا9841
جمعه 06 بهمن 1385, 10:20 صبح
ضمن سپاس از راهنمایی دوست گرامی Neeloofar با توضیحات کاملشان، خلاصه ای از بررسی تقدیم میشود.

تابع NZ را میتوان جایگزین تابع If در عباراتی کرد که دارای متغیرهای با مقدار Null هستند. به شکلی از حجم فرمول نویسی هم کم میشود.
مثال از خود سایت اکسس که برای تعیین متغییر (varResult) :

حالت اول - با if و بدون NZ
varTemp = IIf(IsNull(varFreight), 0, varFreight)l
varResult = IIf(varTemp > 50, "High", "Low")l
که ابتدا مقادیر Null متغیر varFreight را برابر صفر قرار داده و درغیراینصورت خودش و بعد...

حالت دوم - با if و با NZ
varResult = IIf(Nz(varFreight) > 50, "High", "Low")l
با آوردن NZ میتوان Null را حذف کرده و دو عبارت را درهم ترکیب نمود.

حالت سوم - بدون if و با NZ
varResult = Nz(varFreight, "No Freight Charge")l
در اینصورت NZ جایگزین if میشود و ضمناً مقادیر null متغیر varFreight را هم کنترل میکند.

به این ترتیب x=nz(me.text1.value)l معادل حالت سوم است.

شاپرک
شنبه 07 بهمن 1385, 10:11 صبح
در ادامه توضیحات کامل دوستان :
به جای فیلدهایی که مقدار Null دارند عدد یا رشته دلخواه شما جایگزین میشود یا نشون داده میشود. (که این بستگی به شما داره که موقع update ازش استفاده کنید یا موقع نمایش )

moustafa
دوشنبه 09 بهمن 1385, 00:22 صبح
کاربرد تابع nz در محاسبات است جائیکه می خوایم عمل محاسباتی روی چند فیلد انجام بدیم اگه یکی از فیلدها خالی null باشه محاسبه انجام نمیشه اما اگه از تابع فوق استفاده کنیم چنانچه به هر نحوی یکی از فیلدها خالی شه مشکلی پیش نمیاد ومحاسبات انجام میشه
پس بهتره بجای :
text1=text2+3text3-text4
بنویسیم :
text1=nz(text2,0)+3nz(text3,0)-nz(text4,0)a
یا در هنگامه گزارش گیری اگه فیلدی از شرایط خالی باشه از چه مقدار یا شرطی گزارش گیری کنه مثلا تاریخ :
nz(forms!frm!rpt1,99/12/29