Foxtable(狐表)用户栏目专家坐堂 → 窗口[首页]指定的所有者表不存在,无法打开此窗口!


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

主题:窗口[首页]指定的所有者表不存在,无法打开此窗口!

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


加好友 发短信
等级:四尾狐 帖子:802 积分:9093 威望:0 精华:0 注册:2017/1/26 14:38:00
窗口[首页]指定的所有者表不存在,无法打开此窗口!  发帖心情 Post By:2019/1/16 21:04:00 [只看该作者]

每次升级后第一次打开都提示:窗口[首页]指定的所有者表不存在,无法打开此窗口!之后的登录都不会出现这个错误提示,这是为什么,[首页]窗口是主窗口,在afteropen project中设置打开,所有者表已经是加载了的,实在找不到原因。


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


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

贴出升级代码。

 

如果我们在AfterOpenProject下面的代码:

Syscmd.Project.Update(False,False) 
Forms("窗口1").Open() '可能会出错
'后续其它代码

目的是希望打开项目的时候自动升级,然后打开窗口1。
但是上述代码肯定会在升级成功之后提示错误,因为一旦升级成功,Foxtable就会关闭,后面的打开窗口代码就会出错,当然后续其它的代码也一样会出错。
我们可以用下面的代码避免错误:

If Syscmd.Project.Update(False,False) = False Then '如果没有升级
    Forms("窗口1").open()
    '后续其它代码
End If

也就是说Update执行后会返回一个逻辑值,如果升级成功,返回True,否则返回False。

总之,如果需要在AfterOpenPoject事件中实现自动升级,那么原有的AfterOpenProject事件代码必须包括在这个判断中,只有没有升级的情况下,才执行原来的代码:

If Syscmd.Project.Update(False,False) = False Then '如果没有升级
    '原AfterOpenProject事件代码
End If


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


加好友 发短信
等级:四尾狐 帖子:802 积分:9093 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2019/1/16 21:22:00 [只看该作者]

afteropen project 的代码如下:想实现升级后自动打开项目

If Syscmd.Project.Update(False,False) = False Then '如果没有升级
    '导航
    Forms("导航").Show
    Forms("logo").Show
    MainTable = Tables("首页")
    Forms("首页").Open()
   
    '标题
    BaseMainForm.Text = "管理系统" 
   
Else
    If Syscmd.Project.Update(False,True) Then
        Application.ReStart
    End If
End If

[此贴子已经被作者于2019/1/16 21:22:19编辑过]

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


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

改成

 

If Syscmd.Project.Update(False,True) = false Then
    '导航
    Forms("导航").Show
    Forms("logo").Show
    MainTable = Tables("首页")
    Forms("首页").Open()
   
    '标题
    BaseMainForm.Text = "管理系统" 
   
Else
    Application.ReStart

    return
End If


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


加好友 发短信
等级:婴狐 帖子:3 积分:75 威望:0 精华:0 注册:2019/12/2 19:09:00
  发帖心情 Post By:2019/12/3 15:12:00 [只看该作者]

我也是这样 我不知道如何处理

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


加好友 发短信
等级:婴狐 帖子:3 积分:75 威望:0 精华:0 注册:2019/12/2 19:09:00
在哪里改啊  发帖心情 Post By:2019/12/3 15:13:00 [只看该作者]

在那里改啊?

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/3 15:28:00 [只看该作者]

afteropenproject事件。先确定主窗口绑定的表是否已经加载。如果不懂就把项目文件发上来

 回到顶部