Foxtable(狐表)用户栏目专家坐堂 → 关于导入数据


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

主题:关于导入数据

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


加好友 发短信
等级:幼狐 帖子:155 积分:1556 威望:0 精华:0 注册:2011/4/8 14:38:00
关于导入数据  发帖心情 Post By:2013/3/12 11:13:00 [显示全部帖子]

需求:

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

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

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

 

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


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


加好友 发短信
等级:幼狐 帖子:155 积分:1556 威望:0 精华:0 注册:2011/4/8 14:38:00
  发帖心情 Post By: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 =
"订单" '指定接收数据的表

 

 

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


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


加好友 发短信
等级:幼狐 帖子:155 积分:1556 威望:0 精华:0 注册:2011/4/8 14:38:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:155 积分:1556 威望:0 精华:0 注册:2011/4/8 14:38:00
  发帖心情 Post By: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中。然而在[导入数据]按钮中转换了所有表,如果判断选择文件的名称不在转换的范围内,提示:文件名称不对,请检查修改。


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


加好友 发短信
等级:幼狐 帖子:155 积分:1556 威望:0 精华:0 注册:2011/4/8 14:38:00
  发帖心情 Post By:2013/3/13 13:03:00 [显示全部帖子]

已经OK了,谢谢。


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


加好友 发短信
等级:幼狐 帖子:155 积分:1556 威望:0 精华:0 注册:2011/4/8 14:38:00
  发帖心情 Post By:2013/3/15 10:25:00 [显示全部帖子]

以下是引用zerov在2013-3-13 13:06:00的发言:
把思路或代码贴出来吧,让大家都来学习你解决问题的经验,以后我等菜鸟又可以学一招

主要是所有导入共用一个窗口,希望通过选择文件后自动匹配对应接收表,然而文件名通常是中文的,如果表名是中文的那么就无需转换,如果英文的,就要先转换好,让系统自动匹配。

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 = "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() '保存数据


 回到顶部