我现在碰到一个头疼的问题 就是填充 接收表里本来就存在的数据 用filter填充后 居然还能重复填充了一次 才导致这么多数据量
Dim wbl1 As WinForm.Table = e.Form.Controls("Table1")
Dim tbl1 As Table = wbl1.Table
tbl1.DataTable.Save()
Dim v As Double
v = Tables("售后客户录入_table1").Compute("max(公里数)")
Dim d As Date
d = Tables("售后客户录入_table1").Compute("max(进店时间)")
If e.Form.controls("textbox1").text = v And e.Form.controls("DateTimePicker2").text = d Then
Tables("售后客户档案_售后客户档案Table2").current.save()
e.sender.Enabled = False
Else
If DataTables("售后客户录入_Table1").Compute("Count(进店时间)","进店时间 >= #"& Tables("售后客户档案_售后客户档案Table2").current("最后进店日期").addyears(-1) &"# And 底盘号 = '" & Tables("售后客户档案_售后客户档案Table2").current("底盘号") & "'") >= 3 Then
Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "A"
ElseIf DataTables("售后客户录入_Table1").Compute("Count(进店时间)","进店时间 >= #"& Tables("售后客户档案_售后客户档案Table2").current("最后进店日期").addyears(-1) &"# And 底盘号 = '" & Tables("售后客户档案_售后客户档案Table2").current("底盘号") & "'") = 2 Then
Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "B"
ElseIf DataTables("售后客户录入_Table1").Compute("Count(进店时间)","进店时间 >= #"& Tables("售后客户档案_售后客户档案Table2").current("最后进店日期").addyears(-1) &"# And 底盘号 = '" & Tables("售后客户档案_售后客户档案Table2").current("底盘号") & "'") = 1 Then
Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "C"
'ElseIf DataTables("售后客户录入_Table1").Compute("Count(进店时间)","进店时间 >= #"& date.today.addyears(-1)&"# and 底盘号 = '" & Tables("售后客户档案_售后客户档案Table2").current("底盘号") & "'") <= 1 Then
'ElseIf DataTables("售后客户录入_Table1").Compute("Count(进店时间)","进店时间 >= #"& Tables("售后客户档案_售后客户档案Table2").current("最后进店日期").addyears(-2) &"# And 底盘号 = '" & Tables("售后客户档案_售后客户档案Table2").current("底盘号") & "'") = 0 Then
'Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "无效档案"
Else
Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "D"
End If
If (e.Form.controls("textbox1").text - v) < 7000 And (CDate(e.Form.controls("DateTimePicker2").value) - d).totaldays < 180 Then
Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "A"
End If
If Date.Today.addmonths(-3) < Tables("售后客户档案_售后客户档案Table2").current("建档日期") Then
Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "A"
End If
If Tables("售后客户档案_售后客户档案Table2").current.IsNull("编号") = True Then
Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "E"
End If
Tables("售后客户档案_售后客户档案Table2").current.save()
Dim g As New Filler
g.SourceTable = DataTables("售后客户档案_售后客户档案Table2") '指定数据来源
g.SourceCols = "底盘号,里程,最后进店日期" '指定数据来源列
g.DataTable = DataTables("售后客户录入_Table1")'指定数据接收表
g.DataCols = "底盘号,公里数,进店时间" '指定数据接收列
g.ExcludeExistValue =True
g.ExcludeNullValue =False
g.Distinct =True
g.Append =True
g.Fill() Dim wbl As WinForm.Table = e.Form.Controls("Table1")
Dim tbl As Table = wbl.Table
tbl.DataTable.Save()
DataTables("售后客户档案_售后客户档案Table1").load
Tables("售后客户档案_售后客户档案Table1").filter = "底盘号 = '" & Tables("售后客户档案_售后客户档案Table2").Current("底盘号") & "'"
Tables("售后客户档案_售后客户档案Table1").Sort = "进店时间"
e.sender.Enabled = False
End If
就是红色这段~ 只要一保存 就把来源表的3000多数据 全部填充进了 接收表 不管有没重复
g.ExcludeExistValue =True
g.Distinct =True这2句 貌似没起到效果!
[此贴子已经被作者于2013-4-8 14:34:03编辑过]