Foxtable(狐表)用户栏目专家坐堂 → 双击行弹出窗口报错


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

主题:双击行弹出窗口报错

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/18 15:00:00 [显示全部帖子]

窗口的引用方法有问题

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1 (4).zip


窗口打开后的处理建议放到窗口afterload事件,没有必要放到双击里。再说窗口afterload事件已有差不多一样的代码,又何必执行2次,是嫌运行的太快,多执行一次代码,让窗口打开的慢一点,让用户以为这个窗口好努力么!

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/18 16:46:00 [显示全部帖子]

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/18 17:26:00 [显示全部帖子]

又没有提供项目测试,我们靠想象力来解决问题吗?

何况基本的调试方法又不是不会,是懒吧!每一行代码后面都加上提示框调试,不就不信找不到出错的代码是哪一行!

再说了到底是您在开发项目还是我们在开发项目,我们提供的是技术服务,不是保姆服务。以3楼解决的问题来说,基本都不算是技术问题,复制其它地方代码后忘记改窗口引用了,就是纯体力活,我也就是加上提示框调试前后多次测试,定位到出错那一行代码。

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/19 9:52:00 [显示全部帖子]

调试步骤
1、测试双击打开窗口才会有问题,在窗口设计预览就没有问题,说明是双击事件代码的问题
2、打开双击事件代码,只保留打开窗口的代码,注释其它代码测试,没有问题,说明问题在注释掉的代码里
3、逐行启用注释的代码测试,发现启用给TextBox2控件赋值的代码后,就会有问题,说明问题和这个控件有关
            Forms("出纳录入收款数据").Controls("rq").text = e.Row("日期")
            Forms("出纳录入收款数据").Controls("dh").text = e.Row("出纳入账顺序号")
            Forms("出纳录入收款数据").Controls("dh1").text = e.Row("出纳账安日期生成单号辅助列")
            Forms("出纳录入收款数据").Controls("TextBox2").text = e.Row("前缀") & ":"
4、检查这个控件,没有任何事件代码,那就应该是用到这个控件的其它控件的代码有问题
5、往上看赋值使用到的控件是dh1,也没有事件代码,再往上看,dh控件有“Validating”事件代码,注释这个代码测试后没有问题,说明问题在这里
6、结合错误提示【标准表达式中数据类型不匹配。】,“Validating”事件用到表达式的只有使用的sql里,说明sql合并的查询条件有问题
7、逐个去掉查询条件测试,发现添加 【[出纳入账顺序号] = '" & ydh & "'"】 后出错,查看表结构 [出纳入账顺序号] 是双精度列,原因就出来了:http://www.foxtable.com/webhelp/topics/1284.htm

表达式中的日期用符号#括起来,数值则不需要任何符号括起来,这些和代码中的格式是一样的,唯一不同的是字符串用单引号括起来。

例如:

Tables("订单").Filter = "[产品] = 'PD01'"  '字符用单引号括起来
Tables("订单").Filter = "[日期] = #3/17/1999#"  '日期用#括起来
Tables("订单").Filter = "[折扣] = 0.1"  '数值直接使用


最后自己思考一下,为什么给TextBox2控件赋值后才会出错


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/19 14:28:00 [显示全部帖子]

请自行调试,找到错误的代码

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/19 16:09:00 [显示全部帖子]

sql有问题,改sql,和上面红色代码有什么关系
[此贴子已经被作者于2022/3/19 16:08:48编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/19 17:30:00 [显示全部帖子]

麻烦再认真的看看14楼。

dh控件的“Validating”事件,错误代码 【[出纳入账顺序号] = '" & ydh & "'"】,至于怎么改......

表达式中的日期用符号#括起来,数值则不需要任何符号括起来,这些和代码中的格式是一样的,唯一不同的是字符串用单引号括起来。

例如:

Tables("订单").Filter = "[产品] = 'PD01'"  '字符用单引号括起来
Tables("订单").Filter = "[日期] = #3/17/1999#"  '日期用#括起来
Tables("订单").Filter = "[折扣] = 0.1"  '数值直接使用



 回到顶部