Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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 正在将.xls导入Access.mdb:外部表的格式不是预期的格式_Excel_Ms Access_Import_Vba - Fatal编程技术网

Excel 正在将.xls导入Access.mdb:外部表的格式不是预期的格式

Excel 正在将.xls导入Access.mdb:外部表的格式不是预期的格式,excel,ms-access,import,vba,Excel,Ms Access,Import,Vba,我有一个宏,可以按如下方式导入电子表格:(此电子表格是从基于web的应用程序导出的,在初始导出期间,选择的格式为97-2003) 导入Access时,我会得到: 运行时错误“3274”:外部表不是预期格式。 当我打开这个Excel文件时,我会看到一个对话框 “您试图打开的文件的格式与文件扩展名指定的格式不同…” 所以文件名是.xls,我的计算机告诉我它是97-2003格式,但一旦我打开文件并单击“保存”,它默认将其保存为网页格式,并选择“另存为.xls”。有什么好处 更新:如果我打开文件,然后另

我有一个宏,可以按如下方式导入电子表格:(此电子表格是从基于web的应用程序导出的,在初始导出期间,选择的格式为97-2003)

导入Access时,我会得到:

运行时错误“3274”:外部表不是预期格式。

当我打开这个Excel文件时,我会看到一个对话框

“您试图打开的文件的格式与文件扩展名指定的格式不同…”

所以文件名是.xls,我的计算机告诉我它是97-2003格式,但一旦我打开文件并单击“保存”,它默认将其保存为网页格式,并选择“另存为.xls”。有什么好处


更新:如果我打开文件,然后另存为.xls格式(看似多余,但显然不是),它会询问我是否要覆盖现有文件,所以我会这样做。完成此操作后,VBA导入就成功了。我不能让办事员每周都做这件事--有什么办法可以避免吗?可能是来自基于web的应用程序的初始导出?

DoCmd.TransferSpreadsheet
拒绝导入您的
.xls
文件,因为它不是真正的
.xls
文件,而是一个具有
.xls
文件扩展名的HTML文件。提供“假”文件扩展名是我见过其他“开发人员”使用的伎俩,这真的是个坏主意(因为我们在这里看到的原因)

如果上游系统的管理员不愿意做正确的事情并修复他们的代码以生成真正的
.xls
文件,那么尝试将“
.xls
”文件重命名为
.htm
,并使用

DoCmd.TransferText acImportHTML, ...

在将电子表格导入Access时,我还遇到了3274错误。我已经使用这个宏一段时间了


解决方案是压缩并修复Access数据库。

我遇到了同样的问题,同时也遇到了另一个问题(office 2016 x64):从excel粘贴到Access时出现了“剪贴板上的数据已损坏,…”错误。我找到了一个解决方法,单击access主页选项卡粘贴部分的右下角按钮,打开“剪贴板”窗格。 如上所述打开剪贴簿窗格后,我的DoCmd.TransferSpreadsheet工作正常。
我不知道为什么,但它可能会帮助那些有同样问题的人和那些试图找到真正解决方案的人。

你是否尝试过用记事本(或类似工具)打开这个奇怪的文件,看看它是否真的只是一个扩展名为
.xls
的HTML文件?当我打开时,我会得到4个标题和~100行数据,但是,通过各种HTML分区,文件是否包含HTML
标记?它以
案例编号person HISTORY-EMPLOYEE NUMBERINJURY DATERECORDABLE
开头,然后提供所有数据我将尝试一下。即使在
.htm
中,它仍应使用适当的列名导入适当数量的列?@TrevorD您可以手动运行导入过程并创建导入规范(就像CSV和其他文本文件一样)
DoCmd.TransferText acImportHTML, ...