以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  某列值不能重复时,怎样解决克隆此行的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=26364)

--  作者:zcw728909
--  发布时间:2012/12/1 17:15:00
--  某列值不能重复时,怎样解决克隆此行的问题

有一个表“产品信息”,其中“档案编号”是不能重复的,现在在窗体重录入,在窗体中有一个文本框textboc21,在它的值改变后事件中写了代码:Dim Filter As String
With e.Form.Controls("Textbox21")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "档案编号 = \'" & .Value & "\'"
    End If
End With
If Filter > "" Then
    DataTables("产品信息").LoadFilter ="档案编号 = \'" & e.Form.Controls("textbox21").Value & "\'"
    DataTables("产品信息").Load
    Tables("产品信息").Filter = Filter
    If Tables("产品信息").Current IsNot Nothing Then
        Tables("产品信息").Current.Clone()
    End If
End If

目的是先查询,查询出来后克隆此行,这个时候就总是提示“此档案编号已存在”,怎样能解决这个问题?或者说还有其他的方法吗?而且我并不是想复制全部列的内容,只想把某些列的内容复制,能做到吗


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

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2012-12-1 17:15:59编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/12/1 17:22:00
--  

自己做个克隆行:

 

Dim r1 As Row = Tables("xxx").Current

Dim r2 As Row = Tables("xxx").AddNew

For each c As Col in Tables("xxx").Cols

    if c.Name <> "编号" Then

          r2(c.name) = r1(c.name)

    End if

Next

 


--  作者:zcw728909
--  发布时间:2012/12/1 17:38:00
--  

谢谢了,我先试试