vb程序在多人电脑上运行各种报错!请求协助分析 本人给
vb吧
全部回复
仅看楼主
level 5
luke0404 楼主
vb程序在多人电脑上运行各种报错!请求协助分析[呵呵]
本人给部门编了一个办公辅助软件,所用的控件比较简单,引用的也比较少。除了vb自带控件,其他的就是一个数据库控件,还有一个列表控件,一个表格控件,导出数据到excel,数据库放在局域网上共享。本人和部门其他人员的系统都是win 7,64位。在本人电脑上运行,没有任何问题,但是在其他人员电脑上运行的时候有超过一半的人报错,主要是以下几种情况。
一开始把几个控件拷到他们电脑上,注册没有解决问题,后面将程序用VB打包后安装到他们电脑上,有部分能解决,但是有部分还是有报错,在百度上试了很多办法最终没有解决。请大家帮忙看下,看是不是遇到过或者有什么好的解决办法。谢谢。
error372这个我把我机子的mscomctl.ocx拷到他们机子上也不行。
error80010108更是不知道啥原因。
2020年07月07日 03点07分 1
level 8
试试用manifest文件免注册
2020年07月07日 03点07分 2
吧务
level 13
你的问题是:需要用到的 DLL 和 OCX 文件没有注册。下面给出了 DOS 方式的注册命令
2020年07月07日 05点07分 3
注意:命令中【英文空格】的使用非常重要
2020年07月07日 05点07分
谢谢。 该程序里引用的这几个dll.ocx文件也都编了批处理文件注册了。还手动拷贝,手动注册,但还是报错。 不知道还有别的文件需要注册?
2020年07月07日 05点07分
网上好多人都说程序打包后再到别的机子安装基本上支持文件都有了。 可是我这边还是报这几个错。像这些感觉是电脑环境配置的问题,还不能调试。
2020年07月07日 05点07分
吧务
level 13
你可以在软件系统中附加一个【绿色化.BAT】文件。这个文件就是【齿轮图标】,里面全部是需要的 DOS 命令,将软件系统需要的 DLL 和 OCX 文件进行注册。这个文件用《记事本》就可以编制,完了以后改扩展名【TXT】为【BAT】就可以了。
2020年07月07日 05点07分 4
有的电脑即是注册了需要的 DLL 和 OCX 文件后,还是运行困难。你可以在这台电脑上安装【VB迷你版(含注册控件)】,将源代码在此电脑上编译,生成 EXE 文件后,删除源代码。
2020年07月07日 05点07分
当然这种方式是非常特殊的情况。好像一些【调试版操作系统】就有类似问题。
2020年07月07日 05点07分
@Luosen56 这个可以试一试看有没有效果。 但是我们有一两百人,也不好实施😊
2020年07月07日 05点07分
吧务
level 13
我初步看了一下,
对于 TEXTⅡ类的一些控件,建议使用原始工具箱中的控件。
对于公用对话框控件,建议自己利用原始工具箱中的控件做一个专门的窗体。
对于【ADODC + DataGird】的数据库应用方式,建议使用【ADODB】数据库支持方式。
这样就可以基本不实用那些奇怪的 OCX 文件和 DLL 文件。
当然,你的程序代码可能有较大幅度的改进。
2020年07月07日 05点07分 5
可以适用于多台计算机和多种操作系统的软件,对于 OCX、DLL 文件的的依赖是很少的。几乎都是自己做【类】来适应多机、多平台状态。
2020年07月07日 05点07分
我试一下把ADODB替换一下看看。[大拇指]
2020年07月07日 10点07分
你好,问一下哪些属于TEXTII?[呵呵]
2020年07月07日 13点07分
我把Adodc控件去除后,automation那个错误没有了。 现在就是error372那个imagelist控件版本不合适的问题还有。
2020年07月13日 03点07分
吧务
level 13
  如果你仅仅是为了获得一个文件名而使用【通用对话框】,可以用 VB 的基础控件自己做一个窗体来获得。这样就可以免去使用【通用对话框】去注册(COMDLG32.OCX)文件的麻烦。当然还有许多的技巧。
  总之,要编制一个好用的、多平台、多机种的软件,时很辛苦的。呵呵
2020年07月07日 07点07分 6
[大拇指][开心]感觉够省了,richtext,flexgrid~~这些最后都没用。comdlg32是常用,每个机子都有。 边写边调试几个月,还给身边两个人一直用着也都好,没想到多机使用太难了。
2020年07月07日 09点07分
@luke0404 赞!赞你的恒心和耐心。
2020年07月13日 08点07分
@璐村惂鐢ㄦ埛_0748V5Z馃惥 要批量使用了,遇到这个问题~着急啊[冷]
2020年07月13日 10点07分
真正批量使用,请用【B/S】结构的网页系统。你这样将来后患无穷。
2020年07月13日 13点07分
吧务
level 13
建议改成 ASP 或者 php + MySQL 模式。
2020年07月07日 17点07分 8
整个都要改成 B/S【浏览器/服务器】模式,这样才能够多平台、多机型使用。
2020年07月07日 17点07分
浏览器限制很多的,不方便导出excel表格,打印写起来也很烦。
2020年07月13日 14点07分
哦,主要是我程序需要在桌面驻存,置顶,随时唤出,还有几个工具模块,提醒模块。。。网页模式的话不太合适。 对数据库读的多,写的少。而且高频部分数据我直接留在内存。减少对数据库的反复操作。 可能后期涉及数据安全的问题,其它的影响不大吧[汗]
2020年07月14日 00点07分
level 9
我觉得主要还是你编译时用的控件,和使用电脑上的控件版本不一样吧。
你做安装包的时候,可以选择是否忽略版本,直接覆盖的。
但是这样可能会破坏电脑里原有的软件。
我觉得你还不如用richtext,flexgrid这些vb控件,不会和其它软件冲突。
2020年07月08日 00点07分 9
error372的问题我在网上查了就说的是编译的控件和其它电脑上的版本不一样。但不知应该如何处理? 把我机子里的几个控件拷贝过去注册也不行。
2020年07月08日 15点07分
level 5
你让他们装个办公软件全套餐就解决了。vb6要用到数据库,各种表格控件,在一些系统上基本精简了,少个什么组件控件,复制粘贴上去也不行,注册也不行。你非得装个办公软件,或者给他们用旗舰版系统。
我前段时间也是,自己的电脑,vb6,各种表格,各种控件,还内置个当地天气功能,数据库记录,各种顺利。一打包到别人机子,各种问题不断。不是缺那就是缺这。烦躁直接换别的平台了
2020年07月08日 00点07分 10
你意思装个新点的office办公软件,能解决? 我们装的也至少都是office2013,也不算老。[呵呵]如果真是这样的话,我也试一下
2020年07月08日 05点07分
@luke0404 办公软件那个数据库,你的vb6连接数据库他要用到不同的参数,数据库是2007年和之前,跟2007年后的数据库连接参数不一样。用2013年的,你就兼容不了老版本的数据库,用2007的你也兼容不了新版本的数据库。
2020年07月08日 08点07分
@luke0404 Vb6太老了,我尝试一段时间就放弃了。除非你的数据库用txt之类的 就行。需要数据保密的就不行。
2020年07月08日 08点07分
TXT 文件可以加密存储,解密使用。TXT 文件具有多平台、多机种适应性。
2020年07月09日 02点07分
level 9
尽量用VB6 自带的标准控件,第三方的,随EXE一起分发。
2020年07月08日 03点07分 11
level 6
装个2007全版的office解决一大半的问题。还有的就是VB6自带的一些标准控件。
2020年07月08日 15点07分 12
这个~~我们装的都到2013了。 所以就剩我提到的那两三个报错啊。
2020年07月08日 22点07分
吧务
level 13
  最简单的办法就是在报错的机子上安装 VB 开发系统,用源代码在这个机子上编译生成 EXE 文件,然后删除源代码,留下 EXE 文件。
  这样做的好处是:人家拷贝你的程序,换个机子有可能莫法用。间接的起到了【防止盗版】的作用。
  这样做的缺点是:安装比较麻烦。
2020年07月13日 03点07分 13
如果是【VB60迷你版】就可以调试成功,那就不麻烦。可以试一下。因为现在的【迷你版】也有数据库功能和VB60企业版的大多数DLL和OCX文件。
2020年07月13日 03点07分
在别人机子编译有点不现实,人多,而且软件不定期还要自动更新。 vb迷你也安装了,迷你版带的MSCOMCTL.OCX也算比较新, 2005年的。可是重新编译软件后拷过去,ocx也拷过去注册,还是提示error372这个错误。
2020年07月13日 08点07分
按372这个错误代码说的,编译的控件和运行电脑的控件版本不一致。不知道如何解决了。
2020年07月13日 08点07分
@luke0404 一早就对你说了,manifest文件是解决这个问题的最好方法,去研究一下吧
2020年07月13日 10点07分
level 3
确定用vb6,你认真吗?
2020年07月13日 12点07分 14
level 7
几百台怎么安装啊。数据库是哪个
2020年07月13日 14点07分 15
基本上算是做成绿色版的,放局域网大家自行下载使用,后期自动更新。 access
2020年07月14日 00点07分
@luke0404 access吃不消。得mysql、mssql、mongodb这样的吧
2020年07月14日 05点07分
锁死是经常的事
2020年07月14日 05点07分
数据库如何设共享权限?access文件会被删掉
2020年07月14日 06点07分
吧务
level 13
其实【B/S】的网页模式并不是不能导出 Excel 文件,因为 SQL 命令中就有导出文件子句:
SELECT <字段列表> 需要查询的字段名(列表)
FROM <数据表列表>     数据来源的表
[ WHERE <条件表达式> ]   查询条件
[ GROUP BY …… ]     对查询结果进行分组(求小计功能)
[ HAVING <条件表达式> ]  分组满足的条件,在 GROUP BY 后
[ UNION …… ]       合并多个【SELECT】语句的结果集
[ ORDER BY …… ]     ASC/DESC【升/降序排列】
[ INTO 类型 文件全名] 导出【DBF、XLS】类型的文件
2020年07月14日 01点07分 16
如果需要【多平台、多机种、多版本】要使用的 Excel 文件,那你就要去研究一下【Excel — CSV】文本格式的表格文件了。
2020年07月14日 01点07分
1 2 尾页