"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 语句直接写!
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 语句直接写!
Data1.Recordset.MoveLast
Data1.Recordset.AddNew
Data1.Recordset.Fields("XX")="XX"
Data1.Resordset.Updata (这后面还有参数,我在网吧里,好久不用记不清楚了)
End Sub
上面的语法不一定正确,这个问题看看ADO的资料就可以解决了,MSDN里就有。
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的效果是一样的!
可是还是会报“该操作被关联对象取消”,怎么回事啊
原先二个按钮里的Data1.Recordset.Update删掉.
添加记录的步骤:
1.按添加按钮
2.输入数据
3.按第三个按钮(就是只有Data1.Recordset.Update的哪个)
删除记录的步骤:
1.按删除按钮
2.按第三个按钮(就是只有Data1.Recordset.Update的哪个)
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时就是敲回车键!