Ошибка в ADO, Сохранение записи - VB

Узнай цену своей работы

Формулировка задачи:

Здравствуйте... Вопрос в конце кода...

Решение задачи: «Ошибка в ADO, Сохранение записи»

textual
Листинг программы
Private Sub Заполнить()
Dim rs As ADODB.Recordset
LST.Clear
TXT = ''
On Error GoTo bay
 
    'тут проверяю конект
 
    If Not CON Is Nothing Then
        If CON.State = 0 Then Set CON = Соединение()
    Else
        Set CON = Соединение()
    End If
 
    Set rs = New ADODB.Recordset
    rs.Open 'select * from тблУслуги', CON, adOpenStatic
' тут я проверку делаю
    If rs.EOF And rs.BOF Then
        GoTo ex
    End If
 
    With rs
        Do While .EOF = False
            LST.AddItem .Fields('Имя').Value
            LST.ItemData(LST.NewIndex) = .Fields('Код').Value
            .MoveNext
        Loop
    End With
'если пусто..перехожу сюда и закрываю RS
ex:
    If Not rs Is Nothing Then
        If rs.State = 1 Then rs.Close
        Set rs = Nothing
    End If
Exit Sub
'если ошибка сюда
bay:
MsgBox Err.Description, vbExclamation
 
' а вот тут и были проблеммы, я щас ооставлю тока Set rs = Nothing
' так как  при вышезложенных появлялась та ошибка. А т.к. процедура
' однотипная у меня для всех случаев, за некоторым исклчением. То в
' процедуре на Сохранении (если ошибка с полями) нижний код выдавал
' ошибку критическую с вылетом.(adOpenStatic у меня тока на заполнение списков)
    If Not rs Is Nothing Then
        If rs.State = 1 Then rs.Close(этот метод сбоил)
        Set rs = Nothing
    End If
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы