ورود

View Full Version : ایجاد کنترل بر روی فیلد تائید



mmha_85
چهارشنبه 11 مرداد 1385, 18:36 عصر
سلام خدمت تمامی دوستان
راه اندازی مجدد سایت رو به همگی تبریک میگم.
مسئله من این هستش که 1 فرم و زیر فرم دارم که می خواهم اگر در زیر فرم من اطلاعاتی وارد نشده است و رکوردی درج نشده، یک شرط در فرمم اعمال شود.
اگر بخواهم به طور واضح تر بیان کنم و بر روی فرمم یک کلید به نام تائید دارم که با فشردن این کلید من اجازه حذف، اضافه کردن و ادیت کردن در زیر فرم و اجازه حذف و ادیت کردن بر روی فرم رو از کاربرم می گیرم. حالا می خوام یک کنترل پشت این کلید تائید بذارم که بیاد چک کنه که اگه در زیر فرم من رکوردی نخورده است اجازه تائید به کاربرم نده.
میشه بگید چطوری میشه این کار رو انجام بدم؟
پیشاپیش از کمک دوستان ممنونم.

Ali_Fallah
چهارشنبه 11 مرداد 1385, 18:51 عصر
اگه در ست متوجه شده باشم... میتونی اینطور بنویسی
IF ISNULL(ME.Text2)Then COMMAND4.ENABLED=False

moustafa
چهارشنبه 11 مرداد 1385, 19:04 عصر
IF dcount("*","[table1]")=0Then COMMAND4.ENABLED=False

mmha_85
چهارشنبه 11 مرداد 1385, 19:27 عصر
IF dcount("*","[table1]")=0Then COMMAND4.ENABLED=False

ببخشید آقا مصطفی اینجا تیبل 1 کدوم تیبل منه؟ تیبل زیر فرم منه؟ میشه در مورد این کد توضیح بدید که dcount چی کار می کنه و دو قسمتی که در پرانتز نوشتید هر کدوم چی هستن؟
ممنون


اگه در ست متوجه شده باشم... میتونی اینطور بنویسی
IF ISNULL(ME.Text2)Then COMMAND4.ENABLED=False

اون چیزی من می خوام در حقیقت اینه که اگر رکوردی ثبت نشده بود به کابرم ارور بده. حال اگر من یک رکورد زده باشم و بر روی رکورد دوم ایستاده باشم اونوقت فکر می کنم که باز هم این شرط شما برقراره. (چون text 2 هنوز دیتایی نداره و خالیه) در صورتی که نباید برقرار باشه.

Ali_Fallah
چهارشنبه 11 مرداد 1385, 19:40 عصر
بنظر من اگه فایلت رو یا چیزی شبیه اون رو ضمیمه کنی بهتر میشه جواب داد
گاهی اوقات بعضی از فیلدها نباید خالی باشند که در این صورت این کد جواب میده ودر اینجا Text2 فیلدی که حتما بایستی پر بشه
ضمناً شما تا موقعی که رکوردی ثبت نکردی انتظار هیچ عملی نمیتونی داشته باشی و همانطور که فرم راباز کردی میتونی ببندی

mmha_85
چهارشنبه 11 مرداد 1385, 20:07 عصر
این هم نمونه فایلم
فرم مجوز تحویل کالا فرم اصلیه منه. من میخوام که اگر کد کالا رو زد و تعدادی براش نزد و یا اینکه اصلا در زیر فرم هیچ اطلاعاتی وارد نکرد. اجازه تائید بهش نده.
ممنون

moustafa
چهارشنبه 11 مرداد 1385, 22:53 عصر
بله table 1همون جدول زیر فرم هست
تابع dcount هم تعداد رکورد ها را با شروط خاص نشان میدهد که در اینجا شما هیج شرطی نداری
متاسفانه من به علت یه گرفتاری خاص فعلا نمی تونم رو فایلت کار کنم اما در اولین وقت ممکن اگه به جواب نرسیدی حتما روش کار میکنم

mmha_85
چهارشنبه 11 مرداد 1385, 23:00 عصر
این کد رو نوشتم.
خیلی جالب بود. ممنون. فقط من رکوردهایی که می خوام برام بشمره شرط داره. اگر فایل رو ببنید می تونین مشاهده کنین که من فقط رکوردهای یک شماره سند خاصم رو می خوام. میشه یه نمونه هم با شرط برام بنویسین که ببینم سینتکس کدش چطوریه؟

Ali_Fallah
پنج شنبه 12 مرداد 1385, 07:34 صبح
سلام کد زیر رو در رویداد Check21_BeforeUpdate بنویس احتمالاً همونی باشه که میخوای...
تغییر یافته SFRM ضمناً اسم زیر فرم رو به

If Me.sanad_no > 0 And IsNull(Form_SFRM.cod_kala) Then
MsgBox "خطا پیغام مورد نظر", 160, "خطا"
DoCmd.CancelEvent
End If
فرم هم بنویس BeforeUpdate در قسمت

Ali_Fallah
پنج شنبه 12 مرداد 1385, 07:40 صبح
فایل اصلاح شده ...

moustafa
پنج شنبه 12 مرداد 1385, 11:40 صبح
IF dcount("[fild1]","[table1]","[fild1]="&forms!form1!text1)= 0 Then COMMAND4.ENABLED=False
Endif

فیلد 1 فیلدی که می خواهی براش شرط بذاری و تکست 1 هم شرط
اگه دیدی جواب نمی ده کوتیشنها( ") را بردار یا دستکاری کن