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
...全文
819 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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版本问题
草履虫程序员 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的版本问题

7,785

社区成员

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

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