这个VB6错误是什么意思?

时间:2011-04-08 08:01:31

标签: vb6

运行时错误'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 个答案:

答案 0 :(得分:2)

通常在调用未设置的对象的方法时发生。

答案 1 :(得分:2)

您尚未初始化datPersonal.Recordset。

答案 2 :(得分:1)

这意味着您正在尝试使用变量,但未将变量设置为任何值。具体而言,变量引用对象而不是值类型。

通常的原因是Dim obj As SomeClass而不是Dim obj As New SomeClass,即在使用之前未能将变量设置为对象的引用。

答案 3 :(得分:1)

您需要先初始化类才能使用它们。假设datPersonal.Recordset实际上是一个Recordset类,那么您将需要执行以下操作:

Set datPersonal.Recordset = New ADODB.Recordset

您还需要确保在项目中添加了对ActiveX数据对象的引用。

看看以下内容:

Add reference to ADO

Using a recordset

答案 4 :(得分:1)

从您之前的问题我假设datPersonal指的是ADO Datacontrol。 datacontrol的连接字符串和选择标准可以在设计时设置,当应用程序启动时,会自动打开连接和记录集。

您收到此错误的事实表明未指定connectionstring和selection,或者执行了以下代码:

Set datPersonal.Recordset = Nothing

答案 5 :(得分:1)

也许问题已经以另一种方式解决了,但您可以尝试将代码从form_load移动到form_activate