以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]狐狸爸爸进来一下,谢谢  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=13059)

--  作者:beiliyukun
--  发布时间:2011/9/26 13:16:00
--  [求助]狐狸爸爸进来一下,谢谢

比如我有1个表A

表A里有3列分别A,B,C,

我现在想实现的效果是A列

     如果输入的值是1,则B,C列无法输入任何值,必须为空

     如果输入的值是2,则B,C列可以填写数值


--  作者:kylin
--  发布时间:2011/9/26 13:30:00
--  

1、表A的DataColChanged事件中设置如下代码:

If e.DataCol.Name = "A" Then

   If e.NewValue <> 2 Then
      e.
DataRow("B") = Nothing 

      e.DataRow("C") = Nothing
    End If
End
If

 

2、表A的PrepareEdit事件设置如下代码:

If e.Col.Name = "B" Or e.Col.Name = "C" Then

  If e.Row("A") <> 2 then 
     e.Cancel = True
  End
If

End If

[此贴子已经被作者于2011-9-26 13:30:50编辑过]

--  作者:beiliyukun
--  发布时间:2011/9/26 14:37:00
--  

我按照你说的做了好像不对哦~~~,要不这样说吧

表A里有2列分别B,C,

我现在想实现的效果

     如果B列输入的值为 "是" 这个字,则C列无法输入任何值,必须为空

     如果B列输入的值是 "否"这个字,则C列可以正常输入

怎么做呢???狐狸爸爸


--  作者:狐狸爸爸
--  发布时间:2011/9/26 15:10:00
--  

PrepareEdit事件:

 

If e.col.name = "C" Then
    If e.Row("B") = "否" Then
        e.Cancel = True
    End If
End If


--  作者:mr725
--  发布时间:2011/9/26 15:51:00
--  

不能放在PrepareEdit事件中!否则不好加提示了。

 

1、表A的StartEdit事件设置如下代码:

 

If e.Col.Name = "C" Then
    If e.Row("B") = "否" Then

    elseIf e.Row("A") = "是" Then
        messagebox.show("B列=是,不许编辑")
        e.Cancel = True
    End If
End If

 

2、表A的DataColChanged事件中设置如下代码:

 

If e.DataCol.Name = "B" Then
   If e.NewValue = "是" Then 
      e.DataRow("C") = Nothing
    End If
End If

[此贴子已经被作者于2011-9-26 16:01:35编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/9/26 16:11:00
--  
呵呵,楼主没有要求加提示啊。