Foxtable(狐表)用户栏目专家坐堂 → 加载外部数据的时候如何限定记录的条数


  共有2876人关注过本帖树形打印复制链接

主题:加载外部数据的时候如何限定记录的条数

帅哥哟,离线,有人找我吗?
zhangchi96
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:555 积分:5037 威望:0 精华:0 注册:2012/2/11 13:27:00
加载外部数据的时候如何限定记录的条数  发帖心情 Post By:2015/11/18 21:29:00 [只看该作者]

这是一个加载外部数据源中数据的代码:

Dim Filter As String
Filter = " 台帐年月 = '201511‘  and 单位 =  ’部门1‘  "
DataTables("职工").LoadFilter = Filter '设置加载条件
DataTables("职工").Load()

数据源中 记录有若干条,其中的【台帐年月】有三种201509、201510、201511,
                                        【单位】有两种:部门1、部门2,组合了以后就有6种,

1、请教:如何把每种【台帐年月】及每种【单位】都各加载1条记录,总共6条记录 

2、同样 从本地mdb 文件合并数据
Dim mg As New Merger
mg.SourcePath = ProjectPath &"\Data\职工数据库.mdb"
mg.Password = "*****"
mg.SourceTableName = "职工表"
mg.DataTableName = "职工表"
mg.Filter="台帐年月 >= '201509'  and 台帐年月 <= '201511'  "
mg.Merge()
如何把上述提到的6种情况,每种只合并一条记录过来?



[此贴子已经被作者于2015/11/18 22:05:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/19 9:09:00 [只看该作者]

1、参考代码

 

Dim Vals As List(of String())
Vals = DataTables("来源表").GetValues("产品|客户")
For i As Integer = 0 To Vals.Count - 1
    Dim dr As DataRow = DataTables("接收表").AddNew()
    dr("产品") = Vals(i)(0)
    dr("客户") = Vals(i)(1)
Next

 

2、先把数据合并到一张临时表,然后参考1的代码,把临时表的数据合并过去。


 回到顶部
帅哥哟,离线,有人找我吗?
zhangchi96
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:555 积分:5037 威望:0 精华:0 注册:2012/2/11 13:27:00
  发帖心情 Post By:2015/11/19 9:37:00 [只看该作者]

请问:
1、第一个问题中,我的[职工]表,是外部数据,我就是为了少加载数据,节约时间的,您写的[来源表]和[接受表]中,哪个是外部数据表呢?

2、第二个问题,我也是为了少读数据,先到临时表,就去了时间了,因为我的数据可能几万条

其实,我就是有一个数据源,想到数据源读取每一种产品中每一种客户的某一列数据,如[首次订货时间],我设计的思路不一定对,如果有其他办法就更好了,我的数据源有两种,第一是在服务器上的,已经建立了数据源连接的,第二种就是在自己电脑上的mdb文件(没有建立外部数据源连接,只能用合并方法调用数据),请老师帮我设计一个最佳的方案代码。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/19 11:11:00 [只看该作者]

1、做一个查询表

 

se lect Distinct 年月,单位 from {表A}

 

然后,循环每一行,去查其余你需要的后台数据。

 

2、动态添加成数据源,然后用sql语句读取。

 

http://www.foxtable.com/help/topics/1944.htm

 

http://www.foxtable.com/help/topics/2137.htm

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
zhangchi96
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:555 积分:5037 威望:0 精华:0 注册:2012/2/11 13:27:00
  发帖心情 Post By:2015/11/19 14:17:00 [只看该作者]

第一个问题解决了,但代码发不上去
用的是说明书这一部分的内容:
 

3.14.4.1 自行编码合并外部数据

例如项目中有一个员工表,要从一个外部文件中合并数据到这个员工表中,希望在合并过程中检查身份证号码,如果员工表已经存在相同身份证号码的行,则跳过此行。
假定被合并的表和员工表的结构相同,代码如下:

[此贴子已经被作者于2015/11/19 14:23:55编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/19 15:15:00 [只看该作者]

sql语句,适当加入空格才能发上来的,如

 

se lect Distinct 年月,单位 from {表A}

 


 回到顶部
帅哥哟,离线,有人找我吗?
zhangchi96
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:555 积分:5037 威望:0 精华:0 注册:2012/2/11 13:27:00
  发帖心情 Post By:2015/11/19 21:53:00 [只看该作者]

由于我的数据每次保存的时候都重新排序,及【排序】都存在 等于 1的情况,运行后得到需要的结果了
1、
'------ 用加载数据的方法清空网络教职工-----
Dim Filter2 As String
Filter2 = "台帐年月 = '201511' And 排序 = 1 And (是否在职 = '在职' Or 是否在职 = '离退'  ) "
DataTables("网络职工").LoadFilter = Filter2    '设置加载条件
DataTables("网络职工").Load()

2、
Dim mg As New Merger
mg.SourcePath = ProjectPath &"\Data\杏花教育信息数据库.mdb"    '指定数据文件
mg.Password = "zhangruomei"
mg.SourceTableName = "职工信息表" '指定要导入的表
mg.DataTableName = "比对表" '导入后的表名
mg.Filter = "台帐年月 = '201511‘  And 排序 = 1 And (是否在职 = '在职' Or 是否在职 = '离退'  ) "
mg.Merge()

 回到顶部