Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel Can';t通过ADO更改accdb格式的链接数据源_Excel_Vba_Ms Access_Ado - Fatal编程技术网

Excel Can';t通过ADO更改accdb格式的链接数据源

Excel Can';t通过ADO更改accdb格式的链接数据源,excel,vba,ms-access,ado,Excel,Vba,Ms Access,Ado,我正在尝试使用ADO和ADOX(来自excel)将链接表添加到ACCESS数据库 但是,每次尝试时,我都会收到错误: “Microsoft Access不支持链接到以比当前数据库格式更高版本的格式保存的Access数据库或Microsoft Office Excel工作簿。” 链接表和目标数据库都是使用Access 2010创建的,并且都是.accdb格式。我的代码: Set cat = New ADOX.Catalog Set tbl = New ADOX.Table

我正在尝试使用ADO和ADOX(来自excel)将链接表添加到ACCESS数据库

但是,每次尝试时,我都会收到错误: “Microsoft Access不支持链接到以比当前数据库格式更高版本的格式保存的Access数据库或Microsoft Office Excel工作簿。”

链接表和目标数据库都是使用Access 2010创建的,并且都是.accdb格式。我的代码:

    Set cat = New ADOX.Catalog
    Set tbl = New ADOX.Table

    ' Open the catalog.
    cat.ActiveConnection = objConnection

    tbl.ParentCatalog = cat
    tbl.Name = "Promotions"
    tbl.Properties("Jet OLEDB:Link Datasource") = strCurrentPath & _
        "LocPrcCh.accdb"
    tbl.Properties("Jet OLEDB:Remote Table Name") = "Promotions"
    tbl.Properties("Jet OLEDB:Create Link") = True
    tbl.Properties("Jet OLEDB:Link Provider String") = _
        "MS Access;PWD=XXXXXXXXX;"

    cat.Tables.Append tbl
返回最后一行之后的错误。有没有办法让这一切顺利进行

解决了它

我的目标文件扩展名为.accdb,但不是2007格式。打开时,它说这是一个2002-2003格式的访问文件


该文件是在Access 2010中创建的,但后来更改了格式。我在程序的其他地方使用了jetengine压缩功能,它以旧格式创建了数据库的新版本。

为什么要使用VBA链接来自两个不同数据库的表?这是一种用excel编写的解决方案,因为大多数用户都无法访问其计算机。该解决方案使用两个主要数据源—促销数据库(每天更新多次)和大型参考数据库(每月更新一次),这两个数据库都位于服务器上。excel在其运行的计算机上创建两个数据库的本地副本。有时它需要同时对来自两个数据库的表运行查询,为此,我创建了一个数据库,其中包含指向两个本地数据库的表链接。我查询了这个组合数据库,遇到了类似的问题。最困难的部分是找出数据库的格式。我发现这有助于确定在哪个MS Access版本中使用哪个MS Jet格式。