ورود

View Full Version : عدم ثبت رکورد جدید درصورت خالی ماندن فیلد...



Ali_Fallah
شنبه 07 مهر 1386, 15:05 عصر
با سلام
فرض کنید تیبلی داریم با تعداد زیادی فیلد که دو تا از فیلدها تاریخ ورود و تاریخ خروج را ثبت می کنند
حال میخواهیم کدی بنویسیم که در صورت عدم درج تاریخ خروج امکان ثبت رکورد جدید میسر نباشد.
ضمناً ممکن است بین تاریخ ورود وتاریخ خروج مدت زمان زیادی طول بکشد .:گریه:

saeed razaee
شنبه 07 مهر 1386, 15:10 عصر
با سلام
شما در تیبل فیلد را انتخاب کنید و در قسمت پائین general در قسمت validation rul بنویسیدis not null و در قسمت validation text پیامی مثل تاریخ ورود نمی تواند خالی باشد بنویسید. موفق باشید

Ali_Fallah
شنبه 07 مهر 1386, 17:29 عصر
عرض کنم که ما بایستی بتوانیم رکورد شماره 1 را بدون درج تاریخ خروج ثبت کرده و از فرم خارج شویم ولی برای ثبت رکورد بعدی (رکورد شماره 2)حتماً باید تاریخ خروج رکورد اول قید شود.
-------
مطلبی که دوستمان پیشنهاد کرده اند بدین صورت هست که در همان رکورد اول باید تاریخ خروج ثبت شود که منظور من این نبود...

mmha_85
شنبه 07 مهر 1386, 21:33 عصر
کافی است با استفاده از کد
if recordset.recordcount > 1 then
شرایط رو برای رکوردها بجز رکورد اول اعمال کنین.
در حقیقت مقدار ارسالی این تابع، شماره رکورد شما است.
در مورد کدی که می خواین بنویسید کافی است که در هنگام ایجاد رکورد جدید این شرط رو اعمال کنین
if isnull (me.khorooj) then
msgbox "رکورد قبل فاقد تاریخ خروج است. ایجاد رکورد جدید امکان ندارد"
...
...
...
end if

منطورم از سه نقطه ها بقیه کارهایی هستش که مورد نظر شما است. فکر می کنم اینطوری مشکلتون حل بشه

Ali_Fallah
یک شنبه 08 مهر 1386, 09:35 صبح
اگر ممکنه نمونه برنامه ارائه کنید
متشکرم


کافی است با استفاده از کد
if recordset.recordcount > 1 then
شرایط رو برای رکوردها بجز رکورد اول اعمال کنین.
در حقیقت مقدار ارسالی این تابع، شماره رکورد شما است.
در مورد کدی که می خواین بنویسید کافی است که در هنگام ایجاد رکورد جدید این شرط رو اعمال کنین
if isnull (me.khorooj) then
msgbox "رکورد قبل فاقد تاریخ خروج است. ایجاد رکورد جدید امکان ندارد"
...
...
...
end if
منطورم از سه نقطه ها بقیه کارهایی هستش که مورد نظر شما است. فکر می کنم اینطوری مشکلتون حل بشه

mmha_85
یک شنبه 08 مهر 1386, 15:53 عصر
ببخشید! من کد رو اشتباه گفتم! اون کدی که من گفتم تعداد کل رکوردها تون رو میده و اشتباهی اون رو بجای این کد نوشتم:
Recordset.Absoluteposition
این کد شماره رکورد جاری رو به شما میده. فقط شماره رکوردها از 0 شروع میشه.
در نمونه آپلود شده، وقتی روی رکورد سوم برید به شما پیغام میده. شما می تونین جای اون پیغام کد مورد نظر خودتون رو بنویسید.

Ali_Fallah
دوشنبه 09 مهر 1386, 19:38 عصر
با سلام
نمونه برنامه را چک کردم
متاسفانه هیچ اتفاقی رخ نداد

mmha_85
دوشنبه 09 مهر 1386, 21:16 عصر
با سلام
من نمونه برنامه رو چک کردم. وقتی روی رکورد سوم قرار گرفتم پیغام میده. میشه شما یک بار دیگه هم چک کنین؟

Ali_Fallah
دوشنبه 09 مهر 1386, 21:26 عصر
با سلام شاید سوالم رو درست متوجه نشده باشید
منظور این هست که وقت که رکورد اول را ثبت کردیم
ممکنه ثبت رکورد دوم 10 روز دیگه باشه
ولی برای این کار یعنی ثبت رکورد دوم حتماً بایستی بعنوان مثال فیلد تاریخ خروج یا هر فیلد مورد نظردر رکورد اول خالی نباشه و در واقع برای ثبت رکورد دوم و ایجاد آن پرکردن تمامی فیلدهای رکورد اول یا بخشی از آن (بصورت دلخواه) اجباری باشه...
و در ادامه به همین ترتیب یعنی برای ثبت رکورد سوم ، چهارم و الی آخر بایستی تمامی فیلدهای رکورد قبلی خالی نباشند و...

mmha_85
دوشنبه 09 مهر 1386, 21:53 عصر
خب تمامی این مواردی که شما اشاره کردین با اجباری کردن فیلدتون بدست می آد. یعنی Required رو yes کنین تا تمامی این موارد که گفته شد بدست بیاد. چه چیزی هستش که شما از این خاصیت استفاده نمی کنین؟

Ali_Fallah
سه شنبه 10 مهر 1386, 19:00 عصر
درصورت Required=yes فیلد مورد نظر نبایستی موقع خروج خالی باشه...

mmha_85
شنبه 14 مهر 1386, 01:28 صبح
این نمونه رو نگاه کنین. امیدوارم بتونه تا حدودی مشکلتون رو حل کنه

Ali_Fallah
جمعه 15 آذر 1387, 18:48 عصر
به این سوال هم جواب مناسبی داده نشد ...

مهدی قربانی
شنبه 16 آذر 1387, 00:10 صبح
سلام
علي آقا اين نمونه با استفاده از رخداد Before Insert فرم و شيئ Recordset و همينطور حلقه خواسته شما رو پياده مي كنه .