我在使用ACCESS时,创建新数据库时总是d出DLL加载错误,Active不能创建此文件?

我在使用ACCESS时,创建新数据库时总是d出DLL加载错误,Active不能创建此文件?,第1张

一 到如下路径:C:\Program Files\Common Files\Microsoft Shared\DAO 找到扩展名为DLL或dll的两个文件。我的这两个文件分别是 DAO350.DLL dao360.dll 二 将你刚才找到的两个文件复制到你安装 “Office办公软件”的“OFFICE11”文件夹下面。例如我是复到如下路径:G:\Office2003\OFFICE11,因为我是将Office2003安装到G盘Office2003里面。 三 在注册表里注册这两个文件: 因为我是将这两个文件都放到了G:\Office2003\OFFICE11\ 下面。 在开始菜单运行里输入:如下注册路径: Regsvr32.exe "G:\Office2003\OFFICE11\DAO350.DLL" Regsvr32.exe "G:\Office2003\OFFICE11\dao360.dll" 四 还有一种方法是来自百度的回答 将C:\ProgramFiles\CommonFiles\MicrosoftShared\DAO下的dao360.dll和Msado15.dll复制到C盘根目录下。然后运行: Regsvr32.exe "C:\dao360.dll" Regsvr32.exe "C:\Msado15.dll" 就OK了,注意,dao360.dll和Msado15.dll也打以复制到如C:\ee下,相就的运行就改变了: Regsvr32.exe "C:\ee\dao360.dll" Regsvr32.exe "C:\ee\Msado15.dll" 这样的目的的是防止路径中出现空格造成无法识别dao360.dll和Msado15.dll的真正路径。 原理:access导入xls,txt.doc等文件时,需要调用dao360.dll和Msado15.dll这两个文件,而有的盗版的office无法注册这两个文件的信息,造成加载dll失败。 五择自网上 如何处理MS Access 2000+ 以上的出现的“加载DLL”错误信息最近在将外部数据库(EXCEL、文本文件、其他数据库文件)导入到MS ACCESS 2000+中的时候就遇到“加载DLL”的错误信息,开始以为缺少什么文件,于是用安装文件进行了修复,但是结果还是一样。于是,只好Google 一下,发现了一个很好的解决方案: http://support.microsoft.com/kb/833220/zh-cn =============================== 症状 当您尝试在 Microsoft Access 2002, 使用 Microsoft Access 向导, 例如导入文本向导或导入表格向导, 可能会收到以下错误信息。 当您尝试打开由切换面板管理器, 创建窗体可能会收到以下错误信息: 加载DLL 中错误 原因 如果缺少 Microsoft Data Access Components (MDAC) 文件、 损坏 MDAC 文件或计算机上过时 MDAC 文件可能发生此问题。 解决方案 要解决此问题, 请使用下列方法之一: 方法1: 注册需要 Dao 360 .dll 文件和 Msado15.dll 文件 您可能需要通过使用 Regsvr32 .exe 程序注册 Dao 360 .dll 文件和 Msado15.dll 文件。 要这样做, 请按照下列步骤 *** 作: 1.开始,依次 运行 。 2.在 运行 对话框中, 在 打开 框中, 键入以下命令, 然后单击 确定 : Regsvr 32 .exe " <<Dao360.dll_Path >>" Regsvr 32 .exe " <<Msado15.dll_Path >>" <<Dao360.dll_Path >>占位符是 Dao 360 .dll 文件的绝对路径。 <<Msado15.dll_Path >>占位符是 Msado15.dll 文件的绝对路径。 以下示例显示如何可能指定一个绝对路径: Regsvr32 .exe " C:\Program Files\Common Files\Microsoft Shared\DAO\Dao360.dll " Regsvr32 .exe " C:\ProgramFiles\Common Files Files\system\ado\Msado15.dll " 如果成功注册 Dao 360 .dll 文件, 收到信息是类似于以下消息: C:\Program Files\Common Files\Microsoft Shared\DAO\Dao360.dll 中的 DllRegisterServer 成功。 如果成功注册 Msado15.dll 文件, 收到信息是类似于以下消息: 在C:\ProgramFiles\Common Files Files\system\ado\Msado15.dll DllRegisterServer 成功。 3.单击 确定 。 方法2: 安装最新版本的 MDAC。 =============================================== 经过试验,发现两个方法都行不通。但是,最后还是从方法1中得到启发,因为C:\Program Files\Common Files\Microsoft Shared\DAO\Dao360.dll确实是存在,但是注册不上。最后考虑是否由于路径中的空格符引起,于是将这个文件拷贝到系统目录(windows\system32)下(当然也可以是任何非空格符路径下)。再次使用Regsvr32 命令,终于成功了。 接下来,MS ACCESS 2000+的DLL 错误问题也得到了解决。看来在安装的时候就留下了隐患,只是没有用到就忽略了罢。 六相关知识择自网上 大家注册DLL或OCX的方法应该用Regsvr32.exe,用得多了大家一定会觉得在运行中写一长串东西很是烦人吧!这里我向大家介绍一种麻烦一次方便“一生”的方法。这个方法只要右击你想注册或反注册的OCX或DLL就可以了。它的原理是通过修改注册表使右击OCX或DLL文件时出现注册和反注册的菜单项。 下面介绍这个方法 注册DLL文件:打开HKEY_CLASSES_ROOR\Dllfile,新建项shell,再其下新建Register。你会发现Register就是右键d出的菜单名,再在其下建command,修改其“默认值”为Regsvr32 %1 反注册DLL文件:打开HKEY_CLASSES_ROOR\Dllfile,新建项shell,再其下新建Unregister,再在其下建command,修改其“默认值”为Regsvr32 %1 /u。 注册和反注册OCX文件打开HKEY_CLASSES_ROOR\OCXfile,然后其它的方法和上面的一样的了。 右击一个OCX或DLL试试看,出现了我们想要的Register和Unregister菜单项。 Activex注册和反注册工具——Regsvr32 使用过Activex的人都知道,Activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所使用的Activex控件注册,但如果你拿到的一个控件需要手动注册怎么办呢?如果修改注册表那就太麻烦了,在Windows的system文件夹下有一个regsvr32.exe的程序,它就是Windows自带的Activex注册和反注册工具。它的用法为: regsver32详解 regsvr32 [/s] [/n] dllname 其中dllname为activex控件文件名,建议在安装前拷贝到system文件夹下。 参数有如下意义: /u——反注册控件 /s——不管注册成功与否,均不显示提示框 /c——控制台输出 /i——跳过控件的选项进行安装(与注册不同) /n——不注册控件,此选项必须与/i选项一起使用 如笔者要注册一amovie.ocx控件,则打入regsvr32 amovie.ocx即可,要反注册它时只需使用regsvr32 /u amovie.ocx就行了。 regsvr32 /s APIINEX.dll 注册DLL文件regsvr32 /s /u APIINEX.dll 卸载DLL文件regsvr32 Shortcut.ocx 注册ocx文件regsvr32 /u Shortcut.ocx 卸载ocx文件/s .dll,.ocx 注册成功后不显示提示信息。/u .dll,.ocx 卸载 可把注册控件的命令放入批处理文件中。 regedit /s adofre15.reg 直接把注册信息注入注册表。

