数据的自动流转之二的一点疑惑 http://www.foxtable.com/help/topics/2274.htm
保存 |
With
Tables("表A") If .Current IsNot
Nothing
Then .Current.Save() Dim jd As
String Select
Case User.Name Case
"张三" jd = "1B" Case
"李四" jd = "2B" Case
"王五" jd = "3B" Case
Else Return
'其他用户正常返回 End
Select If .Current("进度") = jd Then '如果已经处理完毕 .Current.DataRow.Remove() '则移除此行 End
If End
If End
With |
疑惑为:当对应用户的可操作列的值为空的时候保存的话,以后就不能修改了。
1、张三登陆,如果新增一行,第一列和第二列不填入数据,直接保存时(保存后,进度列的值为“1B”,且已移除了此行)。
备注:此时张三就不能再看到此行了。如果关闭系统再重新登陆时,张三同样不能看到,只能李四看到。
2、李四、王五登陆,如果可操作列为空值直接保存时,也会出现上述的情况。
3、建议改为如下代码:
保存 |
With Tables("表A").current Select Case User.Name Case "张三" If .Isnull("第一列") = false andalso .Isnull("第二列") =false Then .("进度") = "1B" .save() .DataRow.remove() End If Case "李四" If .Isnull("第三列") = false andalso .Isnull("第四列") = false Then .("进度") = "2B" .save() .DataRow.remove() End If Case "王五" If .Isnull("第五列") =false andalso .Isnull("第六列") = false Then .("进度") = "3B" .save() .DataRow.remove() End If Case Else Return '其他用户正常返回 End Select End With |
4、实际需求此功能的用户,建议再增加一个回流的功能(增加一个回流的按钮和一个combobox按钮)
不知这里的疑问是否正确,请各位老师鉴定。
[此贴子已经被作者于2012-7-22 22:27:29编辑过]