在 Access 中关闭自动数据类型识别

问题描述

如果之前提出过这个问题,请提前道歉,但我在任何地方都找不到答案。

有谁知道是否有办法关闭或理想地将自动数据类型识别设置为“短文本”?我相信 MS Access 会查看前 24 行并为表应用数据类型。在我的例子中,第一列数据的前 24(实际上是 1000s)可能是一个数字,但我需要是短文本,因为一些数字是字母数字。

所以我首先将 .CSV 文件导入(链接)到临时表,然后通过 ODBC 连接将数据传递到另一个表。那么有没有办法确保临时表中的“tblRSSLPARENTTEMP”数据类型始终设置为“Short Text”?

Set db = CurrentDb
On Error Resume Next: db.TableDefs.Delete "tblRSSLPARENTTEMP": On Error GoTo 0
db.TableDefs.Refresh
DoCmd.TransferText TransferType:=acLinkDelim,TableName:="tblRSSLPARENTTEMP",_
FileName:=strPathFile,HasFieldNames:=True
db.TableDefs.Refresh

注意:

  1. .CSV 文件中的列可能会更改位置,因此 A 列中某一天的数据可能在第二天出现在 B 列中。
  2. 我需要知道列名,所以 HasFieldNames:=False 不是一个选项

解决方法

导入要访问的数据后,可以通过名称更改字段类型

 CurrentDb.Execute "ALTER TABLE YourTableName ALTER COLUMN YourColumnName VARCHAR(255);",dbFailOnError

将 YourTableName 更改为您的表名等。

为您需要更改的每个字段执行此行。

,

不确定这是否对任何人有用,但在 Access 中找不到解决方案,所以我所做的是:

  1. 在 Excel 中创建了一个 VBA 以在 CSV 文件中插入 50 行字母数字文本并保存
  2. 导入 Access DB。

使用短文本数据类型创建链接数据库。不是最干净的解决方案,但它有效:)