一个注册窗体,下面是代码
Private Sub Form_Load()
    Dim exestr As String
    exestr = App.Path + "\DB\pms.mdb"
    adopassword.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & exestr & ";Persist Security Info=False"
    adopassword.RecordSource = "select * from [password]"
    adopassword.Refresh
    txtusern.Text = ""
    txtpassword.Text = ""
End Sub
Private Sub cmdok_Click()
    Dim usernumb As Long
   usernumb = 0
   
    If ((txtusern.Text = Null) Or (txtusern.Text = "")) Then
        MsgBox "对不起!用户名不能为空,请重输!", vbOKOnly + vbExclamation, "错误"
        txtpassword.Text = ""
        txtrpassword.Text = ""
        txtpassword.SetFocus
    
    ElseIf (txtpassword.Text = txtrpassword.Text) Then
    
        Do While Not adopassword.Recordset.EOF
            If ((adopassword.Recordset("用户号")) > usernumb) Then
            usernumb = adopassword.Recordset("用户号")
            End If
            adopassword.Recordset.MoveNext
        Loop                              '得到当前最大用户号
       usernumb = usernumb + 1
        adopassword.Recordset.MoveLast
        adopassword.RecordSource = "insert into [password] values ('" & usernumb & "','new','" & txtusern.Text & "','" & txtpassword.Text & "')" 
        adopassword.Refresh              '这里出现错误"对象关闭时不允许操作"??????????????
        adopassword.Recordset.Update
        adopassword.RecordSource = "select * from [user]"
        adopassword.Refresh
        adopassword.RecordSource = "insert into [user] values ('" & usernumb & "','" & txtusern.Text & " ',,'男',,,,,,,,,)"
        adopassword.Refresh
        adopassword.Recordset.Update
        frm_open.Show
        Unload Me
    Else
        MsgBox "对不起!输入的两次密码不相同。请重新输入!", vbOKOnly + vbExclamation, "错误"
        txtpassword.Text = ""
        txtrpassword.Text = ""
        txtpassword.SetFocus
    End If
End Sub实际上表里已经有了一条新记录,那这错误为什么会出现?还有怎么解决呢?
请各位帮下忙,谢谢

解决方案 »

  1.   

    RecordSource(数据源)应该是有效的记录集啊,怎么能是insert into 语句呢?
      

  2.   

    你使用adodb对象吧
    adodc控件问题很多
      

  3.   

    adopassword.recordset.open  "insert into [password] values ('" & usernumb & "','new','" & txtusern.Text & "','" & txtpassword.Text & "')" 
      

  4.   

    呵,楼上的我试过还是不行,“对象打开时不允许操作”,而且数据库里也没有新增记录了????????如果用ADDNEW怎么做呢?因为有必填字段所以要在加入的时候把数据添进去,给个代码好么?
      

  5.   

    如果用ADODB的话应该怎么写添加的语句呢?
      

  6.   

    adopassword.recordset.Execute "insert into [password] values ('" & usernumb & "','new','" & txtusern.Text & "','" & txtpassword.Text & "')" 
      

  7.   

    代替
    adopassword.RecordSource = "insert into [password] values ('" & usernumb & "','new','" & txtusern.Text & "','" & txtpassword.Text & "')" 
            adopassword.Refresh              '这里出现错误"对象关闭时不允许操作"??????????????
            adopassword.Recordset.Update
      

  8.   

    adopassword.recordset.Execute
    这个东西,错误说是“未找到方法或数据成员”
    是ADODB的方法吧
      

  9.   

    难道ADODC就没办法用SQL语句插入么?
      

  10.   

    with adopassword.recordset
       .addnew
       .fields("a")="aaa"
       .fields("b")="bbb"
       .update
    end withPS:with后面的不知道对不对,你自己试一下