View Full Version : سوال: الزام كاربر به وارد كردن تنها يكي از فيلدهاي هر ركورد
abdoreza57
جمعه 17 خرداد 1392, 12:59 عصر
سلام
تو فرمي كه تهيه كرده ام تو هر ركورد مي بايست يك نوع فيلد پر شده سپس فيلد Total فوكوس ميشود
من براي اين كار از كنترل Enabled استفاده كردم منتها تو پر كردن ركورد جديد به مشكل بر ميخورم همينطور كدهاي مختلفي تو فيلد ها قرار داده ام كه احتمالا ميشه با يه حلقه كنترل كرد !!
خلاصه : در صورتي كه فيلد A تغيير كرد بقيه فيلدها (BوC)نياز به تغيير ندارند و برعكس : كنترل خطا تو كدوم رويداد بايد قرار بگيره ؟
ممنون ميشم راهنمايي كنيد
خدا نگهدار
Abbas Amiri
جمعه 17 خرداد 1392, 13:49 عصر
سلام
تو فرمي كه تهيه كرده ام تو هر ركورد مي بايست يك نوع فيلد پر شده سپس فيلد Total فوكوس ميشود
من براي اين كار از كنترل Enabled استفاده كردم منتها تو پر كردن ركورد جديد به مشكل بر ميخورم همينطور كدهاي مختلفي تو فيلد ها قرار داده ام كه احتمالا ميشه با يه حلقه كنترل كرد !!
خلاصه : در صورتي كه فيلد A تغيير كرد بقيه فيلدها (BوC)نياز به تغيير ندارند و برعكس : كنترل خطا تو كدوم رويداد بايد قرار بگيره ؟
ممنون ميشم راهنمايي كنيد
خدا نگهدار
سلام
برای رکورد جدید از روش زیر استفاده کنید:
Private Sub Form_Current()
If Me.NewRecord Then
Me.A.Enabled = True
Me.B.Enabled = True
Me.C.Enabled = True
End If
End Sub
اما شما رفتار کنترل ها را نسبت مقادیر موجود ، دقیقا مشخص نکرده اید . چرا که در زمانی که به رکورد جدید می رویم وضعیت فعال بودن کنترلها بایستی چیده شود .
ضمن اینکه مقدار کنترل A که تغییر می کنه ، آنطور که در کدهای A_AfterUpdate نوشته اید ، تغییراتی ایجاد می کند .
abdoreza57
شنبه 18 خرداد 1392, 09:29 صبح
سلام
ضمن تشكر بابت وقتتون ، ايراد كد قبلي با اين تغيير قابل تحصيل هست ولي سوال اينكه چرا دستور فوق با And قابل اجرا نميشود ؟ تو نمونه اولي بين دو دستور فوق از And استفاده كرده بودم ! چون خيلي از مواقع با اين مشكل مواجه ميشم لطف كنيد بگيد اصولا دستورAnd را كجا بايد و نبايد استفاده كرد؟
If Me.A > 0 Then
Me.B.Enabled = False
Me.C.Enabled = False
Else
Me.B.Enabled = True
Me.C.Enabled = True
End If
خدا نگهدار
Abbas Amiri
شنبه 18 خرداد 1392, 23:55 عصر
ضمن تشكر بابت وقتتون ، ايراد كد قبلي با اين تغيير قابل تحصيل هست ولي سوال اينكه چرا دستور فوق با And قابل اجرا نميشود ؟ تو نمونه اولي بين دو دستور فوق از And استفاده كرده بودم ! چون خيلي از مواقع با اين مشكل مواجه ميشم لطف كنيد بگيد اصولا دستورAnd را كجا بايد و نبايد استفاده كرد؟
دلیل این امر واضحه کاربرد اپراتور AND برای ارزیابی مقادیر منطقی است و نه مقدار دادن به مقادیر کنترلها (به استثنای کنترلهایی که مقادیر منطقی می پذیرند : CheckBox,OptionbBox,...)
کار این اپراتور دقیقا همان است که در جبر بولی خواندیم . چنانچه دو عبارت را AND کنیم فقط درصورتی نتیجه True میشود که هر دو عبارت درست باشند درغیر اینصورت حاصل False یا صفر خواهد شد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.