Что означает эта ошибка VB6? - PullRequest
0 голосов
/ 08 апреля 2011

Ошибка времени выполнения '91':

Переменная объекта или С переменной блока не установлена ​​

Я использую VB6

ОК, вот мой код

Private Sub Form_Load()
    lblIDNumber.Caption = UserID

    With datPersonal.Recordset
        .Index = "idxid"
        .Seek "=", UserID

        LockTextboxes

    End With

End Sub

Public Sub LockTextboxes()
    With txtDateHired
        .Locked = True
    End With

    With txtBirthday
        .Locked = True
    End With

    With txtGender
        .Locked = True
    End With

    With txtAddress
        .Locked = True
    End With

    With txtContact
        .Locked = True
    End With

    With txtStatus
        .Locked = True
    End With

    With txtPosition
        .Locked = True
    End With

    With txtBasicSalary
        .Locked = True
    End With

    With txtReligion
        .Locked = True
    End With
End Sub

Ответы [ 6 ]

2 голосов
/ 08 апреля 2011

Вы не инициализировали datPersonal.Recordset.

2 голосов
/ 08 апреля 2011

Обычно это происходит при вызове метода объекта, который не установлен.

1 голос
/ 07 ноября 2012

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

1 голос
/ 08 апреля 2011

Исходя из ваших предыдущих вопросов, я предполагаю, что datPersonal относится к ADO Datacontrol.Строка подключения и критерии выбора элемента управления данными могут быть установлены во время разработки, и при запуске приложения соединение и набор записей автоматически открываются.

Тот факт, что вы получаете эту ошибку, указывает либо на то, что строка соединения и выбор не были указаны, либо на выполнение следующего кода:

Set datPersonal.Recordset = Nothing
1 голос
/ 08 апреля 2011

Вам нужно инициализировать классы, прежде чем их можно будет использовать.Предполагая, что datPersonal.Recordset на самом деле является классом Recordset, вам нужно будет сделать что-то вроде следующего:

Set datPersonal.Recordset = New ADODB.Recordset

Вам также необходимо убедиться, что вы добавили ссылку на объекты данных ActiveX в свой проект.

Обратите внимание на следующее:

Добавить ссылку на ADO

Использование набора записей

1 голос
/ 08 апреля 2011

Это означает, что вы пытаетесь использовать переменную, но не установили для переменной никакого значения.В частности, переменная ссылается на объект, а не на тип значения.

Обычная причина - что-то вроде Dim obj As SomeClass, а не Dim obj As New SomeClass, т. Е. Не удалось установить переменную в ссылку на объект перед его использованием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...