表B有窗口按钮,老师们请帮修正按钮代码:
表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。
第二句代码感觉是多余的,因为只需在filler中加上
ExcludeExistValue就可以了。
[此贴子已经被作者于2009-2-13 20:58:57编辑过]
czy版主: 你的代码没反应啊???请打开1楼文件试一试好吗~
要把指定列的内容添加到表A啊。
[此贴子已经被作者于2009-2-13 21:06:00编辑过]
哦~ 是我漏掉来源列和目标列了,完全照搬你2漏的代码了,不好意思。
不过,你的代码是把当前行的内容添加到表A,如果有n行(不一定连续)表A没有的内容,如何一次全部都添加过去?
以下是引用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() '填充数据
呵呵,下面的代码,效率会高一些:
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