Excel VBA运行时错误:找不到文件

Excel VBA运行时错误:找不到文件,excel,ms-access,vba,Excel,Ms Access,Vba,大家好。我有一个我似乎无法解决的问题。我正在开发一个excel程序,该程序可以从MS Access 2010数据库检索数据并进行更新。我使用ADODB.Connection连接数据库,文件(access.accdb)驻留在文件服务器中。当应用程序首次启动时,它使用form1从用户处获取登录详细信息,并检查数据库中是否存在用户id。此函数驻留在模块中,工作正常。当我试图从另一个用户窗体(form2)中的子窗体打开同一个文件时,我不断收到一个错误,即找不到该文件。我使用的路径字符串与模块中使用的路径

大家好。我有一个我似乎无法解决的问题。我正在开发一个excel程序,该程序可以从MS Access 2010数据库检索数据并进行更新。我使用ADODB.Connection连接数据库,文件(access.accdb)驻留在文件服务器中。当应用程序首次启动时,它使用form1从用户处获取登录详细信息,并检查数据库中是否存在用户id。此函数驻留在模块中,工作正常。当我试图从另一个用户窗体(form2)中的子窗体打开同一个文件时,我不断收到一个错误,即找不到该文件。我使用的路径字符串与模块中使用的路径字符串完全相同,只是这次它是从用户表单中使用的。以下是模块2中的代码:

Dim con As Object
Dim rs As Object
Dim path As String
path = "path.accdb"
Set con = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
with con
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source = " & path & "; Jet OLEDB:Database Password = pwd"
.Open
这个很好用。 我只在用户窗体中使用相同的,而不使用记录集对象。我不是从表单中检索数据,而是更新数据库。该表单仅用于数据捕获

任何帮助都将不胜感激。谢谢

这是我在form1中使用的代码:

Dim conn As Object
Dim strPath As String
strPath = "path.accdb" 'same as the path I used from within Module2
Set conn = CreateObject("ADODB.Connection")
with conn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source = " & strPath & "; Jet OLEDB:Database Password = pwd"
.Open    'this is where I get the error.
'Rest of code
错误消息: 运行时错误“-2147467259(80004005)”: 找不到文件“path.accdb”

我已经检查了路径,它是正确的。我已经查过缺少的参考资料。我还必须提到,数据库文件位于我公司文件夹中我确实可以访问的文件夹中。

简单语法问题:

您声明strPath:

Dim strPath As String
strPath = "path.accdb" 'same as the path I used from within Module2
但是,您可以调用
Path

.ConnectionString = "Data Source = " & path & "; Jet OLEDB:Database Password = pwd"
当我们切换变量的拼写时,所有人都会遇到这种情况:)

**编辑**

好的。。。让我们试试不同的

为什么不在全局变量中只打开一次数据库

在子窗体中再次打开它可能会与您与数据库的初始连接发生冲突

特别是因为你没有向我们显示你关闭连接的代码


在你的真实代码中有很多线索你没有给我们看。如果生成全局变量不起作用,您可能需要向我们显示您的真实代码,其中只更改了敏感信息。

请将不起作用的完整代码添加到您的问题中。如果存在机密表/字段名,请更改它们,但确保问题仍然存在(向数据库中添加一个虚拟的
myTable
)。请看,您可能需要完整的路径/文件名,而不仅仅是您的“路径”,它实际上只是文件名。感谢您的回复,不幸的是,这不是问题所在。虽然我的帖子中的变量名有所不同(现在将更正),但这不是我实际代码中的问题☺@user3452354:这正是您发布的截断/编辑代码的问题所在。这个问题无法从那个片段中重现。再次强调:阅读时要特别注意完整性和可验证性。