当前位置:编程学习 > VB >>

“实时错误:'91' 对象变量或with块变量未设置” 请问这是怎么回事?应该怎么办??

Private Sub CmdLogin_Click()

If Adodc1.Recordset.RecordCount <> 0 Then
   Adodc1.Recordset.MoveFirst
   While Adodc1.Recordset.EOF = False
         If Adodc1.Recordset.Fields("姓名") = txtusername.Text Then
            If Adodc1.Recordset.Fields("密码") = txtuserpassword.Text Then
               Unload Me
               Exit Sub
               MsgBox "登录成功"
            Else
               MsgBox "你输入的口令不正确,请重新输入"
            End If
         Else
            Adodc1.Recordset.MoveNext
            
         End If
    Wend
    If Adodc1.Recordset.EOF = True Then
       MsgBox "请输入正确的用户名和口令"
    End If
Else
    MsgBox "没有任何用户可以登录"
End If

End Sub

我已经建立了access数据库,而且也设置好了connectionstring,recordsource,怎么总是出现“对象变量或with块变量未设置呢,”烦死了, --------------------编程问答-------------------- 出错的时候,断点在哪条语句上啊

如果在
If Adodc1.Recordset.RecordCount <> 0 Then 
这条语句上的话,就要检查数据库能否正常连接了。
或者数据库已经连接上,是不是在什么地方又断开了

可以试试直接用ADO访问数据库,不要通过ADO控件 --------------------编程问答-------------------- 没错,就是在第一个语句上,
如果简单的在text控件上显示数据库每个字段的内容就没错,怎么用到这个上面就不行呢?恼火

怎么直接用ADO访问我的数据库呢,请教大侠!!! --------------------编程问答-------------------- LZ:将绑定连接改为代码连接.
具体做法:
新建工程时选数据工程,此时VB6集成调试环境左边工具箱内已加载了有关数据库编程必须的控件。
然后在FORM1窗体中添加ADODC控件和DATAGRID控件,将DATAGRID1的属性DATASOURCE选ADODC1,打开ADODC1控件属性页使用连接字符串,选生成,在提供者选项中选MICROSOFT jet 4.0 OLE DB Provider,然后按要求连接数据库等。在ADODC1控件属性页使用连接字符串空白文本窗口中就有一长串字符串,注意该字符串可复制到程序代码用于编程。ADODC1控件属性页的数据源内有命令文本(SQL)编写窗口可编写SQL查询语言。该窗口的SQL语句可复制到程序代码用于编程。
SQL查询语言主要结构为:
Select 查询字段 from 表名 Where 查询条件语句 [排序语句或分组语句]
查询字段必须分别用(西文)逗号分开或就用一个*号代替,上述查询中排序语句建议最好应用。
SQL查询语言如有错程序运行时告诉你出错,作相应改动即可。本人一般先按上述连接,SQL用"SELECT * FROM TabelName"作调试,无问题,用一个按钮控件将前述需复制的连接字符串和SQL查询语言先复制于按钮控件的CLICK事件中备着,以便放着以后使用。然后删去ADODC1控件,再添加ADODC1控件再添其他内容。 --------------------编程问答-------------------- 你改成我下面的这种就可以了,这个很简单,没必要写的你呢么复杂,你还用了循环语句

Private Sub CmdLogin_Click() 

If Adodc1.Recordset.RecordCount <> 0 Then 
        If Adodc1.Recordset.Fields("姓名") = txtusername.Text and Adodc1.Recordset.Fields("密码") = txtuserpassword.Text Then 
              Unload Me 
              MsgBox "登录成功" 

        Else 
            MsgBox "你输入的口令不正确,请重新输入"  
        End If
End Sub 
--------------------编程问答-------------------- ls这样更加不对了,你怎么知道第一个就是现在的用户,
所以最好的办法是直接查询有没有这个用户比较好,用循环就是效率比较低,还是听3楼的换个方式连接吧 --------------------编程问答--------------------    Dim cn As New ADODB.Connection, rs As New ADODB.Recordset 
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Program Files\VB98\gongcheng\db8.mdb;Persist Security Info=False" 
cn.Open 
rs.CursorLocation = adUseClient 
rs.Open STRSQL'就是查找该用户的语句
如果有就登陆  
   
ADODB.Connection这个动的要引用一下
MICROSOFE ACTIVEX DATA OBJECTS 2.* LIBRARY
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,