以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于merger的一个问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=41018)

--  作者:东坡一剑
--  发布时间:2013/10/9 13:24:00
--  关于merger的一个问题

用下面一段代码想将Excel表中的数据合并到foxtable中

Dim sts As  String()
sts = New String() {"收货库房","发货单位","发货人","收货人","收货单位","发货库房","单据类型"}
Dim r As Row = Tables("出库记录").AddNew()
Dim s As String
r("出库单号") = e.Form.Controls("出库单号").value
For Each s  In sts
    r(s) = e.Form.Controls(s).Value
Next
r.save()


Messagebox.Show(1)

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
   
    Dim book As new xls.book(dlg.FileName)
    Dim sheet As xls.sheet = book.sheets(0)
 

Messagebox.Show(1.1)
  
    Dim mg As New Merger
    mg.Format = "excel" \'指定格式
    mg.SourcePath = dlg.FileName
    mg.SourceTableName = sheet.Name
Messagebox.Show(dlg.FileName)
Messagebox.Show(sheet.Name)

    mg.DataTableName = "出库明细"
    sts = new String(){"箱号","吊牌价","吊牌价格","折扣","数量","货号","颜色","尺码号","产品名称","产品条码"}

Messagebox.Show(1.2)
\'
    \'For Each s In sts
        \'mg.FieldMaps.add(e.Form.Controls(s).Value,s)
    \'Next
    mg.Merge()

Messagebox.Show(1.5)

    For Each dr As DataRow In DataTables("出库明细").DataRows
        If dr.IsNull("出库单号") AndAlso dr.IsNull("货号") = False Then
            dr("出库单号") = e.Form.Controls("出库单号").Value
        End If
    Next
End If

Messagebox.Show(2)

DataTables("出库明细").save()
Dim trv As WinForm.TreeView = Forms("货品入库").Controls("TreeView1") \'生成在途单的目录树
Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "select 单号 From {出库记录} where 收货单位 =\'" & User.group & "\' And (货品状态 =0 Or 货品状态 Is Null)"
Dim dt As DataTable = cmd.ExecuteReader()
trv.BuildTree(dt,"出库单号")
trv.ExpandAll

MessageBox.Show("导入成功!")

 

运行到messagebox.show(1.2)到messagebox.show(1.5)之间出现如下错误提示:

 

Microsoft Jet 数据库引擎找不到对象\'在途明细\'。请确定对象是否存在,并正确地写出它的名称和路径。

 

而这之间只有一行有效代码

 mg.Merge()

代码所在的窗口所有控件的代码没有\'在途明细\'几个字,相关的表事件的代码好像也没有 \'在途明细\'几个字,测试了半天找不到问题所在,只好请教专家了!


--  作者:Bin
--  发布时间:2013/10/9 14:02:00
--  
东西发上来瞅瞅.
--  作者:东坡一剑
--  发布时间:2013/10/9 20:34:00
--  

 

在打开的窗口中单击“手工导入到货单”打开窗口“导入到货单”

将“记录信息”页面的内容随便填上,单击”普通表导入“ 

 单击“导入”,即可看到这个现象

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.zip


--  作者:有点甜
--  发布时间:2013/10/9 20:46:00
--  
mg.SourceTableName = sheet.Name

上面一句改一下,剩下的错误,你自己看着办吧。

mg.SourceTableName = sheet.Name & “$"

--  作者:东坡一剑
--  发布时间:2013/10/9 21:20:00
--  

直接就解决了,感谢!非常感谢!