Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

窗体操作中,当该条记录完成时,如何锁定该条记录不可修改,其他未完成的可以修改

吹冷风  发表于:2013-03-13 16:29:46  
复制

请教各位大虾

 

     在数据表窗体中的记录,如何当我勾选该条记录为“完成”时,则锁定该条记录,不可以再修改,其他未完成的,可修改。

如下表的示例:记录1的各字段不可以再修改,记录2的各字段可以修改。

 

 

 

 

Top
殷小宝 发表于:2013-03-13 16:45:17
if me.是否完成=True then me.是否完.Locked=True

殷小宝 发表于:2013-03-13 16:57:10

if me.是否完成=True then

me.计划明细.Locked=True

me.责任人.Locked=True

Me.开始时间.Locked=True

Me.结束时间.Locked=True

Me.备注.Locked=True

else

me.计划明细.Locked=False

me.责任人.Locked=False

Me.开始时间.Locked=False

Me.结束时间.Locked=False

Me.备注.Locked=False

End if



陈连峰 发表于:2013-03-13 17:03:53
这样操作,是把所有的记录都锁定不可修改了,我是想仅把已完成的事件锁定,不可修改,未完成的是可以继续修改的。

落尘_小新 发表于:2013-03-13 17:13:40

你在窗体的成为当前事件中加入这些代码试试。

if me.是否完成=True then

me.计划明细.Locked=True

me.责任人.Locked=True

Me.开始时间.Locked=True

Me.结束时间.Locked=True

Me.备注.Locked=True

else

me.计划明细.Locked=False

me.责任人.Locked=False

Me.开始时间.Locked=False

Me.结束时间.Locked=False

Me.备注.Locked=False

End if



cspa 发表于:2013-03-13 23:16:06
楼上各位的思路是有问题的。在数据表视图不能锁定某一行吧。但可换个思路,用2个数据表视图,上下排列,上面的显示已完成记录,设置为锁定状态,不可编辑。下面的是可编辑的记录,当完成对某一记录的修改后,选择"是否完成"即将此记录移至上面的数据表视图中。这样也可实现楼主想要的功能。

落尘_小新 发表于:2013-03-14 12:53:44

我们的思路并没有问题,楼主是想通过判断 是否完成 字段是否为真来决定该条记录其它字段是否可以修改。

是的,数据表视图不能单独锁定某一行。

可是你想想,如果想要编辑某一行数据的话,不考虑用vba的话,那是不是需要光标移动到该记录呢(即使该记录成为当前记录)。

那么,我们在 窗体 成为当前 事件中加入代码来判断一下 不就可以了吗。

当光标移动到 已完成的记录时,那记录则不能编辑,反之则可编辑。

这里的确有一个小小的问题,那就是当 光标移动到一条没有完成的记录时

成为当前 事件发生,经过判断,确定此记录可编辑。

可当此时更改 是否完成 字段的数据后,在光标还没有移动到其它记当时,我们的代码将不起作用。(因为 成为当前 事件以在之前发生过,代码将不会再执行)

解决办法即是,在 是否字段 更新后 事件中再次运行一次 成为当前 事件中的代码即可。

看看,这样的思路,还有问题吗???

上传个示例,仅供参考。

点击下载此附件



落尘_小新 发表于:2013-03-14 12:58:37


陈连峰 发表于:2013-03-14 14:37:31
但是这样有一个问题,落尘。   这个窗体是我通过其他窗体的命令按钮点击进入的,如果按你的方法,我试了下是可行的,但是当我从其他窗体点击进入时,会触发当前事件,并提示“记录已锁定,不能编辑”,如何能避免?

陈连峰 发表于:2013-03-14 14:45:20

不好意思,我错了,当我从其他窗体进入该窗体时,默认焦点是在第一个字段的,而我刚才把代码写进了第一个字段的成为焦点事件中,所以会提示“记录已锁定,不能编辑”,我调整将不能更改的字段设为第一字段就OK了,谢谢了



总记录:9篇  页次:1/1 9 1 :