以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于导入数据  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=29707)

--  作者:jpguo
--  发布时间:2013/3/12 11:13:00
--  关于导入数据

需求:

1、目前数据库的表名是英文的,例如员工档案YGDA。想在导入时,通过选择中文命名的文件,自动对应要导入的对像表,且界面显示是中文名称。

2、如下图:在选择导入文件“员工档案”后,希望自动在前台显示导入对像表中显示“员工档案”,但在后台执行导入时又要对应英文表名“YGDA”。

 
图片点击可在新窗口打开查看此主题相关图片如下:导入数据.jpg
图片点击可在新窗口打开查看

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导入数据时在选择文件后自动辨别中文表名.foxdb


--  作者:jpguo
--  发布时间:2013/3/12 15:59:00
--  
以下是引用muhua在2013-3-12 11:29:00的发言:

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

 

自己设置一下两个表名的设置:

mg.SourceTableName = "订单" \'指定要合并的表
mg.DataTableName =
"订单" \'指定接收数据的表

 

 

这个答案好像没有针对我们提的需求来说哦
你说的这个在哪个地方设?
我现在的需求是这样,所有导入的都调用这一个导入窗口
所以想通过选择的导入文件中文名,自动找到对应的表。


--  作者:狐狸爸爸
--  发布时间:2013/3/12 18:25:00
--  

问题不清晰,怎么知道YGDA对应的就是员工档案? 除非你excel表的名称固定死YDGA

 

1、选择文件按钮

With e.Form
    Dim dlg As New OpenFileDialog
    dlg.Filter= "Excel 97-2003文件(*.xls)|*.xls|Excel 2007文件(*.xlsx)|*.xlsx"
    If dlg.ShowDialog = DialogResult.Ok Then
        .Controls("TextBox1").value = dlg.FileName
        Dim nm As String = FileSys.GetName(dlg.FileName)
        .Controls("ComboBox1").value = nm.SubString(0,nm.IndexOf("."))
    End If

End With

 

 

2、导入按钮

 

Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim mg As New Merger
mg.SourcePath = txt.Text  \'指定路径文件
mg.Format = "excel" \'指定格式
mg.SourceTableName = "YDGA" \'指定要合并的表
mg.DataTableName = cmb.Text \'指定接收数据的表
mg.Merge() \'开始合并
DataTables(cmb.Text).Save() \'保存数据


--  作者:jpguo
--  发布时间:2013/3/13 10:45:00
--  
以下是引用狐狸爸爸在2013-3-12 18:25:00的发言:

问题不清晰,怎么知道YGDA对应的就是员工档案? 除非你excel表的名称固定死YDGA

 

1、选择文件按钮

With e.Form
    Dim dlg As New OpenFileDialog
    dlg.Filter= "Excel 97-2003文件(*.xls)|*.xls|Excel 2007文件(*.xlsx)|*.xlsx"
    If dlg.ShowDialog = DialogResult.Ok Then
        .Controls("TextBox1").value = dlg.FileName
        Dim nm As String = FileSys.GetName(dlg.FileName)
        .Controls("ComboBox1").value = nm.SubString(0,nm.IndexOf("."))
    End If

End With

 

 

2、导入按钮

 

Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim mg As New Merger
mg.SourcePath = txt.Text  \'指定路径文件
mg.Format = "excel" \'指定格式
mg.SourceTableName = "YDGA" \'指定要合并的表
mg.DataTableName = cmb.Text \'指定接收数据的表
mg.Merge() \'开始合并
DataTables(cmb.Text).Save() \'保存数据

要导入的EXCEL文件名是可以确定和表的标题一致,都是中文名称,比如“员工档案”。

目前的需求是系统中所有涉及要导入数据的表,均共用这一个导入窗口。我是想怎么让用户在第1步选择好导入文件后,能够在第2步清楚选择要导入的对象表,最好是中文名称,目前我是手工定义了几个项目(但是英文表名)供用户来选,所要最终想解决这个问题。


--  作者:jpguo
--  发布时间:2013/3/13 12:00:00
--  
以下是引用muhua在2013-3-13 10:57:00的发言:

Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim mg As New Merger
mg.SourcePath = txt.Text  \'指定路径文件
mg.Format = "excel" \'指定格式
mg.SourceTableName = "Sheet1$" \'指定要合并的表

Dim str As String = cmb.Text
Select Case str
    Case "员工档案"
        str = "YGDA"
End Select

mg.DataTableName = str \'指定接收数据的表
mg.Merge() \'开始合并
DataTables(str).Save() \'保存数据

 

 

[此贴子已经被作者于2013-3-13 11:01:16编辑过]

因为第一步已做了将选择的文件名称赋值到第2步的ComboBox1中。然而在[导入数据]按钮中转换了所有表,如果判断选择文件的名称不在转换的范围内,提示:文件名称不对,请检查修改。


--  作者:狐狸爸爸
--  发布时间:2013/3/13 12:12:00
--  

我始终无法理解这样的问题,蒙一下:

 

Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim mg As New Merger
mg.SourcePath = txt.Text  \'指定路径文件
mg.Format = "excel" \'指定格式
mg.SourceTableName = "Sheet1$" \'指定要合并的表
Dim str As String = cmb.Text
Select Case str
    Case "员工档案"
        str = "YGDA"
    Case "学生档案"
        str = "XSDA"
     Case Else
       MessageBox.show("选择的文件不对")

       Return
End Select
mg.DataTableName = str \'指定接收数据的表
mg.Merge() \'开始合并
DataTables(str).Save() \'保存数据


--  作者:狐狸爸爸
--  发布时间:2013/3/13 12:22:00
--  

是不是每个excel文件的表名和文件名相同,例如:

 

"员工档案.xls"这个文件中的表是“员工档案”,只是要导入到foxtable中名为"YGDA"的表中
"学生档案.xls"这个文件中的表是“学生档案”,只是要导入到foxtable中名为"XSDA"的表中

 

你需要用代码处理这种应对关系:

 

员工档案对应YGDA

学生档案对应XSDA

 


--  作者:jpguo
--  发布时间:2013/3/13 13:03:00
--  

已经OK了,谢谢。


--  作者:zerov
--  发布时间:2013/3/13 13:06:00
--  回复:(jpguo)已经OK了,谢谢。
把思路或代码贴出来吧,让大家都来学习你解决问题的经验,以后我等菜鸟又可以学一招
--  作者:狐狸爸爸
--  发布时间:2013/3/13 14:05:00
--  

如果我是蒙对了,那么感觉楼主也太被动了,因为这本是一个很简单的问题,不应该拖这么久的。

 

磨刀不误砍柴工,建议回头系统学习一下帮助文件。

 

看帮助一定要按顺序,头一两遍可以不求甚解,第三遍开始要将每个例子实际操作演练一遍,不明白的就上论坛求助。
三遍之后才开始做系统,先设计好表,想做什么功能,就做什么功能,遇到问题在帮助找答案,找不到的在论坛提问,不断遇到问题,不断解决问题,慢慢就熟悉了。
此外一定要先掌握《使用指南》,然后再看《开发指南