docmd.transferspreadsheet错误地分配数据类型

时间:2016-03-21 11:51:31

标签: vba ms-access

我正在使用以下代码将Excel文件中的数据导入访问。

resources

它在大多数情况下运行良好,但在某些情况下,我发现它错误地将字段的数据类型设置为数字。这导致导入失败,因为导入的数据实际上包含文本和数字。事先创建表不是一个选项,因为我导入的每个文件的字段名称都不同。

我很欣赏任何有关如何解决这个问题的建议。

此致 亚当

2 个答案:

答案 0 :(得分:2)

Access最好猜测数据类型应该是什么。一个老技巧是在Excel文件中的标题下面插入一个虚拟行。在违规列中放置了您需要的数据类型的示例,因此对于字符串,请输入类似“abd123”的内容。如果您不想手动执行此操作,则可以在Excel或Access本身轻松实现自动化(创建Excel应用程序对象,打开文件,进行调整并在代码执行上载之前保存)。然后,您可以使用包含虚拟字符串作为条件的删除查询从表中删除这些行。希望这会有所帮助。

答案 1 :(得分:1)

您可以使用两种方法:

  1. 手动导入表格,并根据需要修改字段数据类型和其他属性。然后,您可以在代码中删除表格数据,然后再将新数据导入其中。当您需要系统中的数据时,这样做更好,以便进一步处理。
  2. 链接到Excel,并对其进行查询,将字段转换为所需的字段数据类型和名称。如果无法传输数据,此选项可让您知道(调用错误),但数据仍保留在Excel中。