Обработка всех полей формы ... или о пользе префиксов в названиях объектов.
Есть некий документ - в данном случае просто форма, в котором находятся некие данные плюс реквизиты некого предприятия (Банковские там и пр....)
Задача:
"Зачистить" (то есть задать значение NULL) этим реквизитам, и только им - остальные поля оставить как есть.
Причем:
В отличии от остальных полей формы, название каждого "зачищаемого" поля реквизитов начинается с "Rec" ( "RecName" =Название предприятия, "RecBank"= Название банка и т.д.) , если нет то следует привести поля под это правило.
Тогда:
...код зачистки будет выглядеть примерно так:
Dim MyControl As Control
Dim MyControlName As String
For Each MyControl In Me.Controls
With MyControl
MyControlName = .Name
If Left(MyControlName, 3) = "Rec" Then
.Value = Null
End If
End With
Next MyControl
Второй вариант решения такой-же задачки
Прислал Алексей : alexblack@yandex.ru
Private Sub ClearControls(strName As String, strPref As String, bolPosition As Boolean)
Dim ctrl As Control
Dim ctrlName As String
For Each ctrl In Forms(strName).Controls
With ctrl
ctrlName = .Name
If bolPosition = True Then
If Left(ctrlName, Len(strPref)) = Trim(strPref) Then
.Value = Null
End If
ElseIf bolPosition = False Then
If Right(ctrlName, Len(strPref)) = Trim(strPref) Then
.Value = Null
End If
End If
End With
Next ctrl
End Sub
|