vb做出来的软件在有的电脑上运行显示错误

fndzzxlbj 2018-08-26 12:50:10
vb做出来的软件在有的电脑上运行不能正常工作。程序是在win764位系统上做的,execl access是2010的 引用的是14.0 ,涉及到部分功能调用execl,有时候显示错误48 加载dll错误,有的时候显示class does not support Automation or does not support expected interface。程序是用factory7.0封装的。实验的电脑xp+2003(台式机)能用 win7 32位+office2010 (台式机)有的能用 有的(笔记本)就出现我描述的错误。大家给分析下问题出在哪里?是系统原因还是execl版本问题?有没有好的办法提高对execl个版本的支持的好方法?下面是部分代码
Private Sub daochu_Click()
Dim i, J, c As Long
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Call xinjian
Set conn = New ADODB.Connection
Set rst = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0; data source=" & App.Path & "\2018.mdb;"
conn.Open
rst.CursorLocation = adUseClient
rst.Open "select * from 新生表", conn, adOpenDynamic, adLockOptimistic
Dim MyApp As Object 'Dim MyApp As Excel.Application
Dim MyBook As Object 'Dim MyBook As Excel.Workbook
Dim MySheet As Object 'Dim MySheet As Excel.Worksheet
Set MyApp = CreateObject("Excel.Application")
MyApp.Visible = False
Set MyBook = MyApp.Workbooks.Add()
Set MySheet = MyBook.Worksheets(1)
For c = 0 To rst.Fields.Count - 1
MySheet.Cells(1, c + 1) = rst.Fields(c).Name
Next
J = 2
Do Until rst.EOF
For i = 1 To rst.Fields.Count
MySheet.Cells(J, i) = rst.Fields(i - 1)
Next
rst.MoveNext
J = J + 1
Loop
xinjian
MyBook.SaveAs "d:\本组报名结果\2018bmjg.xls"
MyApp.Quit
Set MyApp = Nothing
rst.Close
Set rst = Nothing
Set conn = Nothing
FileCopy App.Path & "\2018.mdb", "d:\本组报名结果\2018.mdb"
MsgBox "导出成功!文件在d:\本组报名结\2018bmjg.xls", vbOKOnly, "提示"
End Sub
...全文
786 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
一念工作室 2018-11-18
  • 打赏
  • 举报
回复
conn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0; data source=" & App.Path & "\2018.mdb;"

缺少控件就会有问题,请安装OFFICE 2000以上版本。应该就可以了。
a287740928 2018-10-12
  • 打赏
  • 举报
回复
我觉得vb很好很强大
ccbbcc 2018-10-12
  • 打赏
  • 举报
回复
可能是office版本问题
ruan1978 2018-09-30
  • 打赏
  • 举报
回复
以前遇到过,office组建,需要这个包或者 库需要版本一致,你打包时需要选多个组件库
现在还是人类 2018-09-14
  • 打赏
  • 举报
回复
不要引用就可以了,对象全由CreatObject创建使用。
还有一种偏门的方法,就是读注册表,得到当前Excel的版本,根据注册表找到DLL所在位置,然后直接通过DLL文件创建"COM组件"使用(这个方法可以动态创建COM组件,且不用注册组件也可使用),根据版本的不同转入每个版本特殊的处理过程使用对象。具体的可以去了解 IUnknown、LoadCOMObject,很简单的
threenewbee 2018-09-06
  • 打赏
  • 举报
回复
路径或者数据库驱动问题,具体你加一个
on error goto errp:
...你的代码
exit sub
errp:
msgbox err.description '输出下错误信息
threenewbee 2018-09-06
  • 打赏
  • 举报
回复
引用 2 楼 weixin_43137121 的回复:
我不会我不会

头一天注册就灌水,让你去小黑屋反省吧。
weixin_43137121 2018-09-05
  • 打赏
  • 举报
回复
我不会我不会
脆皮大雪糕 2018-08-27
  • 打赏
  • 举报
回复
疑似office的版本问题
企业的工资管理是公司管理的一个重要内容。随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。早期工资管理多采取纸质材料和具有较强的时间限制。基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。企业工资管理系统是典型的信息管理系统(MIS),前台程序开发工具采用微软的VB6,后台数据库采用Access数据库。VB6是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大的优点。 Access数据库具有与VB6无缝连接、操作简单、易于使用的优点。运行结果证明,本企业工资管理系统极大提高了工作效率,节省了人力和物力,最终满足企业财务管理、员工工资发放的需要,同时也成为现代化企业管理的标志 是一个很好的计算机毕业设计

7,763

社区成员

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

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