以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何锁定窗口中的表?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68614)

--  作者:liuxianjie1980
--  发布时间:2015/5/21 11:54:00
--  [求助]如何锁定窗口中的表?

两个窗口,点击一个窗口中的按钮,打开另外一个窗口,另外的这个窗口中有一个表,类型为normal,作为主表。按钮代码如下:

 

Dim filter As String
filter = "所属项目=\'" & Tables("项目信息库").current("项目名称") & "\'"
DataTables("项目问题点清单").LoadFilter = filter
DataTables("项目问题点清单").Load()
If DataTables("项目问题点清单").find("所属项目=\'" & Tables("项目信息库").current("项目名称") & "\'") IsNot Nothing Then
    forms("问题点清单窗口").open()
    If user.name ="开发者" OrElse user.name = Tables("项目信息库").current("项目负责人") Then
        DataTables("问题点清单窗口_项目问题点清单").AllowEdit = True
    Else
        DataTables("问题点清单窗口_项目问题点清单").AllowEdit = False
    End If
Else
    Dim Result As DialogResult
    Result = MessageBox.Show("该项目未添加问题清单,现在添加吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        If user.name ="开发者" OrElse user.name = Tables("项目信息库").current("项目负责人") Then
            forms("问题点清单窗口").open()
        Else
            MessageBox.show("您无权进行添加!","警告",MessageBoxButtons.OK, MessageBoxIcon.Warning)
        End If
    Else
        Return
    End If
End If

 

 

红字部分就是想要锁定窗口中的表,但是锁定的却不是窗口中的表,而是系统中的数据表(即窗口中绑定的表)

 

尝试用datatables(“窗口_tables名”)的格式写上述红色部分,也不行

 

 

大师帮着看一下。谢谢!


--  作者:Bin
--  发布时间:2015/5/21 11:54:00
--  
tables(“窗口_tables名”).AllowEdit = False
--  作者:liuxianjie1980
--  发布时间:2015/5/21 11:58:00
--  

去掉“data“?

[此贴子已经被作者于2015/5/21 11:57:46编辑过]

--  作者:Bin
--  发布时间:2015/5/21 12:00:00
--  
是的
--  作者:liuxianjie1980
--  发布时间:2015/5/21 12:01:00
--  

bin:还是不行啊

是不是跟窗口类型有关系?问题点清单窗口  是模式窗口。上述代码是不是只适合主窗口类型?

 

而且执行修改后的代码,弹出“不存在tables()”的表之类的提示。

[此贴子已经被作者于2015/5/21 12:01:58编辑过]

--  作者:Bin
--  发布时间:2015/5/21 12:02:00
--  
不可能无法锁定的,除非代码没有执行到, 你可以单独做个按钮测试一下.
--  作者:Bin
--  发布时间:2015/5/21 12:02:00
--  
如果你这个表,不是FIll的表,也不是副本表

那么应该直接操作绑定表.  tables("表名") 

--  作者:大红袍
--  发布时间:2015/5/21 12:03:00
--  

 如果是模式窗口,下面这段代码,就必须写到窗口的afterload事件

 

If user.name ="开发者" OrElse user.name = Tables("项目信息库").current("项目负责人") Then
    Tables("问题点清单窗口_项目问题点清单").AllowEdit = True
Else
    Tables("问题点清单窗口_项目问题点清单").AllowEdit = False
End If


--  作者:liuxianjie1980
--  发布时间:2015/5/21 12:03:00
--  
有一个追问,bin
--  作者:大红袍
--  发布时间:2015/5/21 12:04:00
--  

8楼