Foxtable(狐表)用户栏目专家坐堂 → [求助]请教这段代码什么情况!


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

主题:[求助]请教这段代码什么情况!

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
[求助]请教这段代码什么情况!  发帖心情 Post By:2012/9/16 11:56:00 [只看该作者]

Tables("售后客户档案_售后客户档案Table1").fill("SELECT * From {历史进店记录}","华泰内控系统-ERP",False)
Tables("售后客户档案_售后客户档案Table1").AllowEdit = True

 

Tables("售后客户档案_售后客户档案Table2").fill("SELECT * From {售后客户档案}","华泰内控系统-ERP",False)
Tables("售后客户档案_售后客户档案Table2").AllowEdit = True

 

 

这是售后客户档案 afterload里的代码    红色部分放在上面 

 

在售后客户档案里 有一个窗口 "售后客户档案Table2"  里的currentchanged 有一段代码

 

If forms("售后客户录入").opened  Then
    Dim t As Table = Tables("售后客户录入_Table1")
    Dim u As Table = Tables("售后客户档案_售后客户档案Table1")
    With Tables("售后客户档案_售后客户档案Table2")
        If .Current Is Nothing Then
            t.Filter = "False"
            u.filter = "False"
        Else
            t.filter = "底盘号 = '" & .Current("底盘号") & "'"
            u.filter = "底盘号 = '" & .Current("底盘号") & "'"
        End If
    End With
Else
    If forms("售后客户档案").opened Then
        Dim u As Table = Tables("售后客户档案_售后客户档案Table1")
        With Tables("售后客户档案_售后客户档案Table2")
            If .Current Is Nothing Then
                u.filter = "False"
            Else
                u.filter = "底盘号 = '" & .Current("底盘号") & "'"
            End If
        End With
    End If
End If

 

 

如果刚才 售后客户档案 afterload里的代码    红色部分放在下面  如这样

 

Tables("售后客户档案_售后客户档案Table2").fill("SELECT * From {售后客户档案}","华泰内控系统-ERP",False)
Tables("售后客户档案_售后客户档案Table2").AllowEdit = True

 

Tables("售后客户档案_售后客户档案Table1").fill("SELECT * From {历史进店记录}","华泰内控系统-ERP",False)
Tables("售后客户档案_售后客户档案Table1").AllowEdit = True

 

 

打开售后客户档案  就会出现这个错误,如果放在上面则不会有这情况

 

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

 

 

请问是什么原因   另外  售后客户档案_售后客户档案Table1   如果不在afterload里 用fill填充

而用 控件自带的 select * from {}   也不会出现这个错误

 

 

求解~~~~~~~~~~~~~~~~~~

[此贴子已经被作者于2012-9-16 11:56:57编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2012/9/16 12:03:00 [只看该作者]

应该是你生成table2,触发了这个事件,此时你没有table1,程序就报错了

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2012/9/16 17:33:00 [只看该作者]

这就奇怪了 也就是说 我生成了table2后  currentchange里的代码就执行啦。。。

 

不等afterload里代码执行完 就执行currentchange里的了??

 

求解


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/9/16 20:08:00 [只看该作者]

你可以在代码的适当的位置插入:

 

For Each cl As Col In CurrentTable.Cols
    Output.Show(cl.Name)
Next

 

看看列名都是些什么。。。有没有“底盘号”列。


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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2012/9/17 22:52:00 [只看该作者]

我也遇到过,跟你一样,先后顺序不同会报错。currentchange属性里写这样代码,最好带个判断列名称是否存在,否则容易报错

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/9/17 23:04:00 [只看该作者]

MessageBox放在Filter的前面,提示后先不要关闭提示框,再检查一下到底生成这个列没有。


 回到顶部