Access交流中心

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

笨人笨办法的日期有效性规则

不务实  发表于:2009-05-16 17:16:25  
复制

实在设置不了,大于上条小于下条记录的有效性规则,才出此笨办法,请大师帮我简化些,

 

Top
不务实 发表于:2009-05-16 17:16:58
这是我和实例点击下载此附件

曹光耀 发表于:2009-05-16 18:59:15
不务实 发表于:2009-05-16 21:44:23

谢谢你,但你可能没明白我的意思,并没有简化,也没设置有效性



不务实 发表于:2009-05-17 09:04:17

帮助我呀



豆豆 发表于:2009-05-18 10:00:30
请参考下,id改为了自动编号点击下载此附件

不务实 发表于:2009-05-18 20:27:34
点击下载此附件谢谢大师,已不错了,但还有问题

豆豆 发表于:2009-05-18 21:26:17

有问题,要明确说出来,不要让别人猜。

 



不务实 发表于:2009-05-19 08:08:01

chaojianan你好,你给我这段代码,只能是表中已有数据,修改日期时,才有效,

如果新表日期就输不了,还有新建记录时也不行,再烦你改一下,附件在六楼。

Private Sub 日期_BeforeUpdate(Cancel As Integer)
If Me.日期 >= DLookup("日期", "账", "ID=" & Me.id - 1) And Me.日期 <= DLookup("日期", "账", "ID=" & Me.id + 1) Then
Else
MsgBox "日期不符合要求!请重新输入"
Cancel = True
Me.日期.Undo
End If

End Sub



豆豆 发表于:2009-05-19 10:17:07

用以下代码测试下
新表和新增记录时不判断。
自己要会根据实际情况对别人的代码进行消化吸收。
这才是我们提问题的真正目的。

偷偷笑
Private Sub 日期_BeforeUpdate(Cancel As Integer)
If Me.RecordsetClone.RecordCount < 1 Then
ElseIf Me.NewRecord Then
Else
    If Me.日期 >= DLookup("日期", "账", "ID=" & Me.id - 1) And Me.日期 <= DLookup("日期", "账", "ID=" & Me.id + 1) Then
    Else
    MsgBox "日期不符合要求!请重新输入"
    Cancel = True
    Me.日期.Undo
    End If
End If

End Sub

 



不务实 发表于:2009-05-19 15:46:53

不好意思,消化了半天,本人不好意思再问了,可是弄了大半天,还没搞好。

这个代码比上一个好多了,但第首条和末条记录,要修改时改不了,

新增记录也要限制必须大于或等于上条的,(现在是任意的)。



不务实 发表于:2009-05-21 21:33:52

有点?



不务实 发表于:2009-05-22 08:51:15


豆豆 发表于:2009-05-22 09:29:29

针对你说的情况,加以判断即可。如果还有其他情况,判断即可

请参考。

点击下载此附件

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