Foxtable(狐表)用户栏目专家坐堂 → [求助]内部数据表,如何更新现有数据?


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

主题:[求助]内部数据表,如何更新现有数据?

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


加好友 发短信
等级:婴狐 帖子:2 积分:75 威望:0 精华:0 注册:2012/4/24 11:17:00
[求助]内部数据表,如何更新现有数据?  发帖心情 Post By:2012/6/12 12:12:00 [只看该作者]

 
假如有个学生表,有学号(不重复)、姓名、电话号码三列。

有一份相同的Excel表,想将这份Excel的电话更新到学生表里面去,怎么弄?


我用高速合并功能,foxtable则在学生表里添加了一份完整的记录,每个学生有两条记录了,而不是更新电话号码。

后来想用sql语句更新,可是只能执行一行语句。

除了手动更新以后,还有没有其它方法??上万条记录呀。。。。。



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


加好友 发短信
等级:三尾狐 帖子:762 积分:6302 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2012/6/12 12:37:00 [只看该作者]

高级方法不会,笨方法有一个:

把excel表导入foxtable后,根据学号建立两表的关联,原来的数据表利用表达式把电话引用过来,然后再把电话列(表达式)列的内容复制到另外一数据列,完成后就可以把关联及导入的表删除就行了。

 


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


加好友 发短信
等级:狐神 帖子:6818 积分:43128 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/6/12 12:39:00 [只看该作者]

先将excel导入一个临时表,再遍历临时表:重复的立即删除,再将临时表全部导入正式表。

 

若还搞不定,发个贴子,我帮你搞定。

[此贴子已经被作者于2012-6-12 12:41:12编辑过]

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


加好友 发短信
等级:狐神 帖子:6818 积分:43128 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/6/12 12:40:00 [只看该作者]

以下是引用net2003在2012-6-12 12:12:00的发言:
 
假如有个学生表,有学号(不重复)、姓名、电话号码三列。

有一份相同的Excel表,想将这份Excel的电话更新到学生表里面去,怎么弄?


我用高速合并功能,foxtable则在学生表里添加了一份完整的记录,每个学生有两条记录了,而不是更新电话号码。

后来想用sql语句更新,可是只能执行一行语句。

除了手动更新以后,还有没有其它方法??上万条记录呀。。。。。


上万条应该没有的,你是什么学校?要么是社会大学?中国的社会大学有13多亿学生的。


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


加好友 发短信
等级:狐神 帖子:6818 积分:43128 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/6/12 12:45:00 [只看该作者]

以下是引用wjl-se在2012-6-12 12:37:00的发言:

高级方法不会,笨方法有一个:

把excel表导入foxtable后,根据学号建立两表的关联,原来的数据表利用表达式把电话引用过来,然后再把电话列(表达式)列的内容复制到另外一数据列,完成后就可以把关联及导入的表删除就行了。

 

其实我的也是笨方法,希望有高级方法出现。


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


加好友 发短信
等级:婴狐 帖子:2 积分:75 威望:0 精华:0 注册:2012/4/24 11:17:00
  发帖心情 Post By:2012/6/12 17:25:00 [只看该作者]

以下是引用wjl-se在2012-6-12 12:37:00的发言:

高级方法不会,笨方法有一个:

把excel表导入foxtable后,根据学号建立两表的关联,原来的数据表利用表达式把电话引用过来,然后再把电话列(表达式)列的内容复制到另外一数据列,完成后就可以把关联及导入的表删除就行了。

 




好聪明的办法,我怎么就没想到呢。。。。总之,已经把数据更新完了。


至于能不能做个对话窗出来,后面再想办法。


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2012/6/12 17:53:00 [只看该作者]

大概如此:

Dim TEL,IDT as string

Dim cmd As New SQLCommand

Dim Book As New XLS.Book("D:\學生表.xls") '定义一个Excel工作簿
Dim
Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

For
i As Integer = 1 To 
Sheet.Rows.count
     IDT =  Sheet(i, 0).Value
     TEL =  Sheet(i, 2).Value 
     if  IDT is Nothing then
          Exit for
      End if
      cmd.CommandText = "UPDATE {學生表} SET 電話 = '" & TEL & "' WHERE 學號 ='" & IDT & "'"
      cmd.ExecuteNonQuery() 

Next

DataTables ("學生表").Load() 


 回到顶部