VB编译运行后出现“运行时错误“76” 未找到路径” 。为啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB编译运行后出现“运行时错误“76” 未找到路径” 。为啥?相关的知识,希望对你有一定的参考价值。

Private Sub CommandButton1_Click()

Dim CNN As New ADODB.Connection
Dim RST As New ADODB.Recordset
Dim Stpath, strSQL As String
Stpath = ThisWorkbook.Path & Application.PathSeparator & "\" & "RB.MDB"
CNN.Open "provider=Microsoft.jet.OLEDB.4.0;data source=" & Stpath '& ";Jet OLEDB:Database Password=" & ""

Sheet3.Range("B9") = TextBox1.Text

Sheet5.Range("A5:z10000") = ""
strSQL = "Select * from 总表 WHERE 日期 LIKE '" & TextBox1.Text & "'"
RST.Open strSQL, CNN
Sheet5.Range("A5:z10000").ClearContents
Sheet5.Cells(5, 1).CopyFromRecordset RST

RST.Close
Set RST = Nothing
Set CNN = Nothing

End
End Sub

出现上述错误,表示打开 数据库(Access数据库)文件的路径是无效的!
1、检查你定义的数据文件及其路径
Stpath = ThisWorkbook.Path & Application.PathSeparator & "\\" & "RB.MDB"
如果想用绝对路径,就直接给出数据文件及路径。
如:
Stpath ="D:\\RB.MDB"
如果数据文件放在自己开发程序的目录里面,可以如下
If Right$(App.Path, 1) <> "\\" Then
stPath = App.Path + "\\RB.MDB"
else
stPath = App.Path + "RB.MDB"
End If

2、采用ADODB 连接Access 数据库时,如果数据库没有密码,连接字符串简单处理
如:
Dim adoConnStr As String
Dim adoConn As New ADODB.Connection
adoConStr="Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;
Data Source=" & StPath
adoConn.Open adoConStr
参考技术A 在CNN.Open...开头的那前一行插入检查路径代码,在它提示出错前先看一下路径是否正确。
DeBug.Print Stpath
或是
MsgBox Stpath
'
另外提示你自定义变量的写法
Dim Stpath, strSQL As String
意思是Dim Stpath As Variant,strSQL As String
不是Dim Stpath As String,strSQL As String的简便写法。
参考技术B 编译调试时exe路径和生成后路径不同,如果你调用了shell并且用了app.path之类的就会出现此错误,我说的只是错误的一种,要看出错的原因还得看你的代码

VB6 应用程序的执行不一致。某些用户成功,运行时错误 481 Invalid Picture for others

【中文标题】VB6 应用程序的执行不一致。某些用户成功,运行时错误 481 Invalid Picture for others【英文标题】:Inconsistent execution of VB6 application. Success for some users and runtime error 481 Invalid Picture for others 【发布时间】:2020-05-02 13:18:26 【问题描述】:

所以这个是一个笨蛋。我的 VB6 Windows 应用程序在运行 Windows Server 2019 的虚拟服务器上出现不一致的行为,这是我们的应用程序管理器门户。

此应用程序根据用户通过活动目录组的安全权限列出了用户有权访问的所有 Windows 应用程序。

我的一位同事是我们基础架构团队的一员,对此我进行了测试。他是这个名为 RDS 用户(远程桌面系统用户)的 Windows 组的成员。我也是此 Windows 组的一员,并且我也是此服务器上的本地管理员,以便安装将在此应用程序管理器门户中列出的应用程序。

这是我的同事在启动这个 VB 6 应用程序时的结果:

这是我启动它时的结果:

我尝试的一种方法是清除我的用户目录中AppData\Local\Temp 下的 Temp 目录。然后我收到了这个错误信息:

在我的同事的协助下,我尝试了以下步骤来解决此问题,该同事是我们基础架构团队的一员,但没有成功:

如果我的 ID 权限更改为对可执行文件和所有依赖文件所在目录的完全控制权,并收到上面列出的相同问题。 已将我的 ID 从本地管理员组中删除,并与我的基础架构同事留在同一个 RDS 用户组中。

我已经为我的同事和我自己的启动可执行文件运行了 Process Monitor,我目前正在查看结果。目前我没有看到任何突出的东西。

