以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]大版本升级之后遇到的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=142791)

--  作者:81538475
--  发布时间:2019/11/6 13:11:00
--  [求助]大版本升级之后遇到的问题
全局设置里面Positionchanged 设置。 大版本更新之前没有问题,更新之后出现的问题。
选择任何其中一个表之后,就会崩溃。去掉这个代码就正常。

考勤数据_table1 和 综合奖惩记录表  这两个表的姓名都是唯一值。。

考勤数据_table2的姓名有多个重复值。
不知道是不是这个原因造成的。


    If CurrentTable.Name ="考勤数据_table1" Then
        If Forms("考勤数据").Opened Then
            
            
            
            With Tables("考勤数据_table2")
                If .Cols.Contains("姓名") Then
                    Dim r As Integer
                    r = .FindRow("姓名 = \'" & Tables("考勤数据_table1").Current("姓名") &"\'" )
                    
                    If r >= 0 Then \'如果找到的话
                        .Position = r \'定位到找到的行.
                    End If
                End If
            End With
            
        End If
        
    Else If CurrentTable.Name ="综合奖惩记录表" Then
        If Forms("考勤数据").Opened Then
            
            
            With Tables("考勤数据_table1")
                If .Cols.Contains("姓名") Then
                    Dim r As Integer
                    
                    r = .FindRow("姓名 = \'" & Tables("综合奖惩记录表").Current("姓名") &"\'" )
                    
                    If r >= 0 Then \'如果找到的话
                        .Position = r \'定位到找到的行.
                    End If
                End If
            End With
            
            
            With Tables("考勤数据_table2")
                If .Cols.Contains("姓名") Then
                    Dim r As Integer
                    r = .FindRow("姓名 = \'" & Tables("综合奖惩记录表").Current("姓名") &"\'" )
                    
                    If r >= 0 Then \'如果找到的话
                        .Position = r \'定位到找到的行.
                    End If
                End If
            End With
            
        End If
    End If


--  作者:blackzhu
--  发布时间:2019/11/6 13:17:00
--  
这个代码应该没啥问题,但是意义也不是很大
--  作者:有点蓝
--  发布时间:2019/11/6 13:50:00
--  
If Forms("考勤数据").Opened AndAlso e.Table.Current IsNot Nothing  Then
    If e.Table.Name ="考勤数据_table1" Then
        
        With Tables("考勤数据_table2")
            If .Cols.Contains("姓名") AndAlso e.Table.Cols.Contains("姓名") Then
                Dim r As Integer
                r = .FindRow("姓名 = \'" & e.Table.Current("姓名") &"\'" )
                
                If r >= 0 Then \'如果找到的话
                    .Position = r \'定位到找到的行.
                End If
            End If
        End With
    ElseIf e.Table.Name ="综合奖惩记录表" Then
        With Tables("考勤数据_table1")
            If .Cols.Contains("姓名") Then
                Dim r As Integer
                
                r = .FindRow("姓名 = \'" & e.Table.Current("姓名") &"\'" )
                
                If r >= 0 Then \'如果找到的话
                    .Position = r \'定位到找到的行.
                End If
            End If
        End With
    End If
End If

--  作者:81538475
--  发布时间:2019/11/6 14:23:00
--  
多谢,可以了