问题标签 [ms-jet-ace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
75 浏览

excel - JET/ACE 在其他版本的 Excel 中打开工作簿

我在一个系统上安装了 Office 2010(32 位)和 Office 2013(64 位)。
他们俩分别运行良好。
然后前几天 Office 2013 说要安装一些更新,我同意并让它安装更新。现在,当我在 Excel 2010 中执行以下 VBA 代码时,它会在 Excel 2013 中打开工作簿,并针对该工作簿而不是我已经打开的工作簿运行我的查询。

发生了其他事情,例如 Excel 2013 现在默认打开所有 Excel 工作簿。

我尝试使用“设置关联”将 Excel 2010 (C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE) 设置为默认值,但 Excel 2013 仍在打开它们。

右键单击文件并选择打开方式...并选择

C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE

在 Excel 2013 中打开它

如果我手动运行

C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE

它打开 Excel 2010。

我必须手动启动 Excel 2010 并在其中打开文件。但是,然后 VBA 代码在 2013 年将其打开。

我怎样才能解决这个问题?

0 投票
2 回答
133 浏览

csv - 选择查询截断大于 10 位的数字数据

我试图找到解决这个问题几天但没有任何成功。非常感谢任何帮助

我正在尝试将 csv 文件导入 Access 数据库,但数字列中的一些数据被截断。

我的机器上没有安装 MS Access(只有 Windows 预装了 jet 数据库引擎 ( msjet40.dll and msjetoledb40.dll))。但除了这个问题,其他一切都很好。我Provider=Microsoft.ACE.OLEDB.12.0在连接字符串中使用。

csv 文件在文件中包含数字列和非数字列。只要有问题的数字列的值小于周围的值,2140649050它就可以选择。

最初我假设在将数据加载到表时会发生数据截断。但是数据在选择本身时被截断。以下选择查询返回为 UPC 列截断的部分数据

这是相同的输出

似乎它根据最初的几条记录设置了列的最大长度。我怎样才能阻止它这样做。

之所以选择 Access,是因为该工具无需额外设置即可在 Windows 中运行。

安装 MS Access 时数据不会被截断(使用 Access 2010 测试)。这是否意味着ACE.OLEDB.12与最新的 ACE egine ACECORE.dll( wiki )配合得更好

请提出解决问题的任何可能性,而无需安装其他版本的数据库的额外负担

0 投票
1 回答
174 浏览

ms-access-2013 - 删除 5 条记录但 RecordsAffected 属性为 0

这是一个代码片段:

通过单击 frmSearch 表单上的命令按钮调用此函数。该按钮引发由上述代码处理的事件。WhereSql 是查找屏幕上显示的列表框中的 where 子句。它的值类似于“WHERE Cars.RecNo > 1441” 当代码到达 Stop 语句时,我使用即时窗口检查 RecordsAffected 属性并键入:

我检查了 PickList 表并删除了相应的项目。

我的问题:这是一个错误吗?或者,删除一条记录不影响它是正常的吗?

我已经解决了这个问题。我从 PickList 表中删除了 SequenceNo 字段。我在 PickList 表中的 TableName 和 KeyNo 上创建并索引,并将 Unique 指定为 yes。现在我只是

INSERT INTO PickList (TableName,LastChangedDate,KeyNo)
值( tablename ,now(),recno from the tablenamed)

如果由于错误 3022 而导致 INSERT 失败,则表示尝试重复条目,我在此示例中忽略了该条目。其他一切都按照我最初想要的方式运行。当我在代码中测试 RecordsAffected 属性或通过在调试器中打印来查看它时,它始终为零。这仍然令人困惑,因为如果您以交互方式从 access 运行操作查询,则会显示所有这些信息。如果您运行其他关系 DBMS(那些是标准的),那么在您使用查询引擎时总会有反馈。如果这是访问中的错误,我很难相信其他人没有失败。我倾向于认为我搞砸了。希望我不是唯一的先驱。谢谢,提前看这个。

0 投票
1 回答
145 浏览

c# - OleDbDataAdapter 忽略 Excel 单元格中的数据

更新:

使用开源 ExcelDataReader ( https://www.nuget.org/packages/ExcelDataReader/ ) 解决了这个问题。


我正在从这样的 .xlsx 文件中读取数据

一切似乎都工作正常,但在两个特定行中,适配器只是切断了一个单元格的最后一行(两个受影响的行在该特定单元格中具有相同的内容)。

IE:

这里有什么问题,我该如何解决?对我来说,这似乎完全是随机的,因为在所有其他行中都不会出现这个问题。

编辑:我已经尝试过扩展属性 HDR = NO/YES 和 IMEX = 0/1,就像许多相关问题上所建议的那样,但这也没有奏效。

0 投票
0 回答
628 浏览

javascript - 为什么 JavaScript 不能识别 Microsoft.ACE.OLEDB.16.0 驱动程序?

参考机器是安装了 Office 2013 并运行 Internet Explorer 10 的 Windows 7 Professional x64。我检查了 ODBC 数据源,发现我已经安装了所有的 ODBC 驱动程序,如下所示:

ODBC 数据源管理员

然后我去使用 UDL 设置对话框设置我的连接字符串,我还看到了我想要的驱动程序:

在此处输入图像描述

我继续测试我的连接属性,并获得成功:

在此处输入图像描述

但是,当我尝试在 IE10 的调试器中运行以下 JavaScript 片段时,它会返回SCRIPT3706: Provider cannot be found. It may not be properly installed.

在此处输入图像描述

我错过了什么?ADODB 在 64 位世界中死了吗?有合适的替代品吗?

0 投票
0 回答
30 浏览

c# - 生产环境需要安装ACE驱动吗?

所以我收到这个错误,ACE OleDb 没有在我的本地机器上注册。据我所知,它是一个可安装的驱动程序。假设它没有,我是否需要在我的目标机器上安装它?顺便说一句,这是一个 Excel 导入。

0 投票
1 回答
21259 浏览

c# - ACE OLEDB“外部表格不是预期的格式”,Excel 单元格中有大文本

System.Data.OleDb我正在尝试使用Microsoft ACE OLEDB 提供程序读取恰好有一个非常大的文本单元(大约 8900 个字符)的 .xls 文件。我无法控制 .xls 文件的内容。

尝试执行以下操作时出现以下.Open()异常OleDbConnection

我已最小化 .xls 文件,似乎文本单元格是导致异常的原因。我在 x64 操作系统上安装了 MS Office 2010 x86。

我已经尝试了以下所有方法,但都没有解决问题:

  • 王牌 12.0 x86
  • 王牌 12.0 x64
  • 王牌 15.0 x32
  • 注册表调整以设置 TypeGuessRows = 0
  • 连接字符串 IMEX=1
  • 连接字符串 扩展属性="Excel 8.0;"
  • 连接字符串扩展属性="Excel 12.0;"

从我的研究看来,旧的 JET 提供程序过去常常将字段截断为 255 个字符。如果不抛出异常,我根本无法让 ACE 读取文件。

0 投票
0 回答
1280 浏览

sql - SQL Server 代理无法执行 OPENROWSET 查询,但我可以 - 链接服务器“(null)”的“Microsoft.ACE.OLEDB.12.0”报告错误

我正在尝试对 Excel 工作表运行 OPENROWSET 查询,如下所示:

当我从 SSMS 执行此操作时,它可以工作。作为作业步骤的一部分,它不适用于所述错误。

我尝试过的事情:

  1. sp_configure '显示高级选项', 1; 重新配置;GO sp_configure 'Ad Hoc 分布式查询', 1; 重新配置;去

  2. EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 GO

  3. 将目标电子表格和文件夹的权限设置为“所有人”和“读/写”

  4. 当我转到“服务器对象”->“链接服务器”->“提供者”时,Microsoft.ACE.OLEDB.12.0 被列出,它位于 xp_enum_oledb_providers 中。

  5. 已安装 Access 数据库引擎 x64。

这是 SQL Server 2014。

任何人都可以帮忙吗?为什么当我的用户可以使用 ACE 提供程序时,SQL Server 代理却无法使用?

0 投票
1 回答
203 浏览

vb.net - 使用 VB.net 创建 Access 07 DB 在第一次打开时总是运行修复

我有一个 VB.NET (Visual Studio 2010) 应用程序,它以编程方式创建 Access 07 数据库,然后将 CSV 文件作为新的 Access 表导入。数据库被创建,CSV 被导入没有问题。该代码使用 ADOX.Catalog 创建数据库,并使用 OleDb.OleDbConnection 与 ACE 导入 CSV。一切都很好,除了我第一次打开 Access DB。当我从我的桌面 (Office 07) 启动 Access 07 时,我在屏幕右下角看到绿色的“修复”进度条约 5 秒钟。它只发生在我第一次打开数据库时。数据库和表工作正常,但 Access 肯定会修复一些问题。我每次都可以重新创建这种行为。第一次打开数据库时如何避免修复?任何想法都会有所帮助。

0 投票
2 回答
2660 浏览

excel - 同一台电脑上的 32 位和 64 位 Office - MS 访问数据库驱动程序出现问题

我在尝试执行包含 Excel 源的 MS SSIS 包时收到错误:

“Microsoft.ACE.OLEDB.12.0 提供程序未在本地计算机上注册”。

尝试安装 64 位 MS Access 数据库驱动程序,然后安装 32 位 MS Access 数据库驱动程序时,出现两个相互冲突的错误:

“您无法安装 64 位版本的 Microsoft Access 数据库引擎,因为您安装了 32 位办公产品”

“您无法安装 32 位版本的 Microsoft Access 数据库引擎,因为您安装了 64 位办公产品”

我猜我的电脑上运行的是 32 位和 64 位版本的 office。

有趣的是,我看到只有 MS office 2010 和 MS office Viewer 2003 安装在我的机器上,而后者通过 2007 兼容包安装。

所以,我的问题可能有两个方面:

  1. 运行驱动程序是解决我最初问题的正确方法吗?
  2. 由于我的电脑上同时存在 32 位和 64 位 office 版本,我该如何克服无法安装 32 位和 64 位的情况。

请记住,我不确定我应该卸载什么。Office 2010 和 MS windows viewer 2003 正在我的电脑上运行。