有一个数据表,其beforedeletedatarow 有如下代码:If User.name <> "开发者" AndAlso user.group <> "财务" AndAlso user.group <> "行政" Then
e.Cancel = True
Messagebox.Show("<考勤机记录> 提示:不允许你增加新的数据行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
当开发者登录时,是可以增加数据行的,但是当 "行政" 这个组登录时,就会有 “不允许你增加新的数据行” 的提示。请问是哪里的问题呢?谢谢。
before
deletedatarow 这个事件是删除行前触发的。增加行检查
BeforeAddDataRow事件
另外上面这个代码判断有逻辑错误,使用文字说明一下要做什么判断
不好意思,是我上面写错了,这些代码是放在 beforeadddararow 里面的:
If User.name <> "开发者" AndAlso user.group <> "财务" AndAlso user.group <> "行政" Then
e.Cancel = True
Messagebox.Show("<考勤机记录> 提示:不允许你增加新的数据行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
执行的时候出现的提示是“不允许你增加新的数据行!” ,而不是上段中红色部分的文字。而且提示框有一个大的倒感叹号那样子的符号。
此主题相关图片如下:0731.jpg
http://www.foxtable.com/webhelp/topics/0326.htmMessageBox有一个共享方法Show,用于显示对话框,语法是:
MessageBox.Show(Message, Caption, Buttons, Icon)
参数 | 说明 |
Message | 要显示的信息 |
Caption | 对话框标题 |
Buttons | 可选参数,指定要显示的按钮,MessageBoxButtons型枚举,包括以下可选值: AbortRetryIgnore: | 包含“中止”、“重试”和“忽略”按钮。 | OK: | 包含“确定”按钮 | OKCancel: | 包含“确定”和“取消”按钮 | RetryCancel: | 包含“重试”和“取消”按钮 | YesNo: | 包含“是”和“否”按钮 | YesNoCancel: | 包含“是”、“否”和“取消”按钮 |
如果省略,则显示“确定”按钮。 |
Icon | 可选参数,指定要显示的图标,MessageBoxIcon型枚举,包括以下可选值: Error: | 显示错误图标,由一个红色背景的圆圈及其中的白色 X 组成的。 | Information: | 显示信息图标,由一个圆圈及其中的小写字母 i 组成的。 | None: | 不显示图标。 | Question: | 显示提问图标,是由一个圆圈和其中的一个问号组成的。 | Warning: | 显示警告图标,一个黄色背景的三角形及其中的一个感叹号组成的。 |
|
看明白帮助中的语法。
Messagebox.Show("<考勤机记录> 提示:不允许你增加新的数据行!", "提示")
此主题相关图片如下:qq20240731-105936.jpg
[此贴子已经被作者于2024/7/31 11:16:00编辑过]
使用文字说明一下这个代码想实现什么功能,按什么逻辑判断!
BeforeAddDaraRow 的如下代码
If User.name <> "开发者" AndAlso user.group <> "财务" AndAlso user.group <> "行政" Then
e.Cancel = True
Messagebox.Show("<考勤机记录> 提示:不允许你增加新的数据行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
想实现的功能:
如果不是开发者这个用户,以及不是财务那个用户组,以及不是行政那个用户组,就不准增加数据行。
如果说3个条件只要有一个符合就可以新增,参考
If User.name = "开发者" orelse user.group = "财务" orelse user.group = "行政" Then
else
e.Cancel = True
Messagebox.Show("<考勤机记录> 提示:不允许你增加新的数据行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
好像可以了,我再留意一下。请问用8楼和9楼的方式为什么结果会不同呢?