-- 作者:sankever
-- 发布时间:2014/10/24 0:47:00
-- 如何跨表使用DataTables().Select
小白一个,昨晚刚开始看如何编程,研究到现在还没有解决问题,困死了
想要实现的功能如下:现在有两张表“考勤表”和“工资结算表”,已建立关联,“考勤表”为父
“考勤表”下有“日期"、"考勤情况"列,“工资结算表”有“起始日期”、“结束日期”、“考勤结果”列
如下图:
此主题相关图片如下:wxid_on0tk9iljh1p21_1414160637087_456.jpg

此主题相关图片如下:qq浏览器截屏未命名.png

需要提取出"考勤表"中"日期"列中时间在"工资结算表"中"起始日期"、"结束日期"之间的行,并把这些行中"考勤情况"列的天数和累加到"工资结算表"中的"考勤结果"。
查阅资料,编辑代码如下:
Dim timer0 As DataRow = DataTables("工资结算表").DataRows(1) Dim timer1 As DataCol = DataTables("考勤表").DataCols("日期") Dim sum As Integer Dim drs As List(Of DataRow) drs = DataTables("考勤表").Select("[日期] >= Child(工资结算表).起始日期 And [日期] <= Child(工资结算表).结束日期 ") For Each dr As DataRow In drs sum = dr("考勤情况") + sum Next timer0("考勤结果") = sum
调试结果说”无法解释位置 9 的标记“Child”。“
如果将对应行改为”drs = DataTables("考勤表").Select("[日期] >= timer0(\'起始日期\') And [日期] <= timer0(\'结束日期\') ")“
则调试结果又报”表达式包含未定义的函数调用 timer0()。“
夜深了,头脑不好使了,也没脑力去看那么长的帮助文档了,明天要用,请专家们帮忙指出问题及改正方法。
[此贴子已经被作者于2014-10-24 22:28:56编辑过]
|