Foxtable(狐表)用户栏目专家坐堂 → 关于合并数据与DataColChanged事件的使用问题


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

主题:关于合并数据与DataColChanged事件的使用问题

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


加好友 发短信
等级:幼狐 帖子:132 积分:1232 威望:0 精华:0 注册:2017/3/20 13:41:00
关于合并数据与DataColChanged事件的使用问题  发帖心情 Post By:2017/8/24 12:55:00 [显示全部帖子]

老师好!
第一个问题:
我的表A中用了DataColChanged事件,通过这个事件完成表A、表B“非关联表之间的数据同步”功能。
现在的问题是,表A的数据通过TOACCESS导出来,然后通过合并数据功能倒入到另一个空白的项目中后,发现表A所有的行都同步到了表B中,相当于在合并数据过程中,软件自动触发了DataColChanged事件,将表A中所有的行同步到了表B中。
我想要的结果是,合并数据只是合并数据,不触发DataColChanged事件,如何实现?
第二个问题:
我购买了开发版,我不想通过网络进行远程给其他人自动更新,而是通过生成补丁,拷贝到其他人的电脑上安装完成更新,是否可行?
谢谢!

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


加好友 发短信
等级:幼狐 帖子:132 积分:1232 威望:0 精华:0 注册:2017/3/20 13:41:00
  发帖心情 Post By:2017/8/24 20:45:00 [显示全部帖子]

谢谢,搞定了!
还有一个问题,用代码实现合并数据时如何进行主键比较,剔除重复行?

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


加好友 发短信
等级:幼狐 帖子:132 积分:1232 威望:0 精华:0 注册:2017/3/20 13:41:00
  发帖心情 Post By:2017/8/24 21:36:00 [显示全部帖子]

谢谢!
其实我的问题是这样的:我的部门是一个四个人的小团队,由于各种原因,不能通过网络使用FOXTABLE,只能定时(每个月)将他们的mdb文件发给我,我每个月更新到统一的项目进行管理。
所以,我每个月将其他人的mdb文件通过合并数据功能,合并到同一个项目中。代码如下,如何修改以下代码,可以通过合并更新前一个月的数据,而不是直接复制进来?
谢谢!:
SystemReady = False
Try
    Dim dlg As  new OpenFileDialog
    If dlg.ShowDialog = DialogResult.OK Then
        If Connections.Contains("test") Then Connections.Delete("test")
        Connections.Add("test","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dlg.FileName & ";Persist Security Info=False")
        For Each tn As String In Connections("test").GetTableNames
            Dim mg As New Merger
            mg.SourcePath = dlg.FileName
            mg.SourceTableName = tn
            mg.DataTableName = tn
            mg.Merge()
        Next
    End If
    
Catch ex As Exception
    MessageBox.Show("追加数据失败")
End Try
SystemReady = True

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


加好友 发短信
等级:幼狐 帖子:132 积分:1232 威望:0 精华:0 注册:2017/3/20 13:41:00
  发帖心情 Post By:2017/8/24 23:31:00 [显示全部帖子]

您这个代码中,下面的第二行——cmd.C——是什么意思,点击确定后出错。谢谢!
  Dim dt As DataTable
            cmd.C
            cmd.CommandText = "SELECT * From {" & tn & "}"

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


加好友 发短信
等级:幼狐 帖子:132 积分:1232 威望:0 精华:0 注册:2017/3/20 13:41:00
  发帖心情 Post By:2017/8/24 23:49:00 [显示全部帖子]

不好意思,出错了。点击合并数据按钮(在快速访问菜单上)后,弹出提示框“追加数据失败”,表格数据没有更新。
1、您这个代码写在哪里没关系的吧?
2、如果直接用您这个代码,我的项目需要修改其他哪些地方?
谢谢!

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


加好友 发短信
等级:幼狐 帖子:132 积分:1232 威望:0 精华:0 注册:2017/3/20 13:41:00
  发帖心情 Post By:2017/8/26 14:44:00 [显示全部帖子]

我每个表格的主键名称都是foxtable内部默认的_Identify。但是,色老师帮我修改的代码中,以下这一行是什么意思,我该如何根据我的项目修改。谢谢!    If fdr Is Nothing Then fdr = DataTables("员工").AddNew()


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


加好友 发短信
等级:幼狐 帖子:132 积分:1232 威望:0 精华:0 注册:2017/3/20 13:41:00
  发帖心情 Post By:2017/8/26 17:09:00 [显示全部帖子]

就是说,以下的代码增加一个主键比较的功能,怎么修改?谢谢!
SystemReady = False
Try
    Dim dlg As  new OpenFileDialog
    If dlg.ShowDialog = DialogResult.OK Then
        If Connections.Contains("test") Then Connections.Delete("test")
        Connections.Add("test","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dlg.FileName & ";Persist Security Info=False")
        For Each tn As String In Connections("test").GetTableNames
            Dim mg As New Merger
            mg.SourcePath = dlg.FileName
            mg.SourceTableName = tn
            mg.DataTableName = tn
            mg.Merge()
        Next
    End If
    
Catch ex As Exception
    MessageBox.Show("追加数据失败")
End Try
SystemReady = True

 回到顶部