以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- accdb数据源的遍历生成datatable问题 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=174310) |
||||
-- 作者:reachtone -- 发布时间:2022/1/10 16:56:00 -- accdb数据源的遍历生成datatable问题 附件有accdb数据库和示例项目,请把连接字符串改为你的数据库保存路径。 保存后重新打开项目,就会发现: 1、自定义函数在项目打开事件中能正常执行,但接着项目就停止运行了; 2、如果把项目打开事件中的执行函数代码注释掉,在窗口里随便怎么执行都正常; 3、自定义函数只有不到10行代码,很简单; 4、如果把accdb数据库另存为mdb格式,项目也正常。 如何让这个自定义函数代码在项目打开事件中可以正常运行而不要出现问题呢? |
||||
-- 作者:有点蓝 -- 发布时间:2022/1/10 17:21:00 -- 这玩意应该是access的数据引擎本身的问题。先改为使用mdb格式吧 |
||||
-- 作者:reachtone -- 发布时间:2022/1/10 17:26:00 -- 这是客户用的数据库,他不乐意改成mdb。 我也研究了很长时间,一直没有找到解决办法,就是要在项目打开事件中对accdb中的表进行遍历(后面很多无关代码都删除了)。
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2022/1/10 17:28:00 -- 实在不行,就用一个计划,开启项目之后0.5秒钟再执行这段代码,执行完毕后终止计划。 |
||||
-- 作者:reachtone -- 发布时间:2022/1/10 17:29:00 -- 请 有点蓝 或其他高手也给看看,只要在项目打开事件中可以遍历accdb中的表并生成datatable就行(因为需要验证表中的列名称,需要生成datatable)。谢谢! |
||||
-- 作者:reachtone -- 发布时间:2022/1/10 17:31:00 -- 以下是引用狐狸爸爸在2022/1/10 17:28:00的发言: 实在不行,就用一个计划,开启项目之后0.5秒钟再执行这段代码,执行完毕后终止计划。 谢谢狐爸支招,我来试试。这玩意是真的头疼,搞的要崩溃了
|
||||
-- 作者:wei0769 -- 发布时间:2022/1/10 20:05:00 --
|
||||
-- 作者:reachtone -- 发布时间:2022/1/10 23:17:00 -- 谢谢wei0769。这个项目里的自定义函数,目的是检查指定4个表中是否包含所需要的系统列。如果不加条件的话,肯定是不合适的。因为有的表记录数非常多,将会严重影响项目运行效率。 另外,我也试了top或_Identify is null之类的限制条件,依然会停止运行。 算了,实在不行,也就只能不做系统列名称的检查了。
|