Странность ADO

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
heep
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 26.12.2002 (Чт) 9:13

Странность ADO

Сообщение heep » 28.05.2007 (Пн) 14:22

Никто не сталкивался с таким приколом в ADO: Связываем TextBox с ADODB.Recordset. В кнопке ОК делаю UpdateBatch. Запускаю прогу. Вот если пальцами меняю в TextBox строку, то все нормально - изменения записываются в базу. А если программно, то ниче не пишется.

Текст примерно такой:

Option Explicit
Private WithEvents adoT As ADODB.Recordset

Private Sub Form_Load()
Set adoT = New ADODB.Recordset
adoT.ActiveConnection = CNN
adoT.CursorLocation = adUseClient
adoT.CursorType = adOpenDynamic
adoT.LockType = adLockBatchOptimistic
adoT.Open "select * from [Setup]"

Set Text1.DataSource = adoT
Text1.DataField = "TFile"
end sub

Private Sub Command1_Click()
Text1.Text = "qqq" 'не запоминает однако в cmOK_Click
End Sub

Private Sub cmdOK_Click()
adoT.UpadeBatch
End Sub

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.05.2007 (Пн) 14:38

SP6 на VB стоит?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

heep
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 26.12.2002 (Чт) 9:13

Сообщение heep » 28.05.2007 (Пн) 15:18

Да-SP6. Правда я подключил Microsoft ActiveX Data Objects 2.5 Library.
Хотя на компе присутвуют версии 2.6 и 2.7. Но для них почему то Help недоступен. Щас попробую версию 2.7

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.05.2007 (Пн) 15:20

2.7? Фи...
Есть давно 2.8, причём и к нему уже сервис-паки...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

heep
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 26.12.2002 (Чт) 9:13

Сообщение heep » 28.05.2007 (Пн) 15:21

Не помогло.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 28.05.2007 (Пн) 16:01

Обновление связанного поля происходит при потере фокуса... Пиши сразу в поле, не в текстбокс.
Лучший способ понять что-то самому — объяснить это другому.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Странность ADO

Сообщение Andrey Fedorov » 29.05.2007 (Вт) 6:28

heep писал(а):Private Sub cmdOK_Click()
ValidateControls
adoT.UpadeBatch
End Sub
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

heep
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 26.12.2002 (Чт) 9:13

Сообщение heep » 29.05.2007 (Вт) 7:35

Antonariy писал(а):Обновление связанного поля происходит при потере фокуса... Пиши сразу в поле, не в текстбокс.


Точно! При потере фокуса. Если мышой наступить на TextBox перед кнопкой OK - то работает. Похоже действительно придется сразу писать в поле или ставить фокус на TextBox. Спасибо!

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.05.2007 (Вт) 20:14

heep писал(а):Точно! При потере фокуса. Если мышой наступить на TextBox перед кнопкой OK - то работает. Похоже действительно придется сразу писать в поле или ставить фокус на TextBox. Спасибо!


А между прочим - чуть выше я дал пример как это надо делать по правильному. Это так, к слову... :lol:
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

heep
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 26.12.2002 (Чт) 9:13

Сообщение heep » 30.05.2007 (Ср) 7:19

Andrey Fedorov писал(а):
heep писал(а):Точно! При потере фокуса.
А между прочим - чуть выше я дал пример как это надо делать по правильному. Это так, к слову... :lol:

Прошу прощения что не ответил на Ваш совет. Но ValidateControl я пробовал и, к сожалению, не помогло :cry:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.05.2007 (Ср) 7:59

ValidateControls -- это не то, о чем говорили.
Это должна быть самописная функция, которая проверяет правильность ввода. Кстати, правильнее было бы вызывать ее вот так: If Not ValidateControls() Then Exit Sub.

Смотреть надо было на UpdateBatch.
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 30.05.2007 (Ср) 18:00

alibek писал(а):ValidateControls -- это не то, о чем говорили.
Это должна быть самописная функция, которая проверяет правильность ввода.


Вначале должна быть выполнена валидация контролов - для этого и ValidateControls...[/quote]
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 73

    TopList