"error define recordset and connection"
example:
Set wrk = DBEngine.CreateWorkspace("newodbcdirect", "sa", "", dbUseODBC)
strcnn = "odbc;dsn=TTTTTT;uid=sa;pwd=;database=wqyzzg"
Set cnn = wrk.OpenConnection("TTTTTT", dbDriverNoPrompt, False, strcnn)
Set rst = cnn.OpenRecordset("select * from z_TEXT where ww='df'", dbOpenDynamic, dbExecDirect, dbOptimistic)
rst.MoveFirst
rst.Edit
rst!qq = "12222"
rst.Update
其中最关键的就是在rst=cnn.openrecordset中设置参数dbExecDirect, dbOptimistic就可以用edit方法修改sql_server的字段
不过这种方法不会经常用到了,也会被逐渐淘汰。最好用sql 语句直接写!

解决方案 »

  1.   

    添加记录后你好像没有赋值和保存,应该有个类似Data1.Recordset.Update(不一定是Updata)之类的。中间还差个Data1.Recordset="XXXX"的语句。Private Sub Command1_Click()
        Data1.Recordset.MoveLast
        Data1.Recordset.AddNew
        Data1.Recordset.Fields("XX")="XX"
        Data1.Resordset.Updata (这后面还有参数,我在网吧里,好久不用记不清楚了)
    End Sub
     
    上面的语法不一定正确,这个问题看看ADO的资料就可以解决了,MSDN里就有。
      

  2.   

    如何添加记录代码如下:
    Private Sub Command1_Click()
    Data1.Recordset.AddNew
    Data1.Refresh
    End Sub
    删除记录代码如下:
    Private Sub Command2_Click()
    Data1.Recordset.Delete
    Data1.Refresh
    Data1.Recordset.MoveNext
      If Data1.Recordset.EOF = True Then
         Data1.Recordset.MovePrevious
      End If
    End Sub注意:
    对数据操作后要用Data1.Refresh来刷新数据库,不然继续操做就会出错了!
    用Data1.Resordset.Updata也可以,如果你要是有MSFLEXGRID控件和Data1绑定,要动态刷新数据的话就要用Data1.Refresh,如果没有该控件,Data1.Refresh和Data1.Resordset.Updata的效果是一样的!
      

  3.   

    楼上的大哥,我就用了data控件,我在Data1.Recordset.AddNew之后加了Data1.Recordset.Update
    可是还是会报“该操作被关联对象取消”,怎么回事啊
      

  4.   

    不好意思,我弄错了.再添一个按钮,里面就写一条 :Data1.Recordset.Update
    原先二个按钮里的Data1.Recordset.Update删掉.
    添加记录的步骤:
    1.按添加按钮
    2.输入数据
    3.按第三个按钮(就是只有Data1.Recordset.Update的哪个)
    删除记录的步骤:
    1.按删除按钮
    2.按第三个按钮(就是只有Data1.Recordset.Update的哪个)
      

  5.   

    试一下这些代码:
    Private Sub Form1_Load()
    Command1.Caption="添加"
    End Sub
    Private Sub Command1_Click()
    If Command1.Caption="确定" then
       Data1.Recordset.Update
       Command1.Caption="添加"
    Else
      Data1.Recordset.AddNew
      Command1.Caption="确定"
    End If
    End Sub
    这样一个按钮了,但要按2次.
    第二种办法:
    就是在最后一个数据的输入框(如果是文本框的话)里调用KeyPress事件,输入
    If AscCode=13 Then
      Data1.Recordset.Update
    End if
    意思是当最后一个数据输入完毕后,敲回车键就刷新数据库.AscCode=13时就是敲回车键!