MyTetra Share
Делитесь знаниями!
Обработка значений всех полей формы ... или о пользе префиксов в названиях объектов.
Время создания: 16.03.2019 23:43
Раздел: !Закладки - VBA - Access - msa.polarcom.ru - 05 Формы
Запись: xintrea/mytetra_db_adgaver_new/master/base/1531972173gpsyzszz49/text.html на raw.githubusercontent.com

Обработка значений всех полей формы ... или о пользе префиксов в названиях объектов.

Есть некий документ - в данном случае просто форма, в котором находятся некие данные плюс реквизиты некого предприятия (Банковские там и пр....)
Задача:
     "Зачистить" (то есть задать значение 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)

'strName - имя формы, strPref - префикс (условие) поиска,

' bolPosition - расположение в названии (true -слева, false-справа)

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



Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования