以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:禁止重复 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82797) |
||||
-- 作者:刘异 -- 发布时间:2016/3/24 22:58:00 -- 求助:禁止重复 老师好:请教一个问题。 我在DataColChanged表事件中写了这样的代码: Select Case e.DataCol.name
以上对已加载的数据有效,但是要对未加载的数据实现同样的功能,我按下面的方法加了SQL结果提示错误 "标准表达式中数据类型不匹配"。(岗位系数列是数值型,生产日期是日期时间型,操作员是字符型),不知道应该怎样改。
Select Case e.DataCol.name |
||||
-- 作者:大红袍 -- 发布时间:2016/3/24 23:17:00 -- If e.DataTable.SQLCompute("Count([_Identify])","岗位系数 = \'" & dr("岗位系数") & "\' And 操作员 = \'" & dr("操作员") & "\' And 生产日期 = \'" & e.DataRow("生产日期") & "\' ") > 1 Then |
||||
-- 作者:刘异 -- 发布时间:2016/3/25 10:23:00 -- 老师:按您给的代码更改后,依然显示: NET Framework 版本:2.0.50727.5485 |
||||
-- 作者:刘异 -- 发布时间:2016/3/25 10:35:00 -- 老师:岗位系数是从别一个表引用过来的数据 |
||||
-- 作者:大红袍 -- 发布时间:2016/3/25 10:39:00 -- 1、msgbox(e.DataRow("生产日期")) 看弹出什么?
2、2楼代码不可能有问题。 |
||||
-- 作者:刘异 -- 发布时间:2016/3/25 10:46:00 --
|
||||
-- 作者:大红袍 -- 发布时间:2016/3/25 11:12:00 -- If e.DataTable.SQLCompute("Count([_Identify])","岗位系数 = " & dr("岗位系数") & " And 操作员 = \'" & dr("操作员") & "\' And 生产日期 = #" & e.DataRow("生产日期") & "# ") > 1 Then e.DataRow(e.DataCol.name) = e.OldValue \'取消输入 End If |
||||
-- 作者:刘异 -- 发布时间:2016/3/25 11:25:00 -- 老师:我要的是“岗位系数”这一列哟呵呵,我上传了一个事例,麻烦您看一下。 |
||||
-- 作者:大红袍 -- 发布时间:2016/3/25 11:41:00 -- Select Case e.DataCol.name Case "生产日期","操作员","岗位系数" Dim dr As DataRow = e.DataRow If dr.IsNull("生产日期") = False AndAlso dr.IsNull("操作员") = False AndAlso dr.IsNull("岗位系数") = False Then If e.DataTable.SQLCompute("Count([_Identify])","岗位系数 = " & dr("岗位系数") & " And 操作员 = \'" & dr("操作员") & "\' And 生产日期 = #" & e.DataRow("生产日期") & "# ") > 1 Then e.DataRow(e.DataCol.name) = e.OldValue \'取消输入 End If End If End Select
|
||||
-- 作者:刘异 -- 发布时间:2016/3/25 18:10:00 -- 老师: 虽然没有弹出错误提示, 但是禁止无效,结果还是输入值了。 我发了一个事例,麻烦您再帮我看看。 多谢了! 呵呵!我弄了好久了,不知怎么办才好。 |