注册ado与dao试试

一、注册ADO:

1.单击“开始”->“运行”

2.输入 REGSVR32 "C:\Program Files\Common Files\System\ado\msado15.dll"

3.单击“确定”按钮

二、注册DAO:

1.单击“开始”->“运行”

2.输入 REGSVR32 "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll"

3.单击“确定”按钮

在U3D中要访问Access数据库,我们需要用到两个dll,System.Data.dll和System.EnterpriseServices.dll,缺一不可。我们找到这两个dll放到u3d的Plugins文件夹下面。

下面我们创建一个Access数据库版本是07样式是*.accdb(03版本的Access数据库的样式为*.mdb)在我们进行code的时候,要根据不同的版本进行判断啦,对于不同的Access数据库版本,我们要对应不懂的文件后缀名。要不然会提示你数据库文件是未知文件。

下面是读取Access的一个demo,其他的修改,添加数据都是在修改他的sql语句啦。简单的代码如下:

using UnityEngine

using System.Collections

//引入命名空间

using System

using System.Data

using System.Data.Odbc

public class RaderData : MonoBehaviour

{

/// <summary>

/// 声明一个接受读取数据字段值的变量

/// </summary>

string text = string.Empty

public void Start()

{

//读取数据文件。

ReadStudent(Application.dataPath + “/Wild boar.accdb”)

}

/// <summary>

/// 读取表数值的函数

/// </summary>

/// <param name=”filetoread”>数据文件的路径</param>

internal void ReadStudent(string filetoread)

{

//声明连接数据库的字段

string connection = “Driver={Microsoft Access Driver (*.mdb, *.accdb)}DBQ=” + filetoread

//从表中查询所有数据

string sqlQuery = “select * from Student”

//打开数据库

OdbcConnection con = new OdbcConnection(connection)

//对数据库进行 *** 作

OdbcCommand cmd = new OdbcCommand(sqlQuery,con)

//根据表名,读取数据到一个临时表

DataTable dt = new DataTable(“Student”)

//try catch finally进行了异常处理,这个是好习惯,嘿嘿

try

{

//打开数据库

con.Open()

//读取数据

OdbcDataReader reader = cmd.ExecuteReader()

//把数据加载到临时表

dt.Load(reader)

//在使用完毕之后,一定要关闭,要不然会出问题

reader.Close()

//关闭数据库

con.Close()

}

catch (Exception ex)

{

Debug.Log(ex.ToString())

}

finally

{

//判断数据库是否打开,如果打开就关闭。

if (con.State!=ConnectionState.Closed)

{

con.Close()

}

//释放数据库资源

con.Dispose()

}

if (dt.Rows.Count>0)

{

//读取数据

for (int i = 0i <dt.Rows.Counti++)

{

text = dt.Columns[0].ColumnName + ” : ” + dt.Rows[dt.Columns[0].ColumnName].ToString() + “ | ” + dt.Columns[1].ColumnName + ” : ” + dt.Rows[dt.Columns[1].ColumnName].ToString() + “ | ” + dt.Columns[2].ColumnName + ” : ” + dt.Rows[dt.Columns[2].ColumnName].ToString() + “ | ” + dt.Columns[3].ColumnName + ” : ” + dt.Rows[dt.Columns[3].ColumnName].ToString()

Debug.Log(dt.Columns[0].ColumnName + ” : ” + dt.Rows[dt.Columns[0].ColumnName].ToString() + “ | ” + dt.Columns[1].ColumnName + ” : ” + dt.Rows[dt.Columns[1].ColumnName].ToString() + “ | ” + dt.Columns[2].ColumnName + ” : ” + dt.Rows[dt.Columns[2].ColumnName].ToString() + “ | ” + dt.Columns[3].ColumnName + ” : ” + dt.Rows[dt.Columns[3].ColumnName].ToString())

}

}

}

public void OnGUI()

{

GUI.Label(new Rect(10,10,500,200),text)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9928087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存