我的问题是向小组提出的问题:还有什么我没有在上面列出的需要看的吗?

谢谢。

2020 年 1 月 22 日更新:

通过进程监视器日志,我注意到注册表中有一些有趣的东西,用于我的 AppMan.exe(应用程序管理器门户可执行文件)执行和我同事的 AppMan.exe 执行。

我在 Process Monitor 中放置了一个过滤器,其中 Process Name 等于 AppMan.exe。

我的一些注册表项属于 HKCU,而我的同事在 HKU 下有一些注册表项。

这又是在同一个虚拟服务器上。

这是一个例子。

我的(应用程序导致错误):

RegOpenKey - HKCU\Software\Classes\Local Settings

我同事的(应用程序正在运行):

RegOpenKey - HKU\S-1-5-21-535134994-3874261535-4188770651-24660_Classes\Local Settings

我在注册表中搜索“S-1-5-21-535134994-3874261535-4188770651-24660”,但找不到一个条目。

我是此虚拟服务器的本地管理员。

试图找出是否与此有关。

2020 年 1 月 27 日更新:

查看 VB 6 应用程序后,我发现抛出此错误是因为 INI 文件引用了我可以通过当前不在此服务器上的 AD 组访问的应用程序。哇!!我以为我快疯了。可以关闭此提交。

【问题讨论】:

answers.microsoft.com/en-us/windows/forum/all/…? 我怀疑您可能会遇到这种情况:***.com/questions/54253845/… 如果您使用 32 位图像而仅支持较低的位数,则会出现该问题 - 这似乎因 Windows 版本而异。跨度> 还有一些相关/类似的细节:***.com/a/54136587/3195477 谢谢大家。我会调查这些。令人费解的是为什么它对我的同事通过 RDC 执行它有效,但我在执行时遇到这些错误。如果这发生在我们俩身上,那么尝试一个可能的解决方案就很简单了。你们中有人认为这可能是权限问题吗? @UuDdLrLrSs,您是否遇到过或知道有人从服务器上的远程桌面连接执行 VB6 应用程序对一个用户有效,但同一服务器上的另一个用户通过 RDC 连接遇到错误以上所列。这些链接在这种情况下仍然可行吗? 【参考方案1】:

您的 ImageList 控件中的某些图片可能存在“问题”。 尝试用“普通”bmp 和 gif 图像替换它们。

我的一个应用程序在 WinXP/Win7 上运行良好,但在 Win Server 2012 上引发了“无效图片”错误,因为我使用了一些 .ico 文件作为某些标签的 MouseIcon 属性。将其更改为 .cur 文件后,我的应用程序运行良好。

【讨论】:

谢谢史密斯。我会考虑到这一点。【参考方案2】:

从工作机器复制mscomctl.ocx到服务器19的C:\Windows\SysWow64目录然后以管理员身份运行cmd并执行

C:\Windows\SysWOW64\regsvr32.exe C:\Windows\SysWOW64\MSCOMCTL.OCX

【讨论】:

我试过这个,但我仍然收到错误。我从我的 Windows 10 机器上复制了 MSCOMCTL.OCX,注销了旧版本,并在 C:\Windows\SystWOW64\ 下注册了这个版本。我会继续调查。 你不会碰巧在服务器上安装了 MS Office x64 吧?前几天我刚刚遇到一台 PC,在使用 Office x64 运行 VB 时出现未指明的错误。安装 x86 并神奇地开始工作。 未安装 Office 64 位。【参考方案3】:

一旦我收到此错误 - Windows Server 2003 上的 vb6 应用程序中的“无效图片”,当 C: 驱动器有零字节可用时。在我清理了一些空间后,错误消失了。

【讨论】:

以上是关于VB编译运行后出现“运行时错误“76” 未找到路径” 。为啥?的主要内容,如果未能解决你的问题,请参考以下文章

升级到 Angular 8 后出现 d3.js 运行时错误

VB调用Fortran编译的dll,打包后在其他电脑上安装,运行后提示找不到所编译的dll文件

将 Excel 2007 中的文本写入 Sharepoint 站点上的 .txt 文件会导致运行时错误“76”找不到路径

VB6:运行时错误“13”:设置和 int 时类型不匹配 int

在 vb6 中填充组合框时出现运行时错误 0

1.10程序设计错误