View Full Version : خطای VBA در زمان NULL یا ""
samaneh_h
چهارشنبه 01 آذر 1385, 14:35 عصر
من جستجو کردم ولی جوابی بدست نیووردم.لطفاً نمونه زیر رو ببینید.فرم رو اجرا کنید و وقتی ازتون چیزی خواست کاراکتر "a" رو وارد کنید. این فرم میاد و کسانی که توی فیلد کد شون حرف a تایپ شده نمراتشون رو با هم جمع میکنه.حالا فرم رو ببندین و دوباره اجرا کنید اینبار حرف t رو بزنید .از اونجایی که هیچکس حرف t توی کدش نیست فرم خالی برگردونده میشه .یه دکمه زیر فرم هست که گفتم اگر فیلد کد فرم خالی بود و دکمه زده شد پیغام nullvalue نشون داده بشه.ولی انگار راهی وجود نداره برای مقایسه مقدار null چون if اجرا نمیشه.کمک
راستی این راه ها رو هم تست کردم
if code="" then msgbox "nullvalue
if isnull(code) then msgbox "nullvalue
if code=null then msgbox "nullvalue
if len(code)<1 then msgbox "nullvalue
شاپرک
چهارشنبه 01 آذر 1385, 15:57 عصر
از این استفاده کن :
if IsNull(code) then
samaneh_h
پنج شنبه 02 آذر 1385, 07:41 صبح
شاپرک عزیز اگه نگاهی به راههایی که امتحان کردم بندازی این دستورم هست ولی متاسفانه باید عمل کنه و نمیکنه
moustafa
پنج شنبه 02 آذر 1385, 11:03 صبح
من هنوز فایل شما رو نگاه نکردم با توابع dcount یا dlookup نمی تونی شرط رو کنترل کنی
البته اگه به جواب نرسیدید بعد از ظهر روش کار می کنم
moustafa
پنج شنبه 02 آذر 1385, 18:44 عصر
بهتره کوئری را با make tableبه جدولی مثلا q تبدیل کنی و فرم رو به اون بوند کنی و کدهای زیر رو به یه منو یا ماکرو یا ..... انتساب کنی
DoCmd.SetWarnings False
DoCmd.OpenQuery "Query1", acViewNormal, acEdit
DoCmd.OpenForm "Query1", acNormal, "", "", , acNormal
اگه می خوای در صورت خالی بودن فرم ظاهر نشه
if dcount("*","q")>0 then
[LTR]DoCmd.SetWarnings False
DoCmd.OpenQuery "Query1", acViewNormal, acEdit
if dcount("*","q")>0 then
DoCmd.OpenForm "Query1", acNormal, "", "", , acNorma
else msgbox"null record"
end if
l[/LTR
karmand
شنبه 04 آذر 1385, 07:44 صبح
اگر اشتباه نکرده باشم پاسخ راحت تری وجود دارد
من فرم لود نوشتم
Private Sub Form_Load()
If Me.CurrentRecord < 1 Then
MsgBox "null value"
DoCmd.Close
End If
End Sub
شاپرک
شنبه 04 آذر 1385, 14:12 عصر
به جای شرطی که خودت گذاشتی این رو جایگزین کن.
به نظر من هم این روش بهتره ....جواب میده
If Me.CurrentRecord < 1 Then
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.