设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1027|回复: 4
打印 上一主题 下一主题

[窗体] 数据表窗体中,如何控制用户不能选择多条记录

[复制链接]
跳转到指定楼层
1#
发表于 2004-7-8 03:12:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在数据表窗体中,如何控制用户不能选择到多条记录.因为我想在用户删除记录的时候,我想检验此记录的某字段值.如果用户选择了多条记录,则只能检验到第一条记录,请问各位朋友,如何做呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2004-7-8 04:42:00 | 只看该作者
终于用如下方法实现了.Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)

Dim lRows As Long

lRows = SelHeight

If lRows > 1 Then

MsgBox "一次只能选择一条记录", , "订单系统"

Cancel = True

Exit Sub

End If

If Me.是否归还 Then

MsgBox "此产品已归还不能删除", , "订单系统"

Cancel = True

End If

'MsgBox "dddd", , "ddf"

End Sub

3#
发表于 2004-7-8 07:23:00 | 只看该作者
楼主的方法是很巧妙的。不过程序写得有点不是十分非常过于太很专业。首先要确保默认的删除确认对话框不出来,然后按照自定义的逻辑逐层处理:

Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)

On Error GoTo Catch

    Dim lRows As Integer

    lRows = SelHeight

    Response = acDataErrContinue  '///////清除系统默认的删除确认对话框

    If lRows > 1 Then

        MsgBox "一次只能选择一条记录", vbExclamation + vbOKOnly, "订单系统"

        Cancel = True

    Else

        If Me.是否归还 Then

            MsgBox "此产品已归还不能删除", vbExclamation + vbOKOnly, "订单系统"

            Cancel = True

        Else

            If MsgBox("真的要删除吗?", vbQuestion + vbOKCancel, "订单系统") = vbCancel Then

                Cancel = True

            End If

        End If

    End If

Finally:

    Exit Sub

Catch:

    MsgBox Err.Number & vbNewLine & Err.Description, vbCritical + vbOKOnly, "发生错误"

    Resume Finally

End Sub

最后,有兴趣的话还可以在AfterDelConfirm事件中告诉用户一些删除后的确认等信息...

另外的方法可能是在设计窗体的时候将数据表定为禁止删除,然后用一个删除按钮让SQL代码在服务器端做删除,等。

[此贴子已经被作者于2004-7-8 21:03:16编辑过]

4#
 楼主| 发表于 2004-7-8 16:37:00 | 只看该作者
天阿,阿罗朋友,你真是我的良师益友啊!,让我学到了很多东西,以前我就是想如何屏蔽系统出现的删除对话框,现在又学到了.真是非常感谢!!
5#
发表于 2004-8-6 19:50:00 | 只看该作者
屏蔽系统出现的对话框个还有一招:DoCmd.SetWarnings False当然恢复对话框的方法是:DoCmd.SetWarnings True
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-21 02:37 , Processed in 0.090981 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表