以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  AfterLoad  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=136939)

--  作者:yetle
--  发布时间:2019/6/25 9:49:00
--  AfterLoad
AfterLoad:下面代码,打开窗口提示未找到生产员工列,是怎么回事,关掉提示后数据又正常显示
Dim tB As Table = Tables("月工资表_table1")
Dim tB2 As Table = Tables("月工资表_table2")
If Forms("月工资表").Opened()
 tB.Fill(" select 组别,生产员工,sum(件数*工价) as 工资 f rom [BD-ERP].[dbo].[派发工序表] where  MONTH(扫码时间) = Datename(MONTH,GetDate())  and year(扫码时间)=Datename(year,GetDate()) GROUP BY 组别,生产员工 " , "xsc_erp",True)
 tB2.Fill(" Select 组别,生产员工,件数*工价 As 工资,订单号,制单号,款号,工序号,工序名,工价 f rom [BD-ERP].[dbo].[派发工序表] where  MONTH(扫码时间) = Datename(MONTH,GetDate())  And year(扫码时间)=Datename(year,GetDate()) " , "xsc_erp",True)
End If

If Forms("月工资表").Opened()
    With tB
        If .Current IsNot Nothing   Then
            tB2.Filter = "生产员工 = \'" & .Current("生产员工") & "\'"
        Else
            tB2.Filter = "False"
        End If
    End With
End If

--  作者:有点甜
--  发布时间:2019/6/25 12:11:00
--  

1、是不是currentChanged等其它事件有影响代码?

 

2、做一个例子发上来测试。


--  作者:yetle
--  发布时间:2019/6/25 14:21:00
--  
tabel1的currentChanged也是这些代码
--  作者:y2287958
--  发布时间:2019/6/25 14:25:00
--  
上个例子吧
--  作者:有点甜
--  发布时间:2019/6/25 14:40:00
--  
以下是引用yetle在2019/6/25 14:21:00的发言:
tabel1的currentChanged也是这些代码

 

那你判断一下是否存在列,再处理,如

 

Dim tB As Table = Tables("月工资表_table1")

If tb.cols.contains("生产员工") then

If Forms("月工资表").Opened()
    With tB
        If .Current IsNot Nothing   Then
            tB2.Filter = "生产员工 = \'" & .Current("生产员工") & "\'"
        Else
            tB2.Filter = "False"
        End If
    End With
End If

End If