PDA

View Full Version : سوال: غیرفعال شدن یک دکمه بعد از کلیک برروی آن



sadegh1944
دوشنبه 22 فروردین 1390, 12:28 عصر
باسلام
فرض کنید در فرم یک دکمه ثبت (command) داریم حالا من میخوام با کلیک برروی آن دکمه بعد از انجام عملیات مورد نظر بدون اینکه فرم بسته بشه همون دکمه غیرفعال بشه. چطورمیشه اینکار رو انجام داد.

ahmadpj
دوشنبه 22 فروردین 1390, 14:03 عصر
در انتهاي كد عمليات، خاصيت enable دكمه رو false كنين، مثلا

command1.Enable = false

sadegh1944
دوشنبه 22 فروردین 1390, 14:13 عصر
این کد رو امتحان کردم , ولی این کد زمانی جواب میده که ما بخواهیم از طریق یک دکمه دیگر دکمه مورد نظر را غیر فعال کنیم . ولی من میخوام با کلیک بروی یک دکمه همون دکمه کلیک شده غیرفعال بشه

انگوران
دوشنبه 22 فروردین 1390, 15:17 عصر
موقعي كه فوكوس روي دكمه باشه اين كار امكانپذير نيست مي توني همچين كدي بنويسي تا اول فوكوس از روي اون برداشته بشه بعد دكمه غيرفعال بشه.

Me.Text1.SetFocus
Me.Command0.Enabled = False

ahmadpj
دوشنبه 22 فروردین 1390, 16:08 عصر
بله (حواسم به محدوديت هاي اكسس نبود) با روش پيشنهادي انگوران ديگه نبايد مشكلي باشه.

bemilove
شنبه 23 شهریور 1392, 11:57 صبح
موقعي كه فوكوس روي دكمه باشه اين كار امكانپذير نيست مي توني همچين كدي بنويسي تا اول فوكوس از روي اون برداشته بشه بعد دكمه غيرفعال بشه.

Me.Text1.SetFocus
Me.Command0.Enabled = False

اگر من بخواهم ، وقتی برنامه باز شد..کاربر بتواند یک کمبو باکس را یکبار که انتخاب کرد..در دفعه بعدی که برنامه باز شد غیر فعال شده باشد چه کار باید کرد.(برای یکبار کمبوباکسی انتخاب گرددوبعد برای همیشه غیر فعال )

alirezabahrami
شنبه 23 شهریور 1392, 16:52 عصر
اگر من بخواهم ، وقتی برنامه باز شد..کاربر بتواند یک کمبو باکس را یکبار که انتخاب کرد..در دفعه بعدی که برنامه باز شد غیر فعال شده باشد چه کار باید کرد.(برای یکبار کمبوباکسی انتخاب گرددوبعد برای همیشه غیر فعال )
با سلام
براي انجام اينكار بايد تعداد اجراهاي فرم در رجيستري يا يك جدول ذخيره شود و در رويداد load فرم چك شود كه اگر تعداد اجرافرم بيشتر از يك بود كمبوباكس غير فعال گردد.
نمونه ضميمه را ملاحظه كن!
فرم را چند بار اجرا و سپس ببند و نتيجه را ببين
يا علي

bemilove
یک شنبه 24 شهریور 1392, 08:26 صبح
با سلام
براي انجام اينكار بايد تعداد اجراهاي فرم در رجيستري يا يك جدول ذخيره شود و در رويداد load فرم چك شود كه اگر تعداد اجرافرم بيشتر از يك بود كمبوباكس غير فعال گردد.
نمونه ضميمه را ملاحظه كن!
فرم را چند بار اجرا و سپس ببند و نتيجه را ببين
يا علي
من نمونه حلاصه خود را با کد شما یکی کردم.
1 - اول کدی گذاشتم که جواب آپدیت را به صورت خودکار انتخاب گردد.(دیگه پیام نده).نمی دانم کد درست است یا نه؟؟
2- حالا تغییرات اعمال می گردد ولی دوباره که فرم باز می شود کمبوباکس قابل انتخاب دوباره است
اگر امکان دارد اصلاح بفرمائید....ممنون

alirezabahrami
یک شنبه 24 شهریور 1392, 19:32 عصر
من نمونه حلاصه خود را با کد شما یکی کردم.
1 - اول کدی گذاشتم که جواب آپدیت را به صورت خودکار انتخاب گردد.(دیگه پیام نده).نمی دانم کد درست است یا نه؟؟
2- حالا تغییرات اعمال می گردد ولی دوباره که فرم باز می شود کمبوباکس قابل انتخاب دوباره است
اگر امکان دارد اصلاح بفرمائید....ممنون
سلام
چی رو اصلاح کنم؟

bemilove
دوشنبه 25 شهریور 1392, 11:34 صبح
سلام
چی رو اصلاح کنم؟
با عرض معذرت فراوان..فایل را یادم رفت بزارم.....مشکل در فایل مشهود است

1- جلوگیری از پیام های جورواجو
2- برنامه بعد از اعمال تغییرات وبستن فرم..وخارج شدن از برنامه ...در بدو شروع دوباره کمبو باکس فعال است.

alirezabahrami
دوشنبه 25 شهریور 1392, 19:35 عصر
با عرض معذرت فراوان..فایل را یادم رفت بزارم.....مشکل در فایل مشهود است

1- جلوگیری از پیام های جورواجو
2- برنامه بعد از اعمال تغییرات وبستن فرم..وخارج شدن از برنامه ...در بدو شروع دوباره کمبو باکس فعال است.
سلام
دوست عزیز در نمونه خودت ازکدهائی که من درنمونه بکار برده بودم درست استفاده نکرده ای!
کد زیر باید در رویداد open یا Load فرم بکار رود .



Dim Num As Long
Text1 = DLookup("id", "table1", "") + 1
DoCmd.RunSQL "UPDATE table1 SET table1.ID =Text1;"
If Text1 > 1 Then
Combo1.Enabled = False
End If

همانطور که در پست قبل عرض کردم بايد تعداد اجراهاي فرم در رجيستري يا يك جدول ذخيره شود و در رويداد load فرم چك شود كه اگر تعداد اجرافرم بيشتر از يك بود كمبوباكس غير فعال گردد و برای همین منظور من یک جدول ایجاد کردم با یک فیلد با عنوان ID و با دیتاتایپ number که در نمونه شما این جدول وجود ندارد و صدور یکی از خطاها بخاطر نبود همین جدول و فیلد مربوطه است.
با 106 تشکری که تا حالا از شما شده بیشتر از اینها از شما انتظار میره.
یا علی