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


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

主题:关于导入数据

帅哥哟,离线,有人找我吗?
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


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/12 11:29:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
jpguo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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 =
"订单" '指定接收数据的表

 

 

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


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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步清楚选择要导入的对象表,最好是中文名称,目前我是手工定义了几个项目(但是英文表名)供用户来选,所要最终想解决这个问题。


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/13 10:50:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/13 10:57:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
jpguo
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | 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中。然而在[导入数据]按钮中转换了所有表,如果判断选择文件的名称不在转换的范围内,提示:文件名称不对,请检查修改。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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() '保存数据


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/13 12:22:00 [只看该作者]

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

 

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

 

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

 

员工档案对应YGDA

学生档案对应XSDA

 


 回到顶部
总数 14 1 2 下一页