powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB-как отследить неверные данные
6 сообщений из 6, страница 1 из 1
VB-как отследить неверные данные
    #33407884
Юрий_Ш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация: TextBox отображает данные из ADODB.Recordset посредством задания св-в DataSource и DataField в программе при каждом перемещении по TreeView.
Как при вводе пользователем данных, не соотв. типу, и попытке перейти на другой элемент дерева "поймать" это событие и не покинуть текущую запись?

Буду рад любому совету
...
Рейтинг: 0 / 0
VB-как отследить неверные данные
    #33408083
kroost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
Private Sub Text1_Change()
      'обработка
End Sub
...
Рейтинг: 0 / 0
VB-как отследить неверные данные
    #33408092
AndreyMp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой тип данных должен вводиться? Можно прямо по нажатию клавишь отслеживать скажем цифры, или при потере фокуса текстбоксом проверять.
...
Рейтинг: 0 / 0
VB-как отследить неверные данные
    #33408298
AndreyF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У контрола есть событе Validate . Как думаете - нафига оно???

P.S А у формы еще есть метод ValidateControls - тоже полезная вещь.
...
Рейтинг: 0 / 0
VB-как отследить неверные данные
    #33408616
Юрий_Ш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что textBox ы создаются динамически в зависимости от выбранного в TreeView элементе (Элементы принадлежат к группам, каждая из которых предписывает элементу определенные атрибуты). Поэтому неизвестно текущее условие на вводимое значение. Поэтому validate, change мне неподходит. Как определить условие для textBox а по столбцу, из котогрого он в текущий момент берет данные? Я правильно думаю или есть какие-то более легкие пути? Контрол при щелчке не Treeview создаю так:

For Each i In actTree.rTreeBIND.Fields
Load TextFields(pmInt)
Load lbl(pmInt)
Set Me.TextFields(pmInt).DataSource = actTree.rTreeBIND
Me.TextFields(pmInt).DataField = i.Name
lbl(pmInt).Caption = i.Name
TextFields(pmInt).Left = TextFields(pmInt - 1).Left
TextFields(pmInt).Top = TextFields(pmInt - 1).Top + 400
TextFields(pmInt).Visible = True
lbl(pmInt).Left = lbl(pmInt - 1).Left
lbl(pmInt).Top = lbl(pmInt - 1).Top + 400
lbl(pmInt).Visible = True
pmInt = pmInt + 1
Next

' где actTree - активный элемент дерева,
' rTreeBIND - набор записей из связанной таблицы в зависимости от группы, к которой этот эл-т относится
...
Рейтинг: 0 / 0
VB-как отследить неверные данные
    #33408841
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всетаки наверное лучше использовать ВАЛИДАЙТ
но примерно так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Text1_Validate(Cancel As Boolean)
    
    'если используется рекордсет
    If rs.Fields(Text1.DataField).Type = adDate Then
        'ПРОВЕРКА
    End If
    
    'либо, если используется рекордсет
    If Adodc1.Recordset.Fields(Text1.DataField).Type = adDate Then
        'ПРОВЕРКА
    End If
End Sub

выберешь, тот тип, в зависимости от чего используешь для выборки данных

попробуй
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB-как отследить неверные данные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]