Foxtable(狐表)用户栏目专家坐堂 → 又不会了-从表B往表A添加内容


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

主题:又不会了-从表B往表A添加内容

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
又不会了-从表B往表A添加内容  发帖心情 Post By:2009/2/13 20:13:00 [只看该作者]

表B有窗口按钮,老师们请帮修正按钮代码:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:从表b往表a添加内容.table


表B中有详细说明! 表B的内容(包括)空行都不能删除的情况下。
按钮中的代码:

Dim km As string = Tables("表B").Current("第一列")
Dim ykm As DataRow = DataTables("表A").Find("[第一列]  = '" & km & "'")
    if ykm Is Nothing   Then
        If MainTable.Name = "表B"
            Dim f As New Filler
            f.SourceTable = DataTables("表B")
            f.SourceCols = "第一列,第二列,第三列,第四列,第五列,第六列,第七列"
            f.DataTable = DataTables("表A")
            f.DataCols = "第一列,第二列,第三列,第四列,第五列,第六列,第七列"
            f.Fill() '填充数据
        End If
    End If


说明:有时代码不执行,有时又执行? 执行起来会把所有行都添加的表A。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/2/13 20:56:00 [只看该作者]

是不是想这样?

Dim km As string = Tables("表B").Current("第一列")
Dim ykm As DataRow = DataTables("表A").Find("[第一列]  = '" & km & " '")
if ykm Is Nothing   Then
    If MainTable.Name = "表B" And Tables("表B").Current("第一列") IsNot Nothing Then
        Dim f As New Filler
        f.SourceTable = DataTables("表B")
        f.DataTable = DataTables("表A")
        f.Filter = "[第一列] = '" & km & "'"
        f.Fill() '填充数据
    End If
End If

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/2/13 20:59:00 [只看该作者]

第二句代码感觉是多余的,因为只需在filler中加上ExcludeExistValue就可以了。
[此贴子已经被作者于2009-2-13 20:58:57编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/2/13 21:03:00 [只看该作者]

czy版主: 你的代码没反应啊???请打开1楼文件试一试好吗~

要把指定列的内容添加到表A啊。
[此贴子已经被作者于2009-2-13 21:06:00编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/2/13 21:11:00 [只看该作者]

我可以呀。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/2/13 21:25:00 [只看该作者]

哦~ 是我漏掉来源列和目标列了,完全照搬你2漏的代码了,不好意思。
不过,你的代码是把当前行的内容添加到表A,如果有n行(不一定连续)表A没有的内容,如何一次全部都添加过去?


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/2/13 22:06:00 [只看该作者]

以下是引用mr725在2009-2-13 21:25:00的发言:

哦~ 是我漏掉来源列和目标列了,完全照搬你2漏的代码了,不好意思。
不过,你的代码是把当前行的内容添加到表A,如果有n行(不一定连续)表A没有的内容,如何一次全部都添加过去?


Dim f As New Filler
f.SourceTable = DataTables("表B")
f.SourceCols = "第一列,第二列,第三列,第四列,第五列,第六列,第七列"
f.DataTable = DataTables("表A")
f.DataCols = "第一列,第二列,第三列,第四列,第五列,第六列,第七列"
f.ExcludeExistValue = true
f.ExcludeNullValue =true
f.Fill() '填充数据


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/2/13 22:45:00 [只看该作者]

好强啊!~ 谢谢!
慢慢学习了。


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


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

呵呵,下面的代码,效率会高一些:

For Each dr1 As DataRow In DataTables("表B")
    Dim Dr2 As DataRow = DataTables("表A") .AddNew()
    For Each dc As DataCol In DataTables("表B").DataCols
       dr2(dc.name) = dr1(dc.name)
    Next
Next



 回到顶部