نوشته شده توسط
reza_1199
یه مشکل کوچولو از زمانی شروع میشه که
از ساعت 07:30 تا 23:59:59 قانون حذف کردن درست کار میکند . ولی بعد از ساعت دوازده شب همه رکوردهای ثبت شده که از صبح ثبت شده و زمان حذف آن گذشته به صورت آزاد جهت حذف کردن قرار می گیره و حتی بعد از ساعت دوازده که اطلاعات ثبت شده اون 120 ثانیه اعمال نمیشه و باز کاربر به راحتی میتونه حذف کنه .
سلام
دلیلش اینست که زمان های ثبت شده قبلی بزرگتر از زمان وارد شده جدید میباشه . شرطی که بکار برده ای صحیح نیست . شما برای حذف نشدن رکورد شرط گذاشته ای که اگر زمان های ثبت شده قبلی کوچکتر از زمان ثبت شده جدید بود بعد از گذشت 120 ثانیه امکان حذف وجود نداشته باشد و این شرط صحیح نمی باشد چرا که بلافاصله بعد از 12 شب زمان های ثبت شده قبلی از زمان جدید بزرگترند.
راهکار اینست که اختلاف زمان ثبت شده قبلی با زمان جدید بدست آید و شرط گذاشته شود که اگر اختلاف این دو بیشتر از 120 ثانیه شد رکورد قابل حذف نباشه:
در کدهای زیر اختلاف دو زمان فعلی و قبلی بر حسب ثانیه در متغییر DDiff قرار داده داده ام و بعد این عدد رو داخل تابع قدر مطلق abs قرار داده ام که اگر اختلاف دو زمان منفی بود عدد منفی به مثبت تبدیل شود .بعد شرط گذاشته ام که اگر این عدد بزرگتر از 120 شد پیغام عدم حذف رکورد صادر بشه
این کدها رو جایگزین اون چند خط کد خودت که در رویداد حذف رکورد استفاده کرده ای بکن !
Dim DDiff As Double
Dim Timein As Date
Dim Timeout As Date
Timein = Text2
Timeout = Text1
DDiff = DateDiff("s", Timein, Timeout)
If Abs(DDiff) > 120 Then
Dim Y As String
Y = MsgBox("زمان حذف اين مورد به پايان رسيده است!", vbOKOnly + vbCritical + vbMsgBoxRight, "هشدار/ به کاربر")
Exit Sub
End If