不可直接用表名,应用select * from password

解决方案 »

  1.   

    SQL语句中的表名名称与保留字冲突有多种解决方法
    1.换个表名,如pw
    2.将表名用括号括起来rs.Open "[password]", conn, adOpenKeyset, adLockPessimistic当然用select * from [password]也可以
      

  2.   

    还是有错误
    错误代码是:实时错误-2147217900(80040e14)
       syntax error in from clause
      

  3.   

    footballboy(郑创斌) 
            加括号也不用,
    错误代码:实时错误(13)
              类型不匹配
      

  4.   

    错误提示Invalid SQL statement;expected'INSERT','DELETE','UPDATE','PROCEDURE',or'SELECT'
    肯定是由于password不加括号造成的至于 错误代码:实时错误(13)类型不匹配
    你应该检查各变量的类型,数据库字段的类型,函数的参数类型是否正确,或者是否rs.Fields(1).Value = Str(txtlogin)这类表达式等号两边类型不匹配,注意数据库的第一列字段是rs.Fields(0).
    我感觉用函数Str()有问题,因为它把数值型变量转为字符串时,会在前面保留符号,若参数是正数,转换出来的字符串前面会有一个空格。这样会造成你的if语句的判断结果就总是false.你可以改用cstr()试试。说说你代码中的变量类型,数据库的字段类型
      

  5.   

    footballboy(郑创斌) ( ) 
              应该不是str()的问题,我定义的类型是文本类型的,至于据库的第一列字段是rs.Fields(0)这个我知道
      

  6.   

    我把代码改下了一下
    Dim conn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Private Sub cmdlogin_Click()
    Dim connstr As String
    connstr = "provider=microsoft.jet.oledb.4.0;" & "data source=jxyy.mdb"
    conn.Open connstr
    rs.CursorLocation = adUseClient
    rs.Open "密码表", conn, adOpenKeyset, adLockPessimistic
    rs.MoveFirst
    Do While Not rs.EOF
        If rs("用户名") = CStr(txtusename.Text) And rs("密码") = CStr(txtpassword.Text) Then *这句话有问题”
            Exit Do
            frmmain.Show
            frmlogin.Hide
        End If
        rs.MoveNext
    LoopEnd Sub但又发生了这个错误:
    错误代码:     实时错误(3705)
        operation is not allowed when the objects is open