PDA

View Full Version : برگرداندن حالت دیفالت



Mahsa Hatefi
چهارشنبه 09 آبان 1386, 09:19 صبح
سلام بر همه ی دوستان قدیم و جدید

یه فرم دارم با حدود 100 کنترل اعم از رادیو باتن و تکست باکس و کومبو و....
بعد از اعمال تغییرات متناسب با رکورد مورد نظر ویژگیهای دیفالت بعضی از این کنترل ها ( ویزیبل ، ولیو و.... ) تغییر می کند ( روی فرم ) حالا بعد از ذخیره آن اطلاعات مربوط به آن رکورد خاص می خواهیم ویژگیهای تمام کنترل ها به حجالت دیفالت باز گردد از چه دستوری باید استفاده کنیم
چونکه اگر بخواهیم تمام کنترل ها را یکی یکی با کد نویسی به حالت دیفالت برگردونیم زیاد حرفه ای نیست و خطوط زیادی را باید نوشت اگر دستوری ، کدی که بصورت کلی این کار را انجام دهد ، سراغ دارید ممنون می شوم

با تشکر

morteza_lll
چهارشنبه 09 آبان 1386, 12:44 عصر
سلام
فقط کافی بعد از ذخیره اطلاعات به رکورد بعدی که(باید خالی باشد ) برود درنتیجه تمامی آبجکت ها مقدار دیفالت را می گیرند

مهدی قربانی
چهارشنبه 09 آبان 1386, 13:54 عصر
سلام
به هر حال اگر لازم باشه که بعضی از کنترلها در خلال فرآیند ثبت و تغییر اطلاعات تغییر وضعیت داشته باشند کد نویسی ضروریه و ممکنه که حجم کد هم قابل توجه باشه ولی فکر میکنم اینجور مواقع استفاده از With Controls مناسبتر باشه

Private Sub FieldName_AfterUpdate()
With Controls
.Item("command8").Enabled = False
.Item("check2").Enabled = False
.Item("text10").Value = "ali"

End With

End Sub

Mahsa Hatefi
پنج شنبه 10 آبان 1386, 07:32 صبح
دوست عزیز

از لطف شما ممنونم . در موردی که فرمودین به رکورد بعدی برویم..... باید خدمتتون عرض کنم فرمم unbound هستش اینه که می خواستم ببینم امکانش هست با یه کد ساده همه ی کنترل ها رو به حالت دیفالت برگردوند .

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

از لطف شما سپاسگزارم در صورتی که به مورد تازه ای در این مورد رسیدین ممنون می شم اطلاع بدین

در ضمن دیشب به این نتیجه رسیدم که اگر کنترل های مشابه رو بصورت آرایه تعریف کرده بودم این کار عملی می شد و با یه کد همه رو برمی گردوندم . البته چطوری اونو بش فکر نکردم

موفق باشید

مهدی قربانی
پنج شنبه 10 آبان 1386, 13:52 عصر
فکر کنم این یکی نمونه کد کاربردی تر باشه ببینید می تونید ایده بگیرید :


Public Function ResetControls(ByVal frm As Access.Form) As Boolean
Dim bSuccess As Boolean
Dim ctl As Control
bSuccess = True
On Error Resume Next
For Each ctl In frm.Controls
Select Case ctl.ControlType
Case acCheckBox, acOptionGroup, acTextBox, acListBox, acComboBox
ctl.Value = ctl.DefaultValue
If (Err.number <> 0) Then
bSuccess = False
Err.Clear
End If
Case acSubform
bSuccess = bSuccess And ResetControls(ctl.Form)
End Select
Next
ResetControls = bSuccess
End Function

Mahsa Hatefi
دوشنبه 14 آبان 1386, 11:17 صبح
ایده جالبی بود دوست من متشکرم