Foxtable(狐表)用户栏目专家坐堂 → 请教:ACC数据库合并表时提示错误,是何原因?


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

主题:请教:ACC数据库合并表时提示错误,是何原因?

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/11/4 12:21:00 [只看该作者]

我测试可以啊:

Dim mg As New Merger
mg.SourcePath = "c:\112.xls"
mg.Format = "excel" '指定格式
mg.SourceTableName = "员工档案" '指定要合并的表
mg.DataTableName = "员工档案" '指定接收数据的表
mg.Merge() '开始合并

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


加好友 发短信
等级:狐精 帖子:3313 积分:23140 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/11/4 12:26:00 [只看该作者]

以下是引用yangming在2009-11-4 10:51:00的发言:
就是这段代码,又报其它错了,请看图片
Dim mg As New Merger
mg.SourcePath = "c:\导出文件\2009-11-3导出.xls"
mg.Format = "excel" '指定格式
mg.SourceTableName = "员工档案" '指定要合并的表
mg.DataTableName = "员工档案" '指定接收数据的表
mg.Filter="[_Identify] Is Not Null"
mg.Merge() '开始合并

图片点击可在新窗口打开查看此主题相关图片如下:合并表2.jpg
图片点击可在新窗口打开查看

 还需要加一行字段判断: mg.Filter = "[列] <> ''" '此列的值必须是不含空值的情况


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


加好友 发短信
等级:狐精 帖子:3313 积分:23140 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/11/4 12:32:00 [只看该作者]

Dim dlg As New OpenFileDialog '定一个新的OpenFileDialog
dim s1 as string
   dlg.Filter= "Excel文件|*.xls"    '|文本文件|*.txt|Access文件|*.mdb" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
   s1 = dlg.FileName
   If s1<> " " then
      Dim Book As New XLS.Book(s1)
      Dim ss3 as string = Book.Sheets(0).Name + "$"
      Dim mg As New Merger
      mg.SourcePath = s1
      mg.Format = "excel" '指定格式
      mg.SourceTableName = ss3     '指定要合并的表
      mg.DataTableName = "导入临时表"   '指定接收数据的表
      mg.Filter = "[货主名称] <> ''" '指定合并条件
      mg.Merge() '开始合并
  end if
end if
如去掉红色部分就会出现楼主的问题。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/11/4 13:00:00 [只看该作者]

我忘了说明了,我的员工档案表是ACC外部表,我要导入的,就是我用此表保存的表,就是这段代码
Tables("员工档案").SaveExcel("c:\导出文件\"& Date.Today & "导出.xls","员工档案",False)

 回到顶部
美女呀,离线,留言给我吧!
yangming
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/11/4 13:11:00 [只看该作者]

在数据库中_Identify是主键,但不是自动增量,因为这个表我是要做新增列处理后导出的

 回到顶部
美女呀,离线,留言给我吧!
yangming
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/11/4 13:21:00 [只看该作者]

我知道是何原因了,主键列不是自动增量型,所以做合并时出现错误,这个问题如何解决呢?因为外部表要做新增列,新增列后再导出,目前只能是导出主键列为_Identify,而且又不能做成自动增量

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/11/4 15:14:00 [只看该作者]

看看能否在DataRowAdding事件设置代码,自己设置主键列内容。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/11/5 9:18:00 [只看该作者]

以下是引用狐狸爸爸在2009-11-4 15:14:00的发言:
看看能否在DataRowAdding事件设置代码,自己设置主键列内容。

没用,代码这样
e.DataRow("_Identify") = e.DataTable.Compute("Max(_Identify)") + 1


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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/11/5 10:00:00 [只看该作者]

没有办法了,要用_Identify,必须用自动增量的。
否则就不用_identify作为主键列的名称

[此贴子已经被作者于2009-11-5 9:59:51编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/11/5 10:17:00 [只看该作者]

以下是引用狐狸爸爸在2009-11-5 10:00:00的发言:

没有办法了,要用_Identify,必须用自动增量的。
否则就不用_identify作为主键列的名称

[此贴子已经被作者于2009-11-5 9:59:51编辑过]

我也不想用_identify作为主键列,能自定义不是更好?我发现外部表的主键真是很麻烦
三种办法的比较:
重定向可以将_identify做为主键并自动增量,但是,重定向不能将新增的临时列导出
而导出时,用菜单导出时,可以将_identify定为主键,但不能将此列做为自动增量
用代码导出时,无法定主键,更无法定自动增量了

有何办法,在导出时自定义主键并自动增量,或者退一步,导出时将_identify定为主键并自动增量?


 回到顶部
总数 28 上一页 1 2 3 下一页