尝试从VB应用程序使用MDB文件时,上述错误的原因是什么?
MDB文件的访问版本是6.68。
我觉得这可能是因为有人试图从较新版本的Access中打开.mdb文件而导致MDB损坏。
如何解决这个问题?
答案 0 :(得分:0)
以下是一些VBScript,希望能为您提供一个版本。将其保存在带有vbs扩展名的普通文本文件中,然后将mdb拖放到该文件中。这是一个非常快速的草图,只是粗略测试。
Set fs = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count > 0 Then
sPath = WScript.Arguments.Item(0)
Else
sPathTemp = Left(WScript.ScriptFullname, _
InStrRev(WScript.ScriptFullname, "\"))
sPath = InputBox("Enter Path and Name of .mdb", "Get Ver", sPathTemp)
End If
If sPath = "" Or fs.FileExists(sPath) = False _
Or Right(sPath, 4) <> ".mdb" Then
MsgBox "Not a valid file: " & vbCrLf & sPath, 64, "Get Ver"
Else
Set cnnDB = CreateObject("ADODB.Connection")
cnnDB.Provider = "Microsoft.Jet.OLEDB.4.0"
cnnDB.Mode = 1 ''adModeRead
On Error Resume Next
cnnDB.Open sPath
If Err.Number <> 0 Then
MsgBox "Error"
Else
MsgBox "4 = Access 97, 5 = Access 2000 (2002?)" & vbcrlf & _
"Value for " & sPath & " is: " & _
cnnDB.Properties.Item("Jet OLEDB:Engine Type").Value
cnnDB.Close
End If
End If
答案 1 :(得分:0)
“无法识别的数据库格式”错误是典型的损坏,但它们也与使用较新版本的Access(或者在您的情况下可能带有连接字符串)中创建的较旧版本的Access打开数据库相关联引用旧版本的Jet。)
根据Access Wiki,没有版本6.68。不是为了Access而不是Jet,所以你需要确定你有哪个版本,然后确定你需要哪个版本的Jet进行连接。
请注意,如果您使用的是Access 2007,则在未安装SP的情况下,无法在Access 2007中读取在Access 2007 SP1中创建的accde或mde。
如果它确实是腐败,我建议您在不同的文件夹中创建一个新的,新鲜的数据库。将表,查询,表单等导入新数据库,执行压缩和修复,然后测试新数据库以确保它没有损坏。