以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 跨表引用问题,请教各位老师 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140301) |
||||
-- 作者:hzpy -- 发布时间:2019/9/3 9:36:00 -- 跨表引用问题,请教各位老师 主表有若干人任若干职务,设计了个弹窗,在弹出时对照机构显示职务空缺情况,代码如下,总是弹窗错误,请教老师问题在哪?请老师们指导
If Forms("职务空缺情况").Opened For Each dr As DataRow In DataTables("职数空缺").Select("工作单位_镇街 is not null and 工作单位_村居社区 is not null") Dim fdr As DataRow = DataTables("村干部基本信息").Find("工作单位_镇街 = \'" & dr("工作单位_镇街") & "\' and 工作单位_村居社区 = \'" & dr("工作单位_村居社区") & "\'") If fdr("职务排序") = "01" Then dr("书记") = fdr("姓名") Else dr("书记") = "空缺" End If If fdr("职务排序") = "02" Then dr("主任") = fdr("姓名") Else dr("主任") = "空缺" End If If fdr("职务排序") = "03" Then dr("会计") = fdr("姓名") Else dr("会计") = "空缺" End If Next End If |
||||
-- 作者:有点蓝 -- 发布时间:2019/9/3 9:54:00 -- 哪个表,或者哪个窗口的什么事件?没看到有这段代码 |
||||
-- 作者:hzpy -- 发布时间:2019/9/3 9:57:00 -- 窗口是 “职数空缺情况” ,事件是 这个窗口的afterload事件,主页左下角按钮弹窗 |
||||
-- 作者:有点蓝 -- 发布时间:2019/9/3 10:13:00 -- 首先窗口名称是错的。其次凡是Find查询的结果都必须判断一下是否为空,比如查询没有结果 If Forms("职数空缺情况").Opened For Each dr As DataRow In DataTables("职数空缺").Select("工作单位_镇街 is not null and 工作单位_村居社区 is not null") Dim fdr As DataRow = DataTables("村干部基本信息").Find("工作单位_镇街 = \'" & dr("工作单位_镇街") & "\' and 工作单位_村居社区 = \'" & dr("工作单位_村居社区") & "\'") If fdr IsNot Nothing If fdr("职务排序") = "01" Then dr("书记") = fdr("姓名") Else …… |
||||
-- 作者:hzpy -- 发布时间:2019/9/3 10:19:00 -- If Forms("职数空缺情况").Opened For Each dr As DataRow In DataTables("职数空缺").Select("工作单位_镇街 is not null and 工作单位_村居社区 is not null") Dim fdr As DataRow = DataTables("村干部基本信息").Find("工作单位_镇街 = \'" & dr("工作单位_镇街") & "\' and 工作单位_村居社区 = \'" & dr("工作单位_村居社区") & "\'") If fdr IsNot Nothing If fdr("职务排序") = "01" Then dr("书记") = fdr("姓名") Else dr("书记") = "空缺" End If If fdr("职务排序") = "02" Then dr("主任") = fdr("姓名") Else dr("主任") = "空缺" End If If fdr("职务排序") = "03" Then dr("会计") = fdr("姓名") Else dr("会计") = "空缺" End If End If Next End If 谢谢老师,改过了,但是主任、会计列都没用,显示的都是空缺 另:如果想窗口退出上述内容还清除该怎么办
[此贴子已经被作者于2019/9/3 10:21:51编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/9/3 10:31:00 -- 1、find只返回一条数据,其它当然没用了,改为select进行遍历 2、不要保存数据,然后使用:RejectChanges:http://www.foxtable.com/webhelp/topics/1538.htm,或者遍历这个窗口表,把数据清空 For Each r As Row In Tables("职数空缺").Rows
r("主任") = nothing Next |
||||
-- 作者:hzpy -- 发布时间:2019/9/3 10:42:00 -- 此主题相关图片如下:错误.jpg 显示错误,不知道为什么
|
||||
-- 作者:hzpy -- 发布时间:2019/9/3 10:49:00 -- 另外,“空缺”用红字显示可以吗 |
||||
-- 作者:有点蓝 -- 发布时间:2019/9/3 11:11:00 -- 7楼的错误请认真看一看select的帮助和用法,而不仅仅是把find改为select。 |
||||
-- 作者:hzpy -- 发布时间:2019/9/3 11:38:00 -- 不好意思,研究了一下,再请老师指导 If Forms("职数空缺情况").Opened For Each dr As DataRow In DataTables("职数空缺").Select("工作单位_镇街 is not null and 工作单位_村居社区 is not null") Dim fdr As List(of DataRow) = DataTables("村干部基本信息").Select("工作单位_镇街 = \'" & dr("工作单位_镇街") & "\' and 工作单位_村居社区 = \'" & dr("工作单位_村居社区") & "\'") If fdr IsNot Nothing For Each n As DataRow In fdr If n("职务排序") = "01" Then dr("书记") = n("姓名") Else dr("书记") = "空缺" End If If n("职务排序") = "02" Then dr("主任") = n("姓名") Else dr("主任") = "空缺" End If If n("职务排序") = "03" Then dr("会计") = n("姓名") Else dr("会计") = "空缺" End If Next End If Next End If |