Dim cn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        cn.ConnectionString = "dsn=wwg_odbc;uid=wzl;pwd=wwg"
        cn.Open
        rs.ActiveConnection = cn
        rs.Open "select * from user_table where user_id='" & Trim(txt_user_id.Text) & "'"
        If rs.RecordCount = 0 Then
            rs.Open "insert into user_table (user_id,user_pass,name,tel,mace,date,readme) values ('" & Trim(txt_user_id.Text) & "','" & Trim(txt_user_pass.Text) & "','" & Trim(txt_name.Text) & "','" & Trim(txt_tel.Text) & "','" & 0 & "','" & Date & "','" & Trim(txt_readme.Text) & "')"
        Else
            MsgBox "此用户名已注册 , 请更改!", 48, wzl
            Exit Sub
        End If
以上代码运行后老弹出此用户名已注册 , 请更改!是怎么回事呀!

解决方案 »

  1.   

    补充txt_user_id.Text中的值数据库中是没有的.
      

  2.   

    rs.ActiveConnection = cn
    這樣的寫法很少看見ei你是不是反復調用,當你沒有這個用戶信息的時候,你加入這個用戶信息,然後別的地方又去檢查,當然就是用戶名被注冊了
      

  3.   

    我拷没人帮忙解决一下吗?
    提示每次rs.RecordCount的值都为-1
      

  4.   

    有时候用RecordCount会返加一个不正确的值.例如:返回-1.
    建议判断时用EOF和BOF.        If rs.EOF AND RS.BOF  Then
                rs.Open "insert into user_table (user_id,user_pass,name,tel,mace,date,readme) values ('" & Trim(txt_user_id.Text) & "','" & Trim(txt_user_pass.Text) & "','" & Trim(txt_name.Text) & "','" & Trim(txt_tel.Text) & "','" & 0 & "','" & Date & "','" & Trim(txt_readme.Text) & "')"
            Else
                MsgBox "此用户名已注册 , 请更改!", 48, wzl
                Exit Sub
            End If
      

  5.   

    会ADO吧?
    看看帮助,将CNN的游标类型设为"客户端游标"!