以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关联表中如何禁止换行或换表?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24958)

--  作者:pc005637
--  发布时间:2012/10/27 18:25:00
--  [求助]关联表中如何禁止换行或换表?

环境:
表A和表B双向关联。

 

要求:

1.当主表为"表A"时,关联表"表A.表B"新增的行,当第二列、第三列、第四列任一为空(Null)时,不能换行。(保证数据能完全输入,不留空项)

2.当主表为"表B"时,"表B"新增的行,当第二列、第三列、第四列任一为空(Null)时,不能换行。(保证数据能完全输入,不留空项)

 

我现在在"表B"的BeforeSelChange事件中设置代码:

 

If e.OldRange.RowSel <> e.NewRange.RowSel \'如果选择的是不同的行
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then \'而且原来选择的是一个有效的数据行
        If e.Table.Current.IsNull("第二列") = True Then
            e.Cancel = True
            MessageBox.Show("第二列")
        ElseIf e.Table.Current.IsNull("第三列") = True Then
            e.Cancel = True
            MessageBox.Show("第三列")
        ElseIf e.Table.Current.IsNull("第四列") = True Then
            e.Cancel = True
            MessageBox.Show("第四列")
        End If
    End If
End If

 

结果是:当主表为"表A"时,"表A.表B"新增一行时,会弹出提示。请教一下,如何解决这个问题?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:禁止换行和换表.table


--  作者:czy
--  发布时间:2012/10/27 21:25:00
--  

If e.OldRange.RowSel <> e.NewRange.RowSel
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then
        Dim r As Row = e.Table.Rows(e.OldRange.Rowsel)
        If r.IsNull("第二列") OrElse r.IsNull("第三列") OrElse r.IsNull("第四列")
            MessageBox.Show(e.Table.Cols(e.OldRange.ColSel).name & "不能为空")
            e.Cancel = True
        End If
    End If
End If

--  作者:pc005637
--  发布时间:2012/10/28 8:21:00
--  谢谢指点。
谢谢指点。