View Full Version : بستن کامل کلیدهای Alt+F4 و Ctrl+F4
emami.sie
یک شنبه 25 مرداد 1388, 13:06 عصر
با سلام خدمت دوستان واساتید محترم
چگونه می توان بطور کامل کلیدهای Alt+F4 و Ctrl+F4 را با باز کردن دیتابیس از کار انداخت، چه به کمک ماکرو و چه به کمک ماژول...
ضمنا من search کردم ولی جواب درستی پیدا نکردم و همگی با نوشتن کدی در رویداد on key press هر فیلد و فرم و گزارش این کارو کرده بودن و این خیلی زمان بره چون برنامه من تعداد بسیار زیادی فرم و گزارش داره...
واقعا ممنون می شم اگه راهنمایی بفرمایید
یا علی
emami.sie
سه شنبه 09 اسفند 1390, 11:55 صبح
دوستان براي بستن alt+F4 روشي رو تست كردن كه نياز به نوشتن اين كد براي تمام كنترلهاي يك فرم نباشه؟؟؟ و تنها با يك بار نوشتن اين كد در كل فرم اعمال بشه....(مانند ماكروي Autokeys براي Ctrl+F4
If (KeyCode = 115 And Shift = 4) Then
DoCmd.CancelEvent
End If
ممنون ميشم اگه راهنمايي بفرماييد
يا علي
aromega65
سه شنبه 09 اسفند 1390, 17:59 عصر
سلام تو Autokeys برای کلیدی که میخوای بسته بشه خاصیت beep رو تعریف کن
emami.sie
شنبه 27 اسفند 1390, 11:51 صبح
سلام تو Autokeys برای کلیدی که میخوای بسته بشه خاصیت beep رو تعریف کن
با سلام و تشكر
عذر ميخوام اگه ميشه دقيقا بفرماييد براي از كار انداختن Alt+F4 در كل برنامه چي بايد تو ماكرو بنويسم؟؟
اگه نمونه بذاريد خيلي ممنون ميشم...
يا علي
aromega65
شنبه 27 اسفند 1390, 22:24 عصر
سلام
اینم نمونه با ذکر برخی از SYNTAX ها
8433984338
emami.sie
یک شنبه 28 اسفند 1390, 06:49 صبح
سلام
اینم نمونه با ذکر برخی از SYNTAX ها
8433984338
سلام دوست من
ممنون از جوابتون ولي مشكل من با Alt+F4 هستش درحاليكه شما Ctrl+F4 رو در AutoKeys غير فعال كرديد... ببينيد در ماكروي AutoKeys امكان تعريف Alt با F4 (كه كل برنامه اكسس رو ميبنده) وجود نداره ضمن اينكه براي تركيب Alt بايد از علامت % استفاده كرد...
حالا من دنبال يه راه حل ديگه هستم براي از كارانداختن كامل Alt+F4 در كل برنامم...
واقعا ممنون ميشم اگه دوستان راهنمايي كنن...
يا علي
RESMAILY
دوشنبه 29 اسفند 1390, 11:27 صبح
به نام خدا
تنها با يك بار نوشتن اين كد در كل فرم اعمال بشه
با سلام. اگر درست متوجه منظورتان شده باشم. اگر فقط يك فرم باشد، مي توانيد اين كد را در رويداد keydown خود فرم بگذايد. البته مي دانيد كه قبلا بايد keypreview را مثبت نماييد. وگرنه براي كل برنامه فكر كنم حداقل روي تك تك فرم ها بايد اين كد را بگذاريد.
Abbas Amiri
سه شنبه 01 فروردین 1391, 00:46 صبح
باسلام ، سال نو مبارک
جهت منظور شما باید یک متغیر سراسری در یک ماژول تعریف کنید
Public blnClose as Boolean
برای فرمیک Button جهت بستن فرمها وجودداشته باشد و دررویداد کلیک آن مقدار متغیرفوق True شود وسپس فرمان بستن فرم تایپ شود
Private Sub cmdClose_Click()
blnClose = True
DoCmd.Close
End Sub
و در روال Unload فرم هم
Private Sub Form_Unload(Cancel As Integer)
Cancel = Not blnClose
‘ اگر برای همه فرمها میخواهید خط زیر هم اضافه شود
blnClose = False
End Sub
این عملیات برای تمام فرمها و یا حداقل جهت فرم اصلی که همیشه باز میماند ، الزامی است . البته پس از اعمال این تغییرات در صورتی که فرمی باز باشد بغیر ازفشردن Button بستن فرم ، به هیچ عنوان نمی توان آنرا بست وحتی پنجره اکسس هم بسته نخواهد شد.
همچنین فرمها از حالت اجرا به حالت طراحی نمی روند چون در این وضعیت روال Onload فعال می شود
بدیهی است که اعمال این تغییرات پس از تکمیل پروژه قابل اجراست ودر مرحله طراحی بیشتر مزاحمت ایجاد می کند
emami.sie
چهارشنبه 02 فروردین 1391, 06:57 صبح
با سلام خدمت استاد عزيزم جناب اميري و با عرض تبريك سال نو خدمت شما و ساير دوستان
واقعا ممنونم از لطفتون، مشكل بزرگي رو برام حل كرديد... (البته مثل هميشه ساده و اصولي)
موفق باشيد
يا علي
emami.sie
چهارشنبه 02 فروردین 1391, 07:03 صبح
به نام خدا
با سلام. اگر درست متوجه منظورتان شده باشم. اگر فقط يك فرم باشد، مي توانيد اين كد را در رويداد keydown خود فرم بگذايد. البته مي دانيد كه قبلا بايد keypreview را مثبت نماييد. وگرنه براي كل برنامه فكر كنم حداقل روي تك تك فرم ها بايد اين كد را بگذاريد.
با سلام و تشكر
اين روش رو قبلا تست كرده بودم ولي جواب نداد...
يا علي
RESMAILY
چهارشنبه 02 فروردین 1391, 11:12 صبح
به نام خدا
با سلام. با تشكر از آقاي اميري. صرفا جهت تكمله عرض مي شود. كد را بصورت زير بنده امتحان كرده ام و جواب مي دهد. در2003 و 2007
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 115 And Shift = 4 Then DoCmd.Beep
End Sub
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.