[Microsoft][ODBC Microsoft Access Driver]常见错误

作者&投稿:仉谢 (若有异议请与网页底部的电邮联系)
[Microsoft][ODBC Microsoft Access Driver]常见错误~


错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database
engine cannot open the file '(unknown)'. It is already opened exclusively
by another user, or you need permission to view its data.
原因:
这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录
没有正确的权限.(这就是为什么在Win95和PWS下没问题,因为win95根本就没有目录权限这一说)
检查文件和目录的权限. 确定你能够在该目录中有能够新建和删除临时文件的权限。
这些临时文件其实是数据库建立在同一个目录下的文件, 但是要注意的是,有可能这些文件
也可能建立在别的目录,例如 /Winnt.

使用NT的文件监视程序监视文件失败时到底是访问了什么目录。
这个NT的文件监视程序可以在这个地方下载http://www.sysinternals.com.

如果你对数据库使用了一个网络地址,例如映射地址,就要检查一下共享文件和目录的权限,

还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中,
这些别的程序一般是Visual InterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。

这个错误还可能发生在这种情况:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用
本地路径进行测试,因为如果对本地数据库使用UNC也可能出错。
还可能发生在这种情况,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。

错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't use '(unknown)'; file
already in use.
原因:
多人使用时数据库被锁定。

错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default
driver specified.
原因:
最可能的原因是ConnectString是一个在global.asa中初始化的Session变量 ,但是global.asa
却没有正常工作。解决办法是,检查赋值时是否正确:(在你的asp中加入下面的代码)






还有一个原因就是你在你的ConnectString中加入了多余的空格,例如
DSN = MyDSN; Database = Pubs;
试试改成下面这个样子:
DSN=MyDSN;Database=Pubs;

如果是global.asa还没有工作,检查该文件是否在运用程序的根目录中,或者是虚拟目录的根目录中。

还有可能错误出现的原因是DSN名称没找着,这可以采用我提供的id=36767的办法解决。
最后是检查是否安装了最新的驱动程序,既是否是最新的MDAC版本。

错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not ??
原因:
这个错误有可能是出现在你的计算机上软件安装(或则反安装)的顺序上。
如果ODBC的版本不一致的话,就会发生该错误。
解决办法是安装最新版本的MDAC

错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Access 97 ODBC driver Driver]General error Unable to open
registry key 'DriverId'.
原因:
这个错误发生在爱从注册表中读取数值的时候。 使用regedit32.exe检查你的注册表的权限。
你也可以使用NT中的注册表监视程序(NTRegMon)来看读取失败信息。 该程序到这找:http://www.sysinternals.com

错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][dbnmpntw]ConnectionOpen (CreateFile()).
原因:
两个原因:当一个数据库中包含有分别在不用机器上的许可关系时,
这也可能发生在同一台机器上,当你给一个关系设置了UNC路径,而另一个关系却是本地路径。
错误原因是:
当用户使用IIS匿名帐号登录后,对本地这台机器而言他是有权的,但是对于一个UNC路径的机器,
另外这台机器是不会认为你当前匿名登录的帐号在它那上面也是合法的。
这样它就不允许你访问它上面的资源,导致错误。

两个解决办法:
1。在IIS工具中,改变IIS匿名帐号成另外一个基于域的帐号。(也就是不使用匿名登录)
2。或则在那台你要访问资源的机器上也创建一个和当前匿名帐号同样的帐号,使用同样的密码。

错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005' Microsoft][ODBC
Microsoft SQL Driver] Logon Failed()
原因:
该错误是由SQL Server产生的,当它不接受或则不能够认识这个登录帐号的时候,或者没有使用管理员身份登录,
也可能是在NT中没有SQL影射帐号造成的。

使用系统管理员帐号(SA)登录,一般密码应该为空.注意,这时必须使用CoonectString而不能够使用DSN文件。
因为DSN中没有保存用户名和密码。
检查NT是否给SQL映射了帐号。

错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][SQL Server] Login failed- User: Reason:
Not defined as a valid user of a trusted SQL Server connection.
原因:
原因同上。
试试这个办法:在SQL Server的Enterprise Manager中,选择Server/SQL Server/Configure[ASCII
133]/Security Options/Standard.
如果是运行在IIS4中,取消选择该项目的Password Synchronization选项。

错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't lock file.
原因:
也许是没有正确的权限生成Access数据库的锁定文件(.ldb)
默认时,该文件和你的数据库是同一个目录的。
给匿名帐号全权访问数据库共享目录的权限。

