PDA

View Full Version : شرط در ورود اطلاعات



masoud903
یک شنبه 09 خرداد 1389, 18:58 عصر
در فرم که دارم در رویداد کلیک یه دکمه این کد رو وارد کردم اما اجرا نمیشه دلیلش چیه؟


If DLookup("payane", "sabt", "payane=" & Me.payane) And DLookup("date2", "sabt", "date2=" & Me.date2) Then
MsgBox "its on list"
DoCmd.Close
Else
DoCmd.OpenForm "2"
enf if


payane یه فیلدعددی هست
date2 فیلد تاریخه که من هم توی جدول هم توی فرم فرمتش رو short date قرار دادم یعنی با هم همخونی دارند

فکر میکنم مشکل در date2 هست و من باید به رشته تبدیلش کنم با این تابع؟( str)
اما ترکیب صحیحش با کد خودم رو نمیدونم
اگر راهنمایی کنید ممنون میشم یا اینکه راهکار جدید یا کد دیگه ای رو پیشنهاد بدین؟

id1385
یک شنبه 09 خرداد 1389, 21:08 عصر
سلام
شما تاریخ رو می خواهید بعداً استفاده کنید یعنی تو گزارش گیری و اینا ازش استفاده کنید ؟


بله

خب بهتره که تاریخ رو جداگانه وارد کنید تا خیلی راحت تر بتونید اطلاعاتتون رو بعداً ازش بگیرید.
مثلاً اینطوری وارد کنید :
Fld_year = 1389 Fld_mon=03 Fld_day=08



نه

خب فیلد رو بصورت تکست در نظر بگیرید.

کدتون رو یه کم دقیق تر بنویسید.

موفق باشید.

masoud903
یک شنبه 09 خرداد 1389, 21:35 عصر
من اطلاعات رو از جدول sheet1 با یه کوءری (بر اساس کد پایانه) توی فرمم فراخوانی میکنم و بعد از ویرایش توی جدول SABT با کد نویسی ذخیره میکنم
جدول SABT باید قابلیت اینو داشته باشه که مقادیر تکراری کد پایانه رو ذخیره کنه در عین حال مانع از این بشه که در هر روز از یه کد دوبار ثبت بشه
مثلا :
تاریخ 1389/03/10 کد پایانه 32134545 رو در SABT ذخیره میکنم و دیگه تو این تاریخ این کد اجازه ثبت نداره و دوباره 1389/03/11 میتونم این کد رو ذخیره کنم
من با کد زیر تونستم از تکرار کد پایانه جلوگیری کنم

If DLookup("payane", "sabt", "payane=" & Me.payane) Then
MsgBox "its on list"
DoCmd.Close
Else
DoCmd.OpenForm "2"
enf if

حالا میخوام شرط تاریخ رو اعمال کنم
یعنی اگر در تاریخ x یه کد پایانه ثبت شده باشه دیگه اجازه ثبت دوباره این کد در این تاریخ داده نشه .که کد زیر نتیجه بهم نداد


If DLookup("payane", "sabt", "payane=" & Me.payane) And DLookup("date2", "sabt", "date2=" & Me.date2) Then
MsgBox "its on list"
DoCmd.Close
Else
DoCmd.OpenForm "2"
enf if
متتظر راهنمایی دوستان و اساتید بزرگوار هستم

مهدی قربانی
دوشنبه 10 خرداد 1389, 01:22 صبح
سلام
استفاده از تابع Dlookup یا Dcount نمیتونه نتیجه صحیحی رو برگردونه چون شما در جدولتون ممکنه چندین کد مشابه و چندین تاریخ مشابه داشته باشید . در رخداد Before Update فیلد تاریخ کدهایی نوشته شده که خواسته شما رو برآورده میکنه .

masoud903
دوشنبه 10 خرداد 1389, 16:23 عصر
آقای قربانی واقعا ممنونم ازتون .دقیقا همون چیزی بود که میخواستم و بدرستی هم اجرا میشه مشکلم حل شد .کمک خیلی بزرگی بهم کردی



و یک سوال دیگه میشه آخر کد رو جوری عوض کرد که اگر رکورد تکراری بود بجای عملundo فرم به حالت ویرایش بره و بشه اطلاعات رکورد رو ویرایش کرد؟ کدش رو برام بذارید ممنون میشم


بازم از محبتتون ممنونم .خیلی لطف کردید

مهدی قربانی
دوشنبه 10 خرداد 1389, 23:58 عصر
سلام
قابلی نداشت ، پاسخ شما مثبته .