نمایش نتایج 1 تا 7 از 7

نام تاپیک: خطای VBA در زمان NULL یا ""

  1. #1

    خطای VBA در زمان NULL یا ""

    من جستجو کردم ولی جوابی بدست نیووردم.لطفاً نمونه زیر رو ببینید.فرم رو اجرا کنید و وقتی ازتون چیزی خواست کاراکتر "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
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر دائمی آواتار شاپرک
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    ناکجاآباد
    پست
    1,157
    از این استفاده کن :

    if IsNull(code) then

  3. #3
    شاپرک عزیز اگه نگاهی به راههایی که امتحان کردم بندازی این دستورم هست ولی متاسفانه باید عمل کنه و نمی‌کنه

  4. #4
    کاربر دائمی
    تاریخ عضویت
    آذر 1384
    محل زندگی
    هر کجا هستم باشم آسمان مال من است پنجره -فکر- هوا- عشق- زمین مال من است.
    پست
    837
    من هنوز فایل شما رو نگاه نکردم با توابع dcount یا dlookup نمی تونی شرط رو کنترل کنی
    البته اگه به جواب نرسیدید بعد از ظهر روش کار می کنم

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آذر 1384
    محل زندگی
    هر کجا هستم باشم آسمان مال من است پنجره -فکر- هوا- عشق- زمین مال من است.
    پست
    837
    بهتره کوئری را با 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

  6. #6
    اگر اشتباه نکرده باشم پاسخ راحت تری وجود دارد
    من فرم لود نوشتم
    Private Sub Form_Load()
    If Me.CurrentRecord < 1 Then
    MsgBox "null value"
    DoCmd.Close
    End If
    End Sub

  7. #7
    کاربر دائمی آواتار شاپرک
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    ناکجاآباد
    پست
    1,157
    به جای شرطی که خودت گذاشتی این رو جایگزین کن.
    به نظر من هم این روش بهتره ....جواب میده

    If Me.CurrentRecord < 1 Then

تاپیک های مشابه

  1. str_replace , ereg_replace برای "n\" و "r\" و " "
    نوشته شده توسط sweb در بخش PHP
    پاسخ: 1
    آخرین پست: یک شنبه 29 بهمن 1385, 16:30 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •