PDA

View Full Version : آيا مي توان شرطي در فرم الف بر مبناي انتخابي در فرم ب نوشت؟



Mahsa Hatefi
پنج شنبه 08 اسفند 1387, 10:02 صبح
سلام

آيا مي توان ؟
در فرم الف ابتدا دستور باز شدن فرم ب را بدهيم.
در همان فرم الف بعد دستور باز شدن فرم ب شرطي بنويسيم مبني بر اينكه اگر دگمه A كليك شد اين كار انجام شود و اگر دگمه B كليك شد آن كار انجام شود .

مثل كاري كه msgbox مي كند .

فرم الف
Dcmd.open Form B
if formB!Botton1 Clicked then
....
else
.....
end if

مهدی قربانی
پنج شنبه 08 اسفند 1387, 11:39 صبح
سلام
من دقيقاً متوجه هدف شما نشدم ، فرآيند مورد نظر رو يمقدار بيشتر تشريح كنيد و بفرمائيد چه اقدامي مي خواين صورت بديد .

Mahsa Hatefi
پنج شنبه 08 اسفند 1387, 23:47 عصر
استاد عزيز جناب قرباني از توجه تون ممنونم

فرمي دارم كه كار msgbox حاوي Yes No Cancel را بايد انجام دهد .

در فرم الف روند هاي مختلفي وجود دارد كه با select case جدا مي شود و اين بستگي به فرم ب دارد كه كدام كليد روي آن كليك شود . دگمه هايي كه مي خواهم استفاده كنم بيشتر از موارد موجود در msgbox است .
فرم ب مي خواهم شبيه فرم msgbox كه حاوي دگمه هاي yes no و.... است عمل كند و در مسير فرم الف case انتخاب شده را دنبال كند .

اميدوارم واضح گفته باشم

moustafa
شنبه 10 اسفند 1387, 19:11 عصر
شما يه تكست باكس مخفي بذار رو فرم و با هر كليك يه عدد يا عبارتي رو در اون وارد كن حسب اون عدد يا عبارت شرط رو تعيين كن
مثلا با كليك روي دكمه يك عدد يك وارد شه با كليك روي دكمه دو عدد دو وارد شه و ......
حالا اگه مقدار تست عدد يك بود پيغام الف رو بده اگه عدد دو بود پيغام دو و ........
حتي خود فرم هم مي تونه مخفي باشه

e601
شنبه 10 اسفند 1387, 22:16 عصر
سلام

فکر میکنم منظور دوستمون Mahsa Hatefi رو متوجه شده باشم.
ایشون میخوان بجای پیامهایی که توسط دستور MsgBox به کاربر اعلام میشه فرمی درست کنن که اینکار رو انجام بده البته با ظاهر سفارشی و دلخواه خودشون.

در زبانهای .Net هر دکمه خاصیتی داره بنام DialogResult که دقیقا واسه همین موضوع ساخته شده ولی متاسفانه در اکسس همچین چیزی وجود نداره
ضمن این که فکر نمیکنم روشی که moustafa عزیز ارائه داد جواب بده چون با قرار دادن دستور MsgBox در یک ساختار شرطی دستورات بعدی اجرا نمیشن تا کاربر یکی از دکمه های Yes یا No یا ... رو فشار بده. در واقع دستور به این صورت نوشته میشه:


If Msgbox()=vbYes Then ...

نمیدونم شاید اگه روی این موضوع کار بشه بتونیم این قضیه رو حل کنیم. خود من چند بار اومدم اینکار رو بکنم که راستش تنبلیم اومد!!!!
فعلا از همون MsgBox کلاسیک استفاده میکنم که البته با استفاده از ماژولی که در همین سایت هم ارائه شده عنوان دکمه های MsgBox هام فارسی هستش

موفق باشید...

Mahsa Hatefi
یک شنبه 11 اسفند 1387, 13:47 عصر
ضمن عرض تشكر از اساتيد گرامي همچنين آقا مصطفي كه بعد از سالي گذرشون اينطرفا افتاده .

خدمت دوستان عارضم رويه كه آقا مصطفي فرمودند درسته و شدنيه و من قبلا از اين شگرد استفاده كرده ام . اما توي اين روش همان فرم ب ، حاوي دستورات مبتني بر انتخاب كليد است نه فرم الف .

يعني وقتي در فرم الف دستور بازشدن فرم ب را مي دهيد به همراه آن ، مقداري نيز به تكست باكسي كه بطور مخفي در فرم ب قرار دارد مي دهيم . حالا در فرم ب با توجه به مقدار تعيين شده دستورات بعدي را در فرم پي مي گيريم .

اين روند براي جايگزيني فرمهاي msgbox روند بدي نيست اما منظورم نوع عملكرد فرم msgbox است نه خودش . همونطور كه جناب مسعودي فرموده بودند .