就是用VB制作一简单的界面作为登录窗口,"用户名"和"口令",后台数据库是access,大家伙帮我看看这段代码有啥问题,我怎么看不出来哪出了问题,而且试了好多遍,发生这样,那样的错误,我贴上代码,大家瞧瞧```
 
Private Sub command1_Click()
  '数据有效性检查
  If Trim(txtuser) = "" Then
    MsgBox "请输入用户名"
    txtuser.SetFocus
    Exit Sub
  nameKey = Trim(txtuser.Text)
  End If
  If Trim(txtpwd) = "" Then
    MsgBox "请输入密码"
    txtpwd.SetFocus
    Exit Sub
  Else
  passwordKey = Trim(txtpwd.Text)
  End IfSet conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=book.mdb;"
conn.Open
sql = "select*from user where username='+nameKey+' and password='" + passwordKey + "' "
Set rst = conn.Execute(sql)If rst.EOF Or rst.BOF Then
   MsgBox "用户名或口令错误,请检查!"
   Exit Sub
Else
   Unload Me
   Form1.Show 1
End If
End Sub

解决方案 »

  1.   

    我重新试过了,我发现连接数据库是成功的,
       
    Set  conn  =  New  ADODB.Connection  
    conn.ConnectionString  =  "Provider=Microsoft.Jet.OLEDB.4.0;Data  source=book.mdb;"  
    conn.Open  只是在读取对象的时候发生错误,有点不理解,为什么会发生错误,也就是说这条语句  
    sql  =  "select*from  user  where  username='+nameKey+'  and  password='"  +  passwordKey  +  "'  "  
    Set  rst  =  conn.Execute(sql)  sql那条命令我觉得应该没错,那为什么下面那条语句会出句呢,有点不明白,请大家指点!
      

  2.   

    sql = "select * from [user] where username='"& nameKey &"' and password='"& passwordKey &"'"'建议楼主不要将保留字作为表名与字段名来使用
      

  3.   

    还有,这种SQL写法容易被SQL注入攻击,建议将表中的读出后再与输入的密码相比较
      

  4.   

    nameKey = Trim(txtuser.Text) 前面缺少一个 Else
      

  5.   

    If Trim(txtuser) = "" Then
        MsgBox "请输入用户名"
        txtuser.SetFocus
        Exit Sub
      nameKey = Trim(txtuser.Text)
      End If
    中间少了个else
      

  6.   

    rst.EOF Or rst.BOF 只用一个就够了
      

  7.   

    唉,实在是不小心,写程序千万要细心,其实最重要的就是把那个else拉掉了```汗呀~~~害得我自己还看了好久```但是还是谢谢大家的帮助啦,本帖已经结帖,大家不用回了,再次谢谢大家