Foxtable(狐表)用户栏目专家坐堂 → 代码首次运行 和第二次运行的结果不一样


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

主题:代码首次运行 和第二次运行的结果不一样

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/24 9:42:00 [显示全部帖子]

楼主你已经掌握了一点点基本的分析技巧,但是还不够,你知道在后面来个MessageBox.Show(vars("业务员"))来显示变量的值,为什么不在前面也来个呢?

按下面这样设置,可以看出目录树窗口关闭后,变量是有值的,执行完红色的代码后,变量的值是空的。

为什么执行完红色的代码,变量的值是空的,因为textbox1已经绑定到变量了,红色代码将textbox1的值设置为"",变量的值自然就为空了。

这是代码逻辑问题,你重新整理一下思路吧。

 

 

vars("业务员")=""
vars("单位名称")=""
Forms("明细账_业务员").open()
MessageBox.Show("1:" & vars("业务员"))
Dim s As String=e.Form.controls("cb2").text
If e.form.controls("textbox1").text<>""
    e.form.controls("textbox1").text=""
End If
If e.form.controls("textbox2").text<>""
    e.form.controls("textbox2").text=""
End If
e.form.controls("textbox1").ReadOnly = BooleanEnum.True '锁定
e.form.controls("textbox2").ReadOnly = BooleanEnum.False '解锁
MessageBox.Show("2:" & vars("业务员"))


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/24 16:50:00 [显示全部帖子]

自己分析一下吧,我和大家一样,没有明白你之后的问题。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/25 9:15:00 [显示全部帖子]

呵呵,我都不明白你遇到了啥问题,怎么分析啊。

你得用简单明了的例子,让大家明白你得问题。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/25 10:54:00 [显示全部帖子]

数据是有的,在“按业务员”按钮的最后一行加上:

 

messagebox.show(Tables("应付账款明细账_Table1").Filter)

 

你就知道是怎么回事的了。

 

为什么会这样? 分析一下你TextBox1的TextChanged事件。

 

遇到这样的问题,要用排除法,到底是没数据还是设置了筛选条件,到底是那段代码设置了条件?

 

你写了那么多的代码,相互有冲突,应该重新整理清晰。

[此贴子已经被作者于2011-3-25 11:04:46编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/25 14:19:00 [显示全部帖子]

三楼已经告诉你答案了啊, 你自己用代码把它设置为空了:

 

If e.form.controls("textbox1").text<>""
      e.form.controls("textbox1").text=""
End If


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/25 14:52:00 [显示全部帖子]

删除这些代码

 

If e.form.controls("textBox2").text<>""
     e.form.controls("textBox2").text=""
End If
If e.form.controls("textBox1").text<>""
     e.form.controls("textBox1").text=""
End If

 

代码中始终用Vars变量就行

 

另TextBox1和TextBox2的TextChanged也有代码进行筛选,这是不应该的,也应该删除。

 

重新整理这个窗口的代码,太乱了。


 回到顶部