跳过VB-6代码

时间:2016-11-04 14:37:21

标签: database vb6

我的任务是找到一个错误,该错误完全打破了大约6个团队使用的旧版vb6系统。

错误是'对象变量或没有设置块变量'。经过一段时间的代码,我发现这个方法创建了工作区,然后在其中打开了数据库连接。

Public Sub OpenDatabases()
'Used for RFI
Set wj = CreateWorkspace("Archive", UserLogonName, UserPassword, dbUseJet)
Set RFIwj = CreateWorkspace("RFI", UserLogonName, UserPassword, dbUseJet)
Set RRwj = CreateWorkspace("RRI", UserLogonName, UserPassword, dbUseJet)
Set db = wj.OpenDatabase(DriveToUse & "\archive.mdb.mdb", , , "UID=" & UserLogonName & ";PWD=" & UserPassword)
Set RFIdb = RFIwj.OpenDatabase(DriveToUse & "\RMCS\RFI.mdb", , , "UID=" & UserLogonName & ";PWD=" & UserPassword)
Set RRdb = RRwj.OpenDatabase(DriveToUse & "\RMCS\RR.mdb", , , "UID=" & UserLogonName & ";PWD=" & UserPassword)
End Sub

当单步执行代码时,它会进入设置wj的第一行,然后只退出方法而不设置变量。

我对任何VB的经验都很有限,因此任何关于为什么会这样做的建议都会很棒。

干杯。

1 个答案:

答案 0 :(得分:0)

CreateWorkspace是与通过DAO准备到MS Access的连接相关的命令。假设VB应用程序中的代码没有被更改,并且系统似乎“有一天”“停止工作”,那么很可能是Access / MS Office配置中的某些内容被更改了。请咨询您的系统管理员,并询问在发生故障时所做的更改。虽然这可能会给你一个原因,但它不太可能给你一个答案。出于兴趣,Jet DAO Wiki page

  

Microsoft Access 2013中未提供或支持3.6之前的DAO库版本。

也许这是您的答案,您的管理员已更新到Office 2015,而系统使用的是旧版DAO。

答案可能在于更新MS DAO库以匹配已安装的Access / MS Office版本。尝试谷歌搜索'MS DAO'

可能会发现MS退役DAO并且您需要切换到另一种数据连接技术。这是page tells您如何使用ADO从VB.Net连接到Access。