创建 Access 97 格式的数据库

Posted

技术标签:

【中文标题】创建 Access 97 格式的数据库【英文标题】:Creating Access 97 format Database 【发布时间】:2010-08-11 06:10:25 【问题描述】:

互联网上的大多数示例代码都使用 access97 或 2000 格式的数据库。在数据库创建代码中提到,如果使用 Jet OLEDB:Engine Type=4,则创建的数据库是 access 97 格式,如果 Type=5比访问 2000 格式。但是当我使用 type=4 甚至使用可视数据管理器创建一个带有代码的数据库时,创建的格式是访问 95(如使用 MS access 2003 打开时所示)。我需要检查什么创建Access 97 格式的数据库?请帮忙!

【问题讨论】:

【参考方案1】:

这不是在 MS Access 2003 中打开它的人工制品吗?消息来源确实似乎表明引擎类型 4 对 Access 97 是正确的。

编辑:显然,引擎类型 4 对 Access 95/97 都有效。我再看看。

编辑 2:您使用的是哪个 JET 版本? 3.0 与 Access 95 db 相关联,3.5(1) 与 97 相关联。

【讨论】:

"3.0 与 Access 95 db 相关联" -- 你确定吗?我的重新收集是 Jet 数据库格式在 Access95 和 Access97 之间没有变化,并且两者都与 Jet 3.51“关联”。 我从***获得了背景信息以获取答案:en.wikipedia.org/wiki/Microsoft_Jet_Database_Engine 要创建数据库,我使用以下代码: Dim cat As New ADOX.Catalog sConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\personalDBase .mdb;Jet OLEDB:引擎类型=4;" cat.Create sConStr 如果 Provider=Microsoft.Jet.OLEDB.4.0 小于 4.0,即 3.50 或 3.51,则错误是找不到可安装的 ISAM 这里靠记忆,但我可以想象你确实需要支持组件。 MDAC 能帮到你吗?【参考方案2】:

嗨。

我成功在 Windows 10 + Access 2016 64 位上使用 VBScript 32 位制作空白 Access 97 格式 MDB 文件。

要创建 "E:\TEST97.MDB" ,让运行这个 VBScript 32 位。(从命令提示符运行(Cmd.exe)并粘贴 %SystemRoot%\SysWow64\cscript.exe "C:\hoge\MakeAC97.vbs " 并输入)

语言通用(英语等)

制作 Vbscript "C:\hoge\MakeAC97.vbs

传输 Access 2003 格式 mdb, "E:\test2000_2003.mdb

我可以访问 1.0 - 访问 2003 格式的 mdb 文件

代码示例是这篇日本文章

[http://qiita.com/Q11Q/items/1793f43a1fd4dd3f480f]

并且在 VBScript 32 位上使用 SQL,我们可以直接读取 Access 97 格式的 mdb 表数据。

[http://qiita.com/Q11Q/items/fc06d858ee0d3c9423f4]

当然有限制,但是Access 2016格式的accdb文件Tables和Select Queries和Union Queries转为Access 97格式的mdb。

[http://qiita.com/Q11Q/items/0ada315f6b5eb9b14f8b]

'%SystemRoot%\SysWow64\cscript.exe "C:\hoge\MakeAC97.vbs" '以后访问 2013 '64 / 32 好的 常量 DB_Lang_General = ";LANGID=0x0409;CP=1252;COUNTRY=0" 常量 DB_LANG_JAPANESE = ";LANGID=0x0411;CP=932;COUNTRY=0" 常量 DB_Lang_Arabic = ";LANGID=0x0401;CP=1256;COUNTRY=0" 常量 DB_Lang_ChineseSimplified = ";LANGID=0x0804;CP=936;COUNTRY=0" onst DB_Lang_ChineseTraditional = ";LANGID=0x0404;CP=950;COUNTRY=0" 常量 DB_Lang_Cyrillic = ";LANGID=0x0419;CP=1251;COUNTRY=0" 常量 DB_Lang_Czech = ";LANGID=0x0405;CP=1250;COUNTRY=0" 常量 DB_Lang_Dutch = ";LANGID=0x0413;CP=1252;COUNTRY=0" 常量 DB_Lang_Greek = ";LANGID=0x0408;CP=1253;COUNTRY=0" 常量 DB_Lang_Hebrew = ";LANGID=0x040D;CP=1255;COUNTRY=0" 常量 DB_Lang_Hungarian = ";LANGID=0x040E;CP=1250;COUNTRY=0" 常量 DB_Lang_Icelandic = ";LANGID=0x040F;CP=1252;COUNTRY=0" 常量 DB_Lang_Korean = ";LANGID=0x0412;CP=949;COUNTRY=0" 常量 DB_Lang_Nordic = ";LANGID=0x041D;CP=1252;COUNTRY=0" Const DB_Lang_NorwDan = ";LANGID=0x0406;CP=1252;COUNTRY=0" '挪威和丹麦 常量 DB_Lang_Polish = ";LANGID=0x0415;CP=1250;COUNTRY=0" 常量 DB_Lang_Slovenian = ";LANGID=0x0424;CP=1250;COUNTRY=0" 常量 DB_Lang_Spanish = ";LANGID=0x040A;CP=1252;COUNTRY=0" 常量 DB_Lang_SwedFin = ";LANGID=0x041D;CP=1252;COUNTRY=0" 常量 DB_Lang_Thai = ";LANGID=0x041E;CP=874;COUNTRY=0" 常量 DB_Lang_Turkish = ";LANGID=0x041F;CP=1254;COUNTRY=0" Const DB_OPEN_DYNASET = 2 Const DB_APPEND_ONLY = 8 Const DRIVE_NAME = "E:\" Const FILE_NAME = "TEST97.mdb" Const oldFile = "E:\test97.mdb" Const NewFile = "E:\test2000_2003.mdb" Const cnsDbVersion30_AC95_AC97_Jet30_Jet35 = 32 Const cnsDbVersion20_AC20_Jet20 = 16 Const cndDBVerion10 =1 Dim dbe : Set dbe = CreateObject("DAO.DBEngine.36") ' MDB Start Making... Set dbe = CreateObject("DAO.DBEngine.36") Set db = dbe.CreateDatabase(DRIVE_NAME & FILE_NAME, DB_Lang_General, cnsDbVersion30_AC95_AC97_Jet30_Jet35) Set db = Nothing Set dbe = Nothing Call JetCompact End Sub Sub JetCompact() Dim JIRO : Set JIRO = CreateObject("JRO.JetEngine") Dim strOldConnect : strOldConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & oldFile & ";" Dim strNewConnect : strNewConnect ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & NewFile & ";Jet OLEDB:Engine Type =5;" With CreateObject("Scripting.FileSystemObject") If .FileExists(oldFIle)=False then Wscript.Quit If .FileExists(NewFile)=True then Wscript.Quit End With JIRO.CompactDatabase strOldConnect, strNewConnect Set Jiro = Nothing WScript.Echo "Success End" End Sub

【讨论】:

请先看这个:answering 和 how-to-answer

以上是关于创建 Access 97 格式的数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用 Access 2003 将 Access 2000 数据库转换为 Access 97

我需要编写一个 Access 97 .mdb 文件

Clear with query in database access 97 mdb c#

使用带有日期的 C# 在 MS Access 97 数据库中清除查询

vb中怎么用crystalreport

从 access 97 数据库中获取表/模式