gpt4 book ai didi

ms-access - 如何以编程方式将 Access 1997 .mdb 转换为 Access 2007 .accdb

转载 作者:行者123 更新时间:2023-12-02 23:58:02 55 4
gpt4 key购买 nike

我正在开始构建一个应用程序,该应用程序从给定的根路径开始遍历文件夹结构,并将所有找到的 Access 1997 .mdb 文件转换为较新的 Access 2007/2010 .accdb 格式。但是,我在进行实际文件转换时遇到了一些麻烦。

我使用 Microsoft 的 Access Interop API ( https://msdn.microsoft.com/en-us/library/office/ff193465.aspx ) 来处理转换,因此必须使用 VBScript 编写。脚本如下:

Dim app 
Set app = CreateObject("Access.Application")
app.ConvertAccessProject "C:\Users\[User]\Access Conversion Utility\sample.mdb", "C:\Users\[User]\Access Conversion Utility\converted.accdb", acFileFormatAccess12

运行时,我收到错误“该项目无法转换为此格式。该项目只能转换为 Access 2000 或更新的格式。”然而,无论文件参数枚举值是“acFileFormatAccess97”还是“acFileFormatAccess2000”,都会显示相同的错误消息。有谁知道这个错误的详细信息以及可能的解决方案是什么?我尝试更改第二个参数的扩展名,认为这是问题的一部分,但这对错误消息没有任何更改。

我正在使用的示例文件可以在 Access 中正常打开,只是转换本身失败。

无论如何,如果有人有更好的想法或方法以编程方式进行转换,我很想听听,但这是我能找到的唯一的。计划是从用 C# 编写的 GUI 应用程序运行此脚本,但也允许通过命令行运行该应用程序。

最佳答案

I'm using Microsoft's Access Interop API ... so this has to be written in VBScript.

废话。我刚刚在 C# (Visual Studio 2010) 中尝试过此操作,它在 Access 2010 中运行良好:

// COM reference required for project
// Microsoft Access 14.0 Object Library

var app = new Microsoft.Office.Interop.Access.Application();
app.ConvertAccessProject(
@"C:\Users\Public\test\a97test.mdb",
@"C:\Users\Public\test\a2007converted.accdb",
Microsoft.Office.Interop.Access.AcFileFormat.acFileFormatAccess2007);
app.Quit();

请注意,这几乎肯定不适用于 Access 2013 及更高版本,但这些版本的 Access 的 COM Interop 的 VBScript 实现也不适用于这些版本,因为它们绝对拒绝打开 Access_97(及更早版本)数据库。

关于ms-access - 如何以编程方式将 Access 1997 .mdb 转换为 Access 2007 .accdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37261478/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com