以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如果从统计表中获取填充数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=130545)

--  作者:qwz405
--  发布时间:2019/1/24 18:52:00
--  如果从统计表中获取填充数据
For Each dr As DataRow In DataTables("表A").S e lect("")
    Dim fdr As DataRow = DataTables("统计表1").Find("编号 = \'"& dr("编号") &"\'")       \'查询是否有请假记录
    If fdr IsNot Nothing Then
        dr("第一列") = fdr("时间_1")      \'[时间_1]列的标题是:第一列
        dr("第二列") = fdr("时间_2")      \'[时间_1]列的标题是:第二列
    End If
Next


困扰:
1、统计表的列名无法确定,标题名可以确定。
2、由于按不同时间段统计,列不一定会存在所以顺序会乱。例如:[时间_1]列没有数据,则统计时不会显示,那么[时间_2]就会变成[时间_1]列,但它的标题会是[第二列]。

我的想法是通过标题判断需要的列是否存在,再来获取值,不知道代码怎么写,请老师指点。

For Each dc As DataCol In DataTables("统计表1").DataCols
    msgbox(dc.Caption)
Next

--  作者:有点甜
--  发布时间:2019/1/25 10:48:00
--  

先这样处理,

 

Dim dic As new Dictionary(of String, String)
For Each dc As DataCol In DataTables("统计表1").DataCols
    dic.Add(dc.Caption, dc.Name)
Next

 

使用的时候,这样处理

 

If dic.ContainsKey("第一列") Then
    msgbox(dic("第一列"))
End If