我想把一组数据更新到数据库中的一列当中,这组数据来自一组文本框,请问该怎么做。
我用ado和dao都试了,代码如下:
DAO方式:
-----------------------------
Dim db As Database
Dim Rs As Recordset
Dim i As IntegerSet db = OpenDatabase("D:\test.mdb")
Set Rs = db.OpenRecordset("select 数字1 from table")Rs.MoveFirst
Rs.Edit
For i = 0 To 5
Rs.Fields("数字1") = Text1(i).Text
Rs.MoveNext
Rs.Update
Next i
----------------------------
报错:在不使用addneew或edit情况下更新。ADO方式:
-------------------------------
Dim CN As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim i As IntegerCN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\test.mdb"
CN.CursorLocation = adUseClient
Rs.Open "select 数字1 from achievment", CN, adOpenDynamic, adLockOptimisticRs.MoveFirst
For i = 0 To 5
Rs.Fields("数字1") = Text1(i).Text
Rs.MoveNext
Next i
-----------------------------
报错:列信息不足或不正确,更新影响到多行。如果用adLockBatchOptimistic代替adLockOptimistic,加了一个datagrid来看表现,datagrid显示更新成功,但就是不修改数据库中的数据。
我用ado和dao都试了,代码如下:
DAO方式:
-----------------------------
Dim db As Database
Dim Rs As Recordset
Dim i As IntegerSet db = OpenDatabase("D:\test.mdb")
Set Rs = db.OpenRecordset("select 数字1 from table")Rs.MoveFirst
Rs.Edit
For i = 0 To 5
Rs.Fields("数字1") = Text1(i).Text
Rs.MoveNext
Rs.Update
Next i
----------------------------
报错:在不使用addneew或edit情况下更新。ADO方式:
-------------------------------
Dim CN As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim i As IntegerCN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\test.mdb"
CN.CursorLocation = adUseClient
Rs.Open "select 数字1 from achievment", CN, adOpenDynamic, adLockOptimisticRs.MoveFirst
For i = 0 To 5
Rs.Fields("数字1") = Text1(i).Text
Rs.MoveNext
Next i
-----------------------------
报错:列信息不足或不正确,更新影响到多行。如果用adLockBatchOptimistic代替adLockOptimistic,加了一个datagrid来看表现,datagrid显示更新成功,但就是不修改数据库中的数据。
rs.open "update achievment set 数字1 where 条件"
For i = 0 To 5
Rs!数字1 = Text1(i).Text
Rs.Update
Rs.MoveNext
Next
这个语句完整是什么样的,我用它报错说语法错误(没用where)。哪里与Recordset的完整语法说明啊。“一行一行更新”是怎么更新?
For i = 0 To 5
Rs.Fields("数字1") = Text1(i).Text
rs.update
Rs.MoveNext
Next i
rs.fields("A1") = val(text1.text)'数字转换。
rs.fields("A2") = "A2"
如clng(trim$(text1.text))
rs.movefirst
Rs.Fields("数字0") = cint(Text1(0).Text)
Rs.Fields("数字1") = cint(Text1(1).Text)
Rs.Fields("数字2") = cint(Text1(2).Text)
Rs.Fields("数字3") = cint(Text1(3).Text)
Rs.Fields("数字4") = cint(Text1(4).Text)
rs.update
rs.movenext
next i
但这样是把所有的记录都写成一样的值。不知道你设置主键没有,如有主键,那是不行的。