以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  条件提示  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23716)

--  作者:wilson
--  发布时间:2012/9/17 20:00:00
--  条件提示

我想实现以下功能不知是否能够实现。

有两个表,表A与表B。 表A有审核列与编号列,表B有编号列。 那么筛选出表A审核列=1 的编号,再查找表B是否有相同的编号,如果表B里没有找到相同的编号那么提示此编号不存在。

采用SQL数据库,表B默认不加载数据。

恳请各位老师的帮助!


--  作者:狐狸爸爸
--  发布时间:2012/9/17 20:07:00
--  
没看明白你的过程
--  作者:wilson
--  发布时间:2012/9/17 20:37:00
--  

谢谢狐爸!

 

我是想做一个按钮,点击按钮能够提示。

例如:表A编号列里有 A1.A2.A3.A4.A5.A6.A7.A8  ,已通过审核的为A2.A3.A4.A5.A6.A7 ,在表B的编号列里查找是否存在A2.A3.A4.A5.A6.A7 。

如果表B的编号里只有A2.A5.A6.A7 ,那么提示A3.A4不存在

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


--  作者:czy
--  发布时间:2012/9/17 22:52:00
--  

Dim names As String
For Each Name As String In DataTables("表A").GetComboListString("编号","[审核] = true").Split("|")
    If not DataTables("表B").GetComboListString("编号","编号 is not null").Contains(Name)
        names & = " " & name
    End If
Next

MessageBox.Show("不存在的编号是:" & vbcrlf & Names.Trim(" "))


--  作者:wilson
--  发布时间:2012/9/18 11:29:00
--  

非常感谢CZY版主对我的帮助!

 

还有些问题?

我采用外部数据源,表B默认不加载数据。

可否增加以下带码,如果对庞大的数据全部加载会影响速度吗

DataTables("表B").LoadFilter = ""
DataTables("表B").Load() 


--  作者:wilson
--  发布时间:2012/9/21 19:51:00
--  
以下是引用czy在2012-9-17 22:52:00的发言:

Dim names As String
For Each Name As String In DataTables("表A").GetComboListString("编号","[审核] = true").Split("|")
    If not DataTables("表B").GetComboListString("编号","编号 is not null").Contains(Name)
        names & = " " & name
    End If
Next

MessageBox.Show("不存在的编号是:" & vbcrlf & Names.Trim(" "))

发现还有些问题!

 

当表B的型号列存在 dd11 , 不存在 dd1 ,表A型号列存在 dd1 ,不会提示dd1


--  作者:czy
--  发布时间:2012/9/21 20:06:00
--  

这样看看

 

Dim names As String
For Each Name As String In DataTables("表A").GetComboListString("编号","[审核] = true").Split("|")
Output.Show(name)
    If not DataTables("表B").GetComboListString("编号","编号 is not null").Contains(Name & "|")
        names & = "|" & name
    End If
Next

MessageBox.Show("不存在的编号是:" & vbcrlf & Names.Trim("|").Replace("|"," "))


--  作者:wilson
--  发布时间:2012/9/22 0:04:00
--  

非常感谢CZY版主!

 

现在的问题是它会多提示一个编号。

比如表B里不存在的是 A2  A6   ,提示为 A2 A6 A8  ,提示多了一个编号,A8 表B里是存在的

如果表A里的编号表B里都存在,它会提示提示最后一个编号。


--  作者:lin_hailun
--  发布时间:2012/9/22 9:44:00
--  
在C版基础上改了一句,测试有效。
 
Dim names As String
For Each Name As String In DataTables("表A").GetComboListString("编号","[审核] = true").Split("|")
Output.Show(name)
    If not (DataTables("表B").GetComboListString("编号","编号 is not null") & "|").Contains(Name & "|")
        names & = "|" & name
    End If
Next

MessageBox.Show("不存在的编号是:" & vbcrlf & Names.Trim("|").Replace("|"," "))
--  作者:wilson
--  发布时间:2012/9/22 10:21:00
--  

问题已解决

 

谢谢各位!