Foxtable(狐表)用户栏目专家坐堂 → 同样一个表对应2个数据源切换的问题


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

主题:同样一个表对应2个数据源切换的问题

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


加好友 发短信
等级:贵宾 帖子:102 积分:880 威望:0 精华:4 注册:2008/8/31 21:47:00
同样一个表对应2个数据源切换的问题  发帖心情 Post By:2009/11/12 16:16:00 [只看该作者]

附件案例中,表1是在a数据源上加载建立的外部表,但实际应用中需要动态切换对应到b数据源。
先选择一个数据源,增加一行,当忘记保存后,通过combobox切换数据源有报错现象。如果之前修改了数据,直接切换数据源,回头看就发现没有保存住。combobox有ValueChanged,没有beforeValueChang事件。如果在ValueChanged中间加datatables.save()会造成应该保存在A数据源中记录被保存到b数据源中了,所以此种想法不合适。
考虑之后,在combobox的MouseEnter事件中增加了代码(附件案例中也增加):
If DataTables("表1").HasChanges Then
    If MessageBox.Show("表已经被修改,是否保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
        DataTables("表1").Save()
    End If
end if
测试后,对表1的行记录进行修改和删除是正常的,但新增行却有不同,对a数据源,新增记录可正常保存,也看到编号自动更新。切换到b数据源,新增记录保存就出错。使用菜单按钮保存,新增行的编号变为0。如果此时再新增行保存又会报错。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:切换数据源.rar


图片点击可在新窗口打开查看此主题相关图片如下:保存出错1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:保存出错2.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2009-11-12 16:17:41编辑过]

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


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

加一行:


DataTables("表1").Save()
dim zt as string=Forms("窗口1").Controls("ComboBox1").value
Select Case zt
    Case "A"
        DataTables("表1").LoadFilter = "编号>=0"
        DataTables("表1").ChangeConnection( "a" )
    Case "B"
        DataTables("表1").LoadFilter = "编号>=0"
        DataTables("表1").ChangeConnection( "b" )
    Case Else
        MessageBox.Show("请正确选择帐套信息!")
        return
End Select
[此贴子已经被作者于2009-11-12 16:35:32编辑过]

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


加好友 发短信
等级:贵宾 帖子:102 积分:880 威望:0 精华:4 注册:2008/8/31 21:47:00
  发帖心情 Post By:2009/11/12 17:15:00 [只看该作者]

我试过。在选择帐套B后,新增行并填写数据后,切换帐套到A时报错。如上图(保存出错1.jpg)
对A数据源操作没发现问题,因它是原先建立的。B数据源是后续切换的,可能是对b数据源的主键处理存在问题。 报错后,2个数据源都保存了记录。

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


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

搞定,下次更新不会有了

 回到顶部