Set db = OpenDatabase(App.Path + "/pt.mdb")
Set rs = db.OpenRecordset("product") If rs.EOF Then
MsgBox "Please Add Someone To The Databse"
End If
With rs
rs.Edit
!address = LCase(frmControl.txtAddress)
!Date = LCase(frmProduct.txtDate)
!serial = LCase(frmProduct.txtSerial)
.Update
End With
MsgBox (frmProduct.txtSerial & " 记录修改成功!")
'记录修改成功后,删除原来的记录
Set rs = db.OpenRecordset("SELECT product.address, product.Data, product.serial From product WHERE product.serial = " + Chr$(34) + globalSerial + Chr$(34) + ";")
rs.MoveFirst
Do Until rs.EOF
rs.Delete
rs.MoveNext
Loop
我数据库里有几条记录, 如下
address data serial
000000 2007-10-20 0001
000000 2007-10-20 0002
000000 2007-10-20 0003
000000 2007-10-20 0004
000000 2007-10-20 0005比如我现在对 serial =0004 的记录做修改,即 serial =0006, 执行上面的也成功了, 但修改的却是 serial=0001 的记录
咋回事呢??请赐教 谢谢
Set rs = db.OpenRecordset("product") If rs.EOF Then
MsgBox "Please Add Someone To The Databse"
End If
With rs
rs.Edit
!address = LCase(frmControl.txtAddress)
!Date = LCase(frmProduct.txtDate)
!serial = LCase(frmProduct.txtSerial)
.Update
End With
MsgBox (frmProduct.txtSerial & " 记录修改成功!")
'记录修改成功后,删除原来的记录
Set rs = db.OpenRecordset("SELECT product.address, product.Data, product.serial From product WHERE product.serial = " + Chr$(34) + globalSerial + Chr$(34) + ";")
rs.MoveFirst
Do Until rs.EOF
rs.Delete
rs.MoveNext
Loop
我数据库里有几条记录, 如下
address data serial
000000 2007-10-20 0001
000000 2007-10-20 0002
000000 2007-10-20 0003
000000 2007-10-20 0004
000000 2007-10-20 0005比如我现在对 serial =0004 的记录做修改,即 serial =0006, 执行上面的也成功了, 但修改的却是 serial=0001 的记录
咋回事呢??请赐教 谢谢
如果通过普通字段查找,因为普通字段回有重复的数据,它只找到第一条符合条件的记录执行程序address data serial
000000 2007-10-20 0001
000000 2007-10-20 0002
000000 2007-10-20 0003
000000 2007-10-20 0004
000000 2007-10-20 0005 比如你这些数据,想通过ADDRESS字段修改SERIAL的值,它只修改SERIAL=0001为0006除非:
000001 2007-10-20 0001
000002 2007-10-20 0002
000003 2007-10-20 0003
000004 2007-10-20 0004
000005 2007-10-20 0005
rs.filter(serial=0004)
Dim cmd As New ADODB.Command
sql="update [table] set [field1]=[value1] where [condition]"
cmd.ActiveConnection = conn
cmd.CommandType = adCmdText
cmd.CommandText = sql
Set recordset = cmd.Execute'... 然后循环遍历recordset如果不起作用,问题就应该出在记录集recordset的游标上,对rs的操作哪有问题,在你自己的程序里面找找。
我这看不到你所有的代码。