Merger

Merger用于合并数据。
合并的速度要远低于导入,所以如果有大量数据要引入管理项目中,最好用导入。

属性

方法

示例一

合并access文件:

Dim mg As New Merger
mg
.SourcePath = "c:\data\销售管理.mdb"
mg.SourceTableName =
"订单"

mg.DataTableName =
"订单"
mg.Merge()

示例二

如果希望出现一个打开文件对话框,合并用户指定的文件,可以参考下面的代码:

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg
.Filter= "Access文件|*.mdb" '设置筛选器
If
dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim
mg As New Merger
   
mg.SourcePath = dlg.FileName
   
mg.SourceTableName = "订单"
   
mg.DataTableName = "订单"
   
mg.Merge()
End If

示例三

从指定的数据源中合并数据:

Dim mg As New Merger
mg.ConnectionName =
"nwnd" '指定数据源名称
mg.SourceTableName =
"订单" '指定要合并的表
mg.DataTableName =
"订单" '指定接收数据的表
mg.Merge()
'开始合并

示例四

FieldMaps和Filter属性的用法示例:

Dim mg As New Merger
mg
.SourcePath = "c:\data\销售管理.accdb"
mg.Format =
"Access2007" '指定格式
mg
.SourceTableName = "订单" '指定要合并的表
mg
.DataTableName = "订单" '指定接收数据的表
mg.FieldMaps.Add(
"ID","编号") '将指定ID列的数据合并到编号列中
mg.Filter =
"[日期] > #5/31/1999#" '指定合并条件
mg
.Merge() '开始合并

示例五

合并DBF文件:

Dim mg As New Merger
mg
.SourcePath = "c:\data\" '指定数据文件所在目录
mg.Format =
"dbase" '指定格式
mg
.SourceTableName = "订单" '指定要合并的dbase文件,无需扩展名
mg
.DataTableName = "订单" '指定接收数据的表
mg
.Merge() '开始合并

合并"c:\data\订单.dbf"文件的数据到当前项目的订单表

示例六

合并文本文件:

Dim mg As New Merger
mg
.SourcePath = "c:\data\" '指定数据文件所在目录
mg.Format =
"Delimited" '指定格式
mg
.SourceTableName = "订单" '指定要合并的文件,无需扩展名
mg
.DataTableName = "订单" '指定接收数据的表
mg
.Merge() '开始合并

合并文本文件的时候,最好配合有schema.ini文件。

示例七

合并Excel文件:

Dim mg As New Merger
mg
.SourcePath = "c:\data\销售管理.xls"
mg
.Format = "excel" '指定格式
mg
.SourceTableName = "订单" '指定要合并的表
mg
.DataTableName = "订单" '指定接收数据的表
mg
.Merge() '开始合并

一些Excel文件,可能需要在表名后加上符号$才能正常导入,例如:

Dim mg As New Merger
mg
.SourcePath = "c:\data\销售管理.xls"
mg
.Format = "excel" '指定格式
mg
.SourceTableName = "订单$" '指定要合并的表
mg
.DataTableName = "订单" '指定接收数据的表
mg
.Merge() '开始合并

示例八

下面是一个批量合并的例子,假定目录c:\data下有多个Excel文件,这些文件都有一个名为订单的表,需要将这些表中的数据批量并到Foxtable的订单表中:

For Each fl As String In FileSys.GetFiles("c:\Data")
    Dim
mg As
New Merger
    mg.SourcePath = fl
    mg.Format =
"excel" '指定格式
    mg.SourceTableName =
"订单" '指定要合并的表
    mg.DataTableName =
"订单" '指定接收数据的表
    mg.Merge()
'开始合并
Next

示例九

也可以利用打开文件对话框一次选择多个文件来批量合并,例如:

Dim dlg As New OpenFileDialog
dlg
.Filter = "Access文件|*.mdb"
dlg
.MultiSelect = True '允许选择多个文件
If
dlg.ShowDialog =DialogResult.OK Then
    For Each
fl As String In dlg.FileNames
        Dim
mg As New Merger
       
mg.SourcePath = fl
       
mg.SourceTableName = "订单"
       
mg.DataTableName = "订单"
       
mg.Merge()
    Next
End If


本页地址:http://www.foxtable.com/webhelp/topics/0685.htm