以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何判定窗口中的SQL table表的某一列存在重复值 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=114141) |
-- 作者:huangfanzi -- 发布时间:2018/1/29 23:23:00 -- [求助]如何判定窗口中的SQL table表的某一列存在重复值 例如窗口中的表有个 “单号“列,当此表通过 fill方法导入数据后,有个 “核查”按钮,此按钮中的代码可以审查单号列是否有重复值,如果发现重复,就弹出个提示框告知用户存在重复值,并且涉及重复单号的所在行背景色是 ”样式1”,样式1我会通过代码设定的。 谢谢老师!
|
-- 作者:有点甜 -- 发布时间:2018/1/30 9:05:00 -- 1、drawcell事件
If e.table.findrow("单号 = \'" & e.row("单号") & "\' and _Identify <> " & e.row("_Identify")) >= 0 Then e.style = "样式1" End If
2、按钮click事件
For Each r As Row In Tables("表A").rows |
-- 作者:huangfanzi -- 发布时间:2018/1/30 10:19:00 -- 窗口中通过以下代码生成的表也有 _Identify 字段吗?如果有,如何让此字段显示出来呢?我本来是准备加个行号字段到导入后的窗口表,这样哪条记录出问题了就提示用户“某某行出现了XXX问题”,如果有 _Identify 字段我就不用增加行号字段了 将EXCEL表导入到窗口中的Table If e.Sender.Text > "" Then e.Form.Controls("Table1").Table.fill("S elect * f rom [" & e.Sender.Text & "]", "test", True) End If |
-- 作者:有点甜 -- 发布时间:2018/1/30 11:27:00 -- 如果是excel表格的数据,不会有_Identify字段的,你这样处理,动态加入一列
If e.Sender.Text > "" Then Dim t As Table = e.Form.Controls("Table1").Table t.fill("Select 0 as 序号,* from [" & e.Sender.Text & "]", "test", True) For Each r As Row In t.rows r("序号") = r.index + 1 Next End If |
-- 作者:huangfanzi -- 发布时间:2018/1/30 13:04:00 -- S elect 0 是什么意思,这个为 0 的字段是哪来的?我目前的做法全是用: If DataTables(e.Form.Name & "_Table1").datacols.Contains("新字段") Then Else DataTables(e.Form.Name & "_Table1").DataCols.Add("新字段", Gettype(Double)) End If 用这个方法有二个问题,一是增加的字段多了,代码要一堆,二是所增加的字段必是在表的最后面,然后再用Move把字段移到想要的位置,是很麻烦。 Tables(e.Form.Name & "_Table1").Cols("新字段").Move(13) |
-- 作者:有点甜 -- 发布时间:2018/1/30 14:48:00 -- select 0 as 序号, \'\' as 第一列 这样也是相当于新增一列。
你用什么方法都可以,能达到目的即可。 |