有时是因为文件是因为共享时有意使用了只读的权限限制。试试使用下面的代码。
Set Conn = Server.CreateObject("ADODB.Connection"
Conn.Mode = adModeShareDenyWrite '8

错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] '(unknown)' isn't a valid
path. Make sure that the path name is spelled correctly and that you are
connected to the server on which the file resides.
原因:
路径非法。最可能发生在当Global.asa和CoonecntString被使用到另外一台机器上的时候。

错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][SQL Server] The query and the views in
it exceed the limit of 16 tables.

原因:
查询太复杂了,对查询有限制。

错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][DBMSSOCN] General network error. Check
your network document
原因:
当装有SQL Server的机器改名的时候。但是DSN还使用了原来的机器名。

解决方法:
(1)检查是否在IIS中对整个网站打开了“写入”权限,而不仅仅是数据库文件。
(2)检查是否在WIN2003的资源管理器中,将网站所在目录对EveryOne用户打开所有权限。具体方法是:打开“我的电脑”----找到网站所在文件夹----在其上点右键----选“属性”-----切换到“安全性”选项卡,在这里给EveryOne用户所有权限。
注意: 如果你的系统是XP,请先点“工具”----“文件夹选项”----“查看”-----去掉“使用简单文件共享”前的勾,确定后,文件夹“属性”对话框中才会有“安全性”这一个选项卡

那就是你的代码中含有关键字

请教怎么在access中用VBA导入excel数据到access库
答:1、首先为导入文件设置一个按钮:(更新数据)2、为“更新数据”按钮添加执行代码:Private Sub Command87_Click()If MsgBox("请准备好导入的文件!", vbOKCancel, "打印确认") = 1 ThenDim xdlj As String 'xdlj:相对路径Dim dklj As String 'dklj:打开路径dklj = od()If Not (dklj = "...

如何在DOS下编辑注册表
答:reg compare "hkcu\software\microsoft\winmine" "hkcu\software\microsoft\winmine" /od /s reg copy 将一个注册表项复制到本地或远程计算机的指定位置。 语法reg copy KeyName1 KeyName2 [/s] [/f] 参数KeyName1 指定要复制子项的完整路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项...

qq空间打开显示ox71602fac指令引用的oxod746234内存,该内存不能为“rea...
答:您好!出现:0x??? 指令引用的0x???内存。该内存不能为"read"或"written"。答案【shijan8原创】★严禁复制★ 【1】对电脑没有影响或【偶尔】出现,不用管它,【重启电脑】后可能会自动消失。 【2】盗版系统或Ghost版本系统,系统文件错误或丢失,也会出现该问题,及时安装官方发行的补丁,{检查电脑...

odserv 和ehttpsrv 无法启动
答:1,首先任务栏上的输入法图标上点右键选择设置。然后选择键设置,双击第一个"在不同的输入语言之间切换"先勾选"切换输入语言"下面选择左手ALT。取消右边"切换键盘布局"前的勾。然后进入"中文(简体)输入法 - 输入法/非输入法切换",取消"启用按键顺序"前的勾。然后点"确定"再次进入设置,进入"在不...

reg命令怎么用
答:你是要把REG文件导入注册表吗??? 如果是,命令如下 regedit /s yours.reg (yours,reg就是你的REG文件,注意你文件存放的路径)

还原精灵与病毒
答:6:新版本“机器狗”病毒没有对注册表进行操作,老版本“机器狗”病毒有对注册表“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”项进行操作(感觉该操作没必要,因为重新启动系统后,“还原保护程序”系统会将其还原掉)。7:新版本“机器狗”病毒去到系统dllcache文件夹下调用真实系统文件运行...

关于Microsoft Visual C# / Basic .NET程序的反汇编问题
答:C / Basic .NET都属于.net框架的东西,安装了.net framework,就自带了一个反汇编工具。

用VS2010创建一个webservice查询Access数据库
答:应该是你的连接字符串的问题,你要指定数据库和密码。上面 string oleDBString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:/MainDB.mdb";这个最好封装到web.config中 如:<connectionStrings> <add name="ConnectionString"connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:...

批处理如何设置注册表项的权限
答:查询所有子项和值 例如:REG QUERY HKLM\Software\Microsoft\ResKit /v Version 显示注册表值 Version 的值 REG QUERY HKLM\Software\Microsoft\ResKit\r t\Setup /s 显示注册表项 Setup 下的所有子项和值 REG ADD KeyName [/v ValueName | /ve][/t Type][/s Separator][/d Data][/f]...

请问这段代码的用途是什么,每次它都要出现
答:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> ad /*说明你用的编辑软件是 Microsoft Visual Studio .NET 7.1*/ /*代码语方是C#*/ 客户端默认脚本语言Javascript*/ <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> /关闭CACHE功能 </HEAD> ...