1、
ElseIf rs.Count = 1 Then
r = rs(0)
newRowNum = r.Index
Dim nr As Row = r.Clone()
nr("企业名称") = "临时-" & r("企业名称")
nr("名称简码") = "temp-" & r("名称简码")
nr.Move(newRowNum + 1)
End If
先解锁,再删除
r.Locked = False
r.Delete()
3、不是prepareEdit不行,是你不会用
If e.Col.Name = "审核状态" orelse e.Col.Name = "批准状态" Then
e.Cancel = True
End If
启奏万岁,臣仍有一事不明:
针对于第一个问题,您只是把代码做了很小的改动,单独声明了一个新row、代替了currenttable.current这个写法,为什么就不出现延迟(第17-19行有时得不到执行,有时又能被执行)了?
current指的是当前行,当前行是会根据实际情况发上变化,不是固定不变的,不是特别情况,最好都不要使用。r.Clone()会返回克隆后的行,才是正确的用法
我知道了,是因为clone后,光标还没移到新行上。
那又有个新问题了:
如果我把代码改成如下,加入e.table.refresh,然后再写第17-19行,是不是就能保证光标先移动到被clone行上,然后再执行第17-19行?
r.clone()
e.table.refresh
currenttable.current("企业名称")="临时-" & r("企业名称")
currenttable.current("名称简码")="临时-" & r("名称简码")
currenttable.current.movve(newrownum + 1)