Foxtable(狐表)用户栏目专家坐堂 → MainTable = Tables("合同") 不激活MainTableChanging


  共有2860人关注过本帖树形打印复制链接

主题:MainTable = Tables("合同") 不激活MainTableChanging

帅哥哟,离线,有人找我吗?
baiheinet
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:190 积分:1540 威望:0 精华:0 注册:2015/7/14 15:05:00
MainTable = Tables("合同") 不激活MainTableChanging  发帖心情 Post By:2017/11/22 16:29:00 [只看该作者]

MainTableChanging 如下


If DataTables.Contains(e.NewTableName)=False
    MessageBox.Show("对不起,你没有相应的权限,请联系信息部开通!")
    e.Cancel = True
End If


在代码写 MainTable = Tables("合同") 不激活上述时间 如何破

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/22 16:51:00 [只看该作者]

1、你条件本身就有问题。如果能使用 Tables("合同") ,那么肯定不满足 DataTables.Contains(e.NewTableName)=False

 

2、你可以在事件加入msgbox(123)看是否触发

 

3、只有表格切换的时候才会触发事件,如果你现在就在合同表,肯定不触发。


 回到顶部
帅哥哟,离线,有人找我吗?
baiheinet
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:190 积分:1540 威望:0 精华:0 注册:2015/7/14 15:05:00
  发帖心情 Post By:2017/11/22 19:15:00 [只看该作者]

你说的对 

我现在的需求 就是在执行MainTable = Tables("合同")

之前 先验证一下 这个表加载没有 如果没有 不是显示系统的的那个错误提示没有 Tables("合同")

而是 我自定义的提示 MessageBox.Show("对不起,你没有相应的权限,请联系信息部开通!")

而这个需求菜单里非常多 我不能在每个MainTable = Tables("合同") 前写验证

所以我选择了全局表事件 MainTableChanging

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/22 21:55:00 [只看该作者]

全局代码

 

Property MainTable As String

Get

Return foxtable.MainTable.name

End Get

Set  (ByVal value As String)

If Tables.contains(value) Then
    foxtable.MainTable = Tables(value)
Else
    msgbox("不存在表[" & value & "]")
End If
End Set
End Property

 

调用代码

 

MainTable = "表C"

[此贴子已经被作者于2017/11/22 21:56:50编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
baiheinet
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:190 积分:1540 威望:0 精华:0 注册:2015/7/14 15:05:00
  发帖心情 Post By:2017/11/23 14:18:00 [只看该作者]

还是老问题啊

还是要把MainTable = Tables("合同") 

全部改一遍MainTable = "合同"

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/23 16:06:00 [只看该作者]

mark,全局代码

 

Public Class myTableCollection
Public Sub new
End Sub

Default Public readonly Property Item(tname As String) As Table
Get
If Foxtable.Tables.Contains(tname) Then
    Return Foxtable.Tables(tname)
Else
    msgbox("测试,不存在表【" & tname & "】")
    Return Nothing
End If
End Get
End Property

End Class

Public mytables = new myTableCollection

readonly Property Tables As myTableCollection
Get
Return mytables
End Get
End Property

 

测试电脑代码

 

msgbox(Tables.Gettype.name)
msgbox(Tables("表B").name)
MainTable = Tables("表B")
MainTable = Tables("表abc")


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/23 16:57:00 [只看该作者]

完整点改成这样,基本就没问题了。

 

Public Class myTableCollection

Public Sub new
End Sub

Public Function GetEnumerator() As System.Collections.Generic.IEnumerator(Of Table)
Return foxtable.Tables.GetEnumerator
End Function


Default Public readonly Property Item(tname As String) As Table
Get
If Foxtable.Tables.Contains(tname) Then
    Return Foxtable.Tables(tname)
Else
    msgbox("测试,不存在表【" & tname & "】")
    Return Nothing
End If
End Get
End Property

Public readonly Property count() As Integer
Get
Return foxtable.Tables.count
End Get
End Property

Public readonly Property contains(tname As String) As Boolean
Get
Return foxtable.Tables.contains(tname)
End Get
End Property

End Class

Public mytables = new myTableCollection

readonly Property Tables As myTableCollection
Get
Return mytables
End Get
End Property


 回到顶部
帅哥哟,离线,有人找我吗?
affixed
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:597 积分:4974 威望:0 精华:0 注册:2012/12/27 12:34:00
  发帖心情 Post By:2018/12/26 12:01:00 [只看该作者]

甜版主,请问这段代码如何使用?

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110801 积分:563943 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/12/26 12:09:00 [只看该作者]

看6楼。

 回到顶部
帅哥哟,离线,有人找我吗?
affixed
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:597 积分:4974 威望:0 精华:0 注册:2012/12/27 12:34:00
  发帖心情 Post By:2018/12/26 12:37:00 [只看该作者]

Public Class myTableCollection
Public Sub new
End Sub

Default Public readonly Property Item(tname As String) As Table
Get
If Foxtable.Tables.Contains(tname) Then
    Return Foxtable.Tables(tname)
Else
    msgbox("测试,不存在表【" & tname & "】")
    Return Nothing
End If
End Get
End Property

End Class

Public mytables = new myTableCollection

readonly Property Tables As myTableCollection
Get
Return mytables
End Get
End Property


那这段代码是什么时候执行的呢?


 回到顶部
总数 14 1 2 下一页