Member 13396059 Ответов: 2

Ошибка выполнения 3021 в VB6


Я работаю в VB6 и получаю ошибку времени выполнения 3021, и я дал свой код ниже, когда я запускаю код, я могу просматривать данные и с этим получаю ошибку 3021 в nme=rs!NameofTest.pls помогите мне.

Что я уже пробовал:

Private Sub view_Click()

    Dim name, nme As String
    nme = rs!NameofTest
    name = CInt("&H" & nme)
    Select Case name
        Case name
                If name = 1 Then
                    If Text19.Text = glucose.Caption Then
                        display
                    End If
                ElseIf name = 2 Then
                    If Text19.Text = chol1.Caption Then
                        display
                    End If
                ElseIf name = 3 Then
                    If Text19.Text = bun1.Caption Then
                        display
                    End If
                ElseIf name = 4 Then
                    If Text19.Text = crtn1.Caption Then
                        display
                    End If
                ElseIf name = 5 Then
                    If Text19.Text = urea1.Caption Then
                        display
                    End If
                End If
         Case Else:
                MsgBox "Record not Found..!!"
                Text19.Text = ""
        End Select
        
        If rs.EOF = False Or rs.BOF = False Then
            
        Do Until rs.EOF = True Or rs.BOF = True
            rs.update
            rs.MoveNext
            view_Click
        Loop
        Else
            MsgBox "no Matching Record"
        End If
        
End Sub

Maciej Los

Что такое точное сообщение об ошибке? Был ли объявлен и инициирован объект [rs]? Вы пробовали сделать проверку id [rs] объекта полностью заполненным?

2 Ответов

Рейтинг:
1

Patrice T

пробовать

nme = rs.NameofTest


Member 13396059

Если я попробую как nme =rs.NameofTest, я получу ошибку как "метод или элемент данных не найден"

Patrice T

да,но мы не знаем, что такое rs.

Member 13396059

Dim rs как новый набор записей adodb.

Patrice T

А Ват должен быть самым именитым ?

Member 13396059

в нем хранится название выполненного теста
например: глюкоза,холестерин и так далее...

Patrice T

Мы не можем угадать код, который вы не показали.

Richard Deeming

Это VB6, так что rs!NameofTest технически это правильно, хотя и не особенно приятно. :)

Взрыв! (Восклицательный оператор) в VBA | Byte Comb[^]
"Оператор bang предоставляет доступ с поздней привязкой к элементу объекта по умолчанию, передавая ему в качестве строкового аргумента имя литерала, следующего за оператором bang."

Эквивалент будет следующим:

rs.Fields("NameofTest").Value
- хотя, благодаря некоторым хитроумным дизайнерским решениям, вы могли бы опустить .Fields и .Value если бы ты захотел:
rs("NameofTest")

Patrice T

Я этого не знал :)

Richard Deeming

У меня в мозгу выжжено огромное количество несуществующих и бесполезных знаний! :Д

Patrice T

То же самое для меня, но с более несуществующими языками семейства xBase.

Member 13396059

ВСЕ ЕЩЕ ПОЛУЧАЮ ТУ ЖЕ ОШИБКУ :(