VB+Access打包后的程序运行时错误429ActiveX部件不能创建对象

luffy9202 2015-12-21 09:45:30
用VB+Access2003做的程序,用setup factory 9 自动扫描打包的。里边有一个数据备份及恢复的功能,然后在每次退出程序的时候会对数据库文件进行压缩。在编写程序的电脑上运行没有问题,可是在别人电脑上退出时会报错“运行时错误429,ActiveX部件不能创建对象”,数据备份功能虽然不报错但是也拷贝不下来,装上mdac也不行。。。求大神支招。
...全文
541 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
luffy9202 2015-12-23
  • 打赏
  • 举报
回复
没有创建对象,只是进行了数据库压缩。试验了下,跟安装的路径也没关系,就是驱动的问题。
lashengcrh 2015-12-23
  • 打赏
  • 举报
回复
引用 楼主 luffy9202 的回复:
用VB+Access2003做的程序,用setup factory 9 自动扫描打包的。里边有一个数据备份及恢复的功能,然后在每次退出程序的时候会对数据库文件进行压缩。在编写程序的电脑上运行没有问题,可是在别人电脑上退出时会报错“运行时错误429,ActiveX部件不能创建对象”,数据备份功能虽然不报错但是也拷贝不下来,装上mdac也不行。。。求大神支招。
请你检查下,退出时,创建了哪些对象或组件?
Tiger_Zhao 2015-12-22
  • 打赏
  • 举报
回复
%ApplicationDataFolder% 应该是 C:\Users\luffy\Application Data\<公司名称>\<产品名称>\ 吧,你可以安装好以后找一下 .mdb 文件。
luffy9202 2015-12-22
  • 打赏
  • 举报
回复
哦哦,知道了~可是老师,你前边说的目录的问题我还是没搞懂。我查了下,一般%ApplicationDataFolder%指的是C:\Users\luffy\Application Data。那么我的.mdb文件是安装在这个目录下还是Program Files子目录下?昨天回复了你之后我发现可能是我理解错了,本来程序中使用数据库的路径是App.Path & \dat\.mdb 然后我改成Environ$("USERPROFILE") & "\Application Data\dat\.mdb,发现还是一样的问题。现在我知道是没有驱动的原因,可是您说的到底是放哪啊。。。
Tiger_Zhao 2015-12-22
  • 打赏
  • 举报
回复
正常啊,记住:所有的数据库都需要安装驱动才能访问!

以前 SQL Server、Access 虽然号称有几个不同的版本,其实各自用的驱动还是通用的。所以微软在操作系统中直接捆绑了自己几个数据库的驱动程序,看起来好像什么都不装就能很“绿色”地访问数据库了。
现在 SQL Server、Access 多个版本连驱动都是不同的,或者还有反垄断的原因,反正微软不在操作系统中直接捆绑数据库的驱动程序了。所以你必须安装了对应的客户端(Access2003)或者手工安装一个对应版本的驱动后,才能访问数据库了。
luffy9202 2015-12-21
  • 打赏
  • 举报
回复
引用 1 楼 Tiger_Zhao 的回复:
你的 .mdb 和 .exe 一起“安装”到 Program Files 目录下了? 通常是权限问题,当前用户不能对 .mdb 文件进行复制。 应该把 .mdb文件所在的数据目录放在普通的目录下,记在配置中;或者固定到 Environ$("USERPROFILE") 下的某个子目录中。
恩恩 是的。。。那打包的时候应该怎么放呢?
Tiger_Zhao 2015-12-21
  • 打赏
  • 举报
回复
你的 .mdb 和 .exe 一起“安装”到 Program Files 目录下了?
通常是权限问题,当前用户不能对 .mdb 文件进行复制。
应该把 .mdb文件所在的数据目录放在普通的目录下,记在配置中;或者固定到 Environ$("USERPROFILE") 下的某个子目录中。
luffy9202 2015-12-21
  • 打赏
  • 举报
回复
原谅我比较菜~是不是这样,比如说安装目录为 %AppFolder%,那么.mdb文件放在%AppFolder%\Data就可以了? 如果是的话,我已经试过了,好像没有安装Access的电脑还是不能用。。。
Tiger_Zhao 2015-12-21
  • 打赏
  • 举报
回复
你把 .mdb 的安装目标指定到 %ApplicationDataFolder% 下啊,这不就是 Environ$("USERPROFILE") 下子目录啊。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