以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]筛选错误提示 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=75016) |
-- 作者:dj68301367 -- 发布时间:2015/9/24 16:17:00 -- [求助]筛选错误提示 Dim Filter As String With e.Form.Controls("Txt料号") If .Value IsNot Nothing Then Filter = "物料编码 like \'%" & .Value & "%\'" End If End With With e.Form.Controls("Txt名称") If .Value IsNot Nothing Then If filter> "" Filter =Filter & "and 物料名称 like \'%" & .Value & "%\'" Else Filter ="物料名称 like \'%" & .Value & "%\'" End If End If End With With e.Form.Controls("Txt规格") If .Value IsNot Nothing Then If filter> "" Filter =Filter & "and 物料规格 like \'%" & .Value & "%\'" Else Filter ="物料规格 like \'%" & .Value & "%\'" End If End If End With msgbox(filter) If filter Is Nothing Then Tables("库存总表_TabKC").ApplyFilter = False ElseIf Filter > "" Then Tables("库存总表_TabKC").Filter = Filter End If 前面提示的查找条件没有问题,如果查找列中有我要找的内容。也不会出现错误提示。 但如果没有的话,就会出现错误提示了 错误提示如下。 未将对象引用设置到对象的实例。 |
-- 作者:大红袍 -- 发布时间:2015/9/24 16:48:00 -- 应该currentChanged事件有问题。加上判断,如
If e.Table.Current Is Nothing Then Return |
-- 作者:dj68301367 -- 发布时间:2015/9/26 9:07:00 -- If e.Table.Current IsNot Nothing Then Dim dr As DataRow = e.Table.Current.DataRow Dim wz As Integer = Tables("库存总表").FindRow(dr) If wz >=0 Then Tables("库存总表").Position = wz End If End If Tables("库存总表_Tab正常领料1").Filter = "物料编码 = \'" & CurrentTable.Current("物料编码") & "\'" Tables("库存总表_Tab其它领料").Filter = "物料编码 = \'" & CurrentTable.Current("物料编码") & "\'" Tables("库存总表_Tab入仓单").Filter = "物料编码 = \'" & CurrentTable.Current("物料编码") & "\'" Tables("库存总表_Tab退货").Filter = "物料编码 = \'" & CurrentTable.Current("物料编码") & "\'" Tables("库存总表_Tab物料").Filter = "物料_物料编码 = \'" & CurrentTable.Current("物料编码") & "\'" Tables("库存总表_Tab超领料").Filter = "物料编码 = \'" & CurrentTable.Current("物料编码") & "\'" |
-- 作者:dj68301367 -- 发布时间:2015/9/26 9:08:00 -- 改成这样? If e.Table.Current IsNot Nothing Then
Dim dr As DataRow = e.Table.Current.DataRow Dim wz As Integer = Tables("库存总表").FindRow(dr) If wz >=0 Then Tables("库存总表").Position = wz End If ElseIf Is Nothing Then Return End If |
-- 作者:狐狸爸爸 -- 发布时间:2015/9/28 8:15:00 -- 你的错误很多,有判断,但是判断条件之外,还是有用Current,这样的判断就没有意义了。 还有,代码之中,最好用e.Table,不要用CurrentTable,当前Table和触发时间的Table,并不总是同一个Table,你看看帮助的表事件代码,都是用e参数的,从来不会有CurrentTable f e.Table.Current IsNot Nothing Then Dim dr As DataRow = e.Table.Current.DataRow Dim wz As Integer = Tables("库存总表").FindRow(dr) If wz >=0 Then Tables("库存总表").Position = wz End If Tables("库存总表_Tab正常领料1").Filter = "物料编码 = \'" & e.Table.Current("物料编码") & "\'" Tables("库存总表_Tab其它领料").Filter = "物料编码 = \'" & e.Table.Current("物料编码") & "\'" Tables("库存总表_Tab入仓单").Filter = "物料编码 = \'" & e.Table.Current("物料编码") & "\'" Tables("库存总表_Tab退货").Filter = "物料编码 = \'" & e.Table.Current("物料编码") & "\'" Tables("库存总表_Tab物料").Filter = "物料_物料编码 = \'" & e.Table.Current("物料编码") & "\'" Tables("库存总表_Tab超领料").Filter = "物料编码 = \'" & e.Table.Current("物料编码") & "\'" End If |