Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Силblч
все работает!
в классе по текстбоксу

Option Explicit
Public WithEvents oTxtBox As MSForms.TextBox   'создаем элемент с отслеживанием его событий
'за назначение с отслеживанием событий отвечает оператор WithEvents
'(может применяться только в модулях классов)
'и события не все :(
'-- а пох! создадим статический текстбокс на форме и будем юзать :)
Private Sub oTxtBox_Change()
On Error GoTo err123
    With frmReports.txtValidate
        frmReports.idRowActive = Replace(oTxtBox.name, "txtValue", "")
        .ZOrder 0
        .top = oTxtBox.top
        .left = oTxtBox.left
        .Height = oTxtBox.Height
        .Width = oTxtBox.Width
        .BackStyle = fmBackStyleOpaque
        .BorderStyle = fmBorderStyleNone
        .TextAlign = fmTextAlignLeft
        .SpecialEffect = fmSpecialEffectEtched
        .value = oTxtBox.value
        .Visible = True
        .SetFocus
    End With
    Exit Sub
err123:
    MsgBox Error, , "ValidateEdit #" & Err
    Exit Sub
End Sub


в форме, где инициализируются динамические

Public Sub txtValidate_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo err123
    Select Case Me.Controls("txtFormat" & idRowActive).value
    Case "List", "List®"
    Case "Text", "Text®"
    Case "Number"
        If Not IsNumeric(Me.txtValidate) And Me.txtValidate <> "null" Then
            MsgBox "Требуется Число или слово 'null'", , "ValidateEdit"
            Cancel = True
            Exit Sub
        End If
    Case "Number®"
        If Not IsNumeric(Me.txtValidate) Then
            MsgBox "Требуется Число", , "ValidateEdit"
            Cancel = True
            Exit Sub
        End If
    Case "Date", "Date®"
        If Not IsDate(Me.txtValidate) Then
            MsgBox "Требуется дата", , "ValidateEdit"
            Cancel = True
            Exit Sub
        End If
    Case "Check", "Check®"
    Case "Select", "Select®"
    End Select
    Exit Sub
err123:
    MsgBox Error, , "txtValidate_BeforeUpdate"
    Exit Sub
End Sub

Private Sub txtValidate_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Me.Controls("txtValue" & idRowActive).value = Me.txtValidate.value
    Me.txtValidate.Visible = False
    On Error Resume Next ' бывает косячек, некогда досматривать :)
    Me.Controls("txtValue" & idRowActive).SetFocus
End Sub


в целом роде как на сейчас работает как надо :)
потестирую пока что :)

в общем концепция подходит
с чем всех нас и пряздрявляю на данном этапе


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.