PDA

View Full Version : سوال: قرار دادن محدودیت زمانی برای فایل اکسس



samuel*
سه شنبه 30 خرداد 1391, 19:45 عصر
سلام
من یک فایل اکسس دارم که باهاش فاکتور میزنم میخوام ببینم راهی هست که برای یک یا چندتا از فرمهاش محدودیت زمانی یا محدودیت در تعداد استفاده بذارم
کسی کدی چیزی بلده ممنون میشم کمک کنید:قلب:

hf.farhadi
سه شنبه 30 خرداد 1391, 20:02 عصر
با سلام
این کد رو در رویداد On Open فرم مورد نظر کپی کن
If Time() >= #8:00:00 AM# And Time() <= #9:00:00 AM# Then
MsgBox "دسترسی به این فرم از ساعت 08:00 الی 09:00 امکانپذیر نمی باشد", vbExclamation, "توجه"

Cancel = True
End If


با این کد فرمتون از ساعت 8 صبح الی 9 صبح باز نمیشه که میتونی زمان مورد نظرت رو جایگزین کنی

samuel*
سه شنبه 30 خرداد 1391, 21:43 عصر
با سلام
این کد رو در رویداد On Open فرم مورد نظر کپی کن
If Time() >= #8:00:00 AM# And Time() <= #9:00:00 AM# Then
MsgBox "دسترسی به این فرم از ساعت 08:00 الی 09:00 امکانپذیر نمی باشد", vbExclamation, "توجه"

Cancel = True
End If


با این کد فرمتون از ساعت 8 صبح الی 9 صبح باز نمشه که میتونی زمان مورد نظرت رو جایگزین کنی

درود بر شما:تشویق:
فقط یه تغییر کوچیک تو این فرمول بدید
من میخوام مثلا از تاریخ 6/25/2012 این فرم دیگع قابل استفاده نباشه
ممنون

hf.farhadi
سه شنبه 30 خرداد 1391, 23:37 عصر
با سلام
نمیدونم هدفتون چیه ولی خدمتتون عرض کنم نقطه ضعف این گونه کنترلها اینه که کاربر با تغییر دادن ساعت و یا تاریخ سیستم میتونه اقدام به باز کردن فرم کنه
بهتر اینه که شما روی مقدار هایی که تو برنامتون ذخیره میکنید و قابل دستکاری نیست اقدام به اعمال شرایط کنترلی یا امنیتی کنین
یا علی

If Date > "date(6/25/2012)" Then
MsgBox "دسترسی به این فرم امکانپذیر نمی باشد", vbExclamation, "توجه"
Cancel = True
End If

samuel*
چهارشنبه 31 خرداد 1391, 00:39 صبح
ممنون از راهنماییتون
خوب مثلا اگه بخوام بیشتر از500 تا رکورد تو برنامه ثبت نشه باید چه دستوری بدم؟:خجالت:

hf.farhadi
چهارشنبه 31 خرداد 1391, 01:51 صبح
این هم یه نمونه خدمت شما که بیش از ثبت 5 رکورد قبول نمیکنه

البته جستجو بکنین از این قبیل نمونه ها تو تالار زیاد هست که دوستان زحمتشو کشیدن

samuel*
چهارشنبه 31 خرداد 1391, 09:09 صبح
این هم یه نمونه خدمت شما که بیش از ثبت 5 رکورد قبول نمیکنه

البته جستجو بکنین از این قبیل نمونه ها تو تالار زیاد هست که دوستان زحمتشو کشیدن

حالا من بخوام دستورات این فرم رو روی فرم خودم پیاده کنم چه تغییراتی باید بدم؟

hf.farhadi
چهارشنبه 31 خرداد 1391, 11:44 صبح
نمونه واضحه
شما یه تکست باکس در فرمت ایجاد کن و در control source اون مقدار یکی از فیلدهاتو بشمار
=Count([Field Name])
بعد در رویداد Before Insert فرمت این کد رو جایگزین کن

Dim recCount As Integer

If Me.Field Name = 500 Then
MsgBox "تعداد رکوردها بیشتر از حد مجاز است", vbExclamation, "توجه"
Cancel = True
Me.AllowAdditions = False
Else
Me.AllowAdditions = True
End If
در رویداد ON Load فرمت هم این کد رو جایگزین کن

If Me.Field Name = 500 Then
Me.AllowAdditions = False
Else
Me.AllowAdditions = True
End If

samuel*
چهارشنبه 31 خرداد 1391, 23:19 عصر
میشه روی این نمونه برام پیاده کنید؟

hf.farhadi
پنج شنبه 01 تیر 1391, 00:20 صبح
نمونه اصلاح شد
شما فقط به محیط کد نویسی برین و عدد Text4 رو که برابر 5 است (Text4 = 5) با عددی که میخواین فرمتون غیر فعال بشه تغییر بدین (مثلاً همون 500 خودتون ) من برابر 5 قرار دادم که بتونین فایل رو تست کنین

samuel*
پنج شنبه 01 تیر 1391, 00:35 صبح
امیدوارم یه روز جبران کنم
واقعا لطف بزرگی کردید:قلب::بوس:

mehrangkhan
پنج شنبه 01 تیر 1391, 00:36 صبح
با سلام من این کد رو
If Date > "date(6/25/2012)" Then
MsgBox "دسترسی به این فرم امکانپذیر نمی باشد", vbExclamation, "توجه"
Cancel = True
End If
کپی کردم و در رویداد آن لود فرم کپی کردم ولی هیچ اتفاقی حاصل نشد

hf.farhadi
پنج شنبه 01 تیر 1391, 00:45 صبح
با سلام
دوست عزیز این کد میگه اگه تاریخ سیستم از تاریخ 6/25/2012 بزرگتر شد کد رو اجرا کنه
شما احتمالاً تاریخ سیستمتون رو تغییر ندادین تا نتیجه رو مشاهده کنین چون هنوز چهار روز تا تاریخ مذکور مونده

mehrangkhan
پنج شنبه 01 تیر 1391, 00:55 صبح
با سلام اتفاقاً این کارم انجام دادم ولی تغییری نکرد و عدم دسترسی نداد

hf.farhadi
پنج شنبه 01 تیر 1391, 00:56 صبح
با چه ورژنی کار میکنین تو 2003 من تست کردم جواب میده

mehrangkhan
پنج شنبه 01 تیر 1391, 01:05 صبح
با 2003 نشد

hf.farhadi
پنج شنبه 01 تیر 1391, 01:44 صبح
لطفاً نمونه بزارین

mehrangkhan
پنج شنبه 01 تیر 1391, 15:33 عصر
با سلام خدمت شمت دوست عزیز
من نمی تونم نمونه بذارم چون سرعت اینترنتم پایینه اگه شما محبت کنی ممنون میشم

samuel*
پنج شنبه 01 تیر 1391, 19:24 عصر
دستور رو باید کمی تغییر داد:لبخند:

If Date > #6/22/2012# Then
MsgBox "دسترس? به ا?ن فرم امکانپذ?ر نم? باشد", vbExclamation, "توجه"
Cancel = True
End If

یه مورد دیگه هم هست من یه فرم دارم که با زدن دکمه ای که روش ساختم مثل سوییچ برد اکسس فرم رو برام اجرا کنه وقتی محدودیت رکورد میدم درصورتیکه با این دکمه فرم رو باز کنم محدودیت غمل نمیکنه:عصبانی++:

hf.farhadi
پنج شنبه 01 تیر 1391, 21:54 عصر
چه لزومی داره که فرمتون مثل سوییچ برد اکسس معمولاً برای فرم Startup این کار رو انجام میدن و بر روی فرم Startup با زدن دکمه فرمهای دیگه باز میشه
اگه این کار رو بکنین مشکلتون حله

mehrangkhan
جمعه 02 تیر 1391, 15:57 عصر
با سلام دوست عزیز من مشکل محدودیت تاریخ رو حل کردم نمونه میذارم نگاه کن:چشمک:

hf.farhadi
جمعه 02 تیر 1391, 17:45 عصر
نمونه شما اصلاح شد

mehrangkhan
جمعه 02 تیر 1391, 19:42 عصر
با سلام فرقی نکرد با نمونه اصلاح شده من

hf.farhadi
جمعه 02 تیر 1391, 23:03 عصر
البته پیگیریتون جالبه
ولی کدی که شما قرار دادین( علامت => ) مسیر برنامه و تاپیک رو تغییر میده . منظور دوستمون از ایجاد تاپیک این بود که برنامه ای که در حال اجرا هست به یه تاریخ خاصی که رسید عدم دسترسی بده ولی با این کد ، فرم اصلاً اجرا نمیشه چون به هر حال از تاریخی که توی برنامه ثبت شده کوچکتر است. که درستش ( این علامت < و یا این علامت =< ) میباشد . در ضمن به قسمتی که تاریخ رو به برنامه معرفی کردن نیز توجه کن
"date(6/23/2012)"
که درستش کد زیر میباشد که دوست عزیزمون samuel* در یکی از پستها عنوان نمودن

#6/23/2012#
ضمناً یه خورده توجه میکردین این فرقها رو خودتون متوجه میشدین
موفق باشین

mehrangkhan
دوشنبه 05 تیر 1391, 15:46 عصر
ممنون از راهنمایی شما

migren
سه شنبه 17 اردیبهشت 1392, 17:04 عصر
من کد این کد رو توی BeforeInsert وارد میکنم


Dim recCount As Integer

If Me.Text4 = 5 Then
MsgBox "ÊÚÏÇÏ Ñ˜æÑÏåÇ È?ÔÊÑ ÇÒ ÍÏ ãÌÇÒ ÇÓÊ", vbExclamation, "ÊæÌå"
Cancel = True
Me.AllowAdditions = False
Else
Me.AllowAdditions = True
End If
و این کد رو توی Form_Open


If Me.Text4 = 5 Then
Me.AllowAdditions = False
Else
Me.AllowAdditions = True
End If
ولی وقتی که فرم رو اجرا میکنم ارور میده

103822
البته تمام عناصری که توی کد آورده شده بود رو اضافه کردم

مهدی ترابی
یک شنبه 14 مهر 1392, 21:12 عصر
با سلام و عرض خسته نباشید
لطفاً دستوری رو که میشه نام کامپیوتر رو (Computer Name) رو در Report اکسس 2003 چاپ کنه رو برام بنویسید
با تشکر