以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=29892)

--  作者:东坡一剑
--  发布时间:2013/3/15 17:29:00
--  [求助]

 为了将一个表格中指定列或全部列内容相同的行加以删除,只保留其中一行,在tables(“名称货号单价”)的datacolchanging事件中编制代码如下:

 

代码1

Select Case e.DataCol.Name
    Case "货号" 
        Dim dr As DataRow = e.DataTable.find("[货号] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then
            dr.delete()
            Return
        End If
End Select

当把这个表格整体复制后粘贴回原表格时,

结果只是删除了"货号"列相同的内容,其他列的内容一点没动

而货号列有内容的行其他列却是空的

 

 

代码2
Select Case e.DataCol.Name
    Case "货号"
        "DataTables("名称货号单价").DeleteFor("[货号] = \'" & e.NewValue & "\'" )
End Select

 

直接提示代码是错的,也不知道错在哪里

 

很郁闷,跪求高手指点~~~~~~~

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:作业求助.table

[此贴子已经被作者于2013-3-15 17:33:35编辑过]

--  作者:东坡一剑
--  发布时间:2013/3/16 15:32:00
--  

Select Case e.DataCol.Name
    Case "货号"
        "DataTables("名称货号单价").DeleteFor("[货号] = \'" & e.NewValue & "\'  And _Identify <> " & e.DataRow("_Identify") )
End Select

 

首先要感谢帅哥,在线噢!

muhua
不过把你给出的上述代码贴到datacolchanging 还是提示代码错误,不知道为什么
帮人帮到底,你再给看看是怎么回事行不?

--  作者:东坡一剑
--  发布时间:2013/3/16 18:23:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:窗口.jpg
图片点击可在新窗口打开查看
 贴到datacolchanged也是一样的
--  作者:东坡一剑
--  发布时间:2013/3/20 23:08:00
--  

Case "尺码号","细类","男式女式","品类"
        Dim dr3 As DataRow = DataTables("尺码对照表").Find("[尺码号] = \'" & e.DataRow("尺码号") & _
 "\' AndAlso [品类] = \'"  & e.DataRow("品类")  & "\' AndAlso [细类] = \'"  & e.DataRow("细类") & _
"\' AndAlso [男式女式] = \'"  & e.DataRow("男式女式") & "\'" )
        If dr3 IsNot Nothing Then
            e.DataRow("尺码") = dr3("尺码")
        End If

 

以上代码执行后显示如下错误,能不能指点一下是怎么回事? 不明白操作数是怎么回事。

.NET Framework 版本:2.0.50727.3643
Foxtable 版本:2012.11.28.1
错误所在事件:表,产品表,DataColChanged
详细错误信息:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Data.SyntaxErrorException: 语法错误:“AndAlso”运算符后缺少操作数。
   在 System.Data.ExpressionParser.Parse()
   在 System.Data.DataExpression..ctor(DataTable table, String expression, Type type)
   在 System.Data.Select..ctor(DataTable table, String filterExpression, String sort, DataViewRowState recordStates)
   在 System.Data.DataTable.Select(String filterExpression, String sort)
   在 Foxtable.DataTable.Find(String O0OO100O01011Ol1, String O0lO, Int32 Oll0l)
   在 UserCode.DataColChanged(DataColEventArgs e)
   --- 内部异常堆栈跟踪的结尾 ---
   在 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   在 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   在 Foxtable.DataTable.O1100l0O01l110O0l00Oll11(Object O0l0O0, DataColumnChangeEventArgs